3x3 matrices with CPU and GPU operators More...
#include <core/vector3.h>
Classes | |
class | matrix3< scalar > |
3x3 matrix More... | |
struct | symmetricMatrix3< scalar > |
Symmetric matrix that stores only non-redundant entries (with limited operations) More... | |
struct | SpaceGroupOp |
Space group operation r -> rot * r + a in real-space lattice coordinates. More... | |
Macros | |
#define | METRIC_LENGTH_SQUARED |
Compute the length of a vector, using this matrix as the metric. More... | |
#define | MUL_MAT_VEC(retType) |
#define | MUL_VEC_MAT(retType) |
#define | MUL_MAT_MAT(retType) |
Functions | |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | operator* (scalar s, const matrix3< scalar > &m) |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | outer (const vector3< scalar > &a, const vector3< scalar > &b) |
template<typename scalar > | |
__hostanddev__ vector3< scalar > | operator* (const matrix3< scalar > &m, const vector3< scalar > &v) |
template<typename scalar > | |
__hostanddev__ vector3< scalar > | operator* (const matrix3< scalar > &m, const vector3< int > &v) |
template<typename scalar > | |
__hostanddev__ vector3< scalar > | operator* (const matrix3< int > &m, const vector3< scalar > &v) |
__hostanddev__ vector3< int > | operator* (const matrix3< int > &m, const vector3< int > &v) |
__hostanddev__ vector3< complex > | operator* (const matrix3< complex > &m, const vector3<> &v) |
__hostanddev__ vector3< complex > | operator* (const matrix3<> &m, const vector3< complex > &v) |
template<typename scalar > | |
__hostanddev__ vector3< scalar > | operator* (const vector3< scalar > &v, const matrix3< scalar > &m) |
template<typename scalar > | |
__hostanddev__ vector3< scalar > | operator* (const vector3< int > &v, const matrix3< scalar > &m) |
template<typename scalar > | |
__hostanddev__ vector3< scalar > | operator* (const vector3< scalar > &v, const matrix3< int > &m) |
__hostanddev__ vector3< int > | operator* (const vector3< int > &v, const matrix3< int > &m) |
__hostanddev__ vector3< complex > | operator* (const vector3<> &v, const matrix3< complex > &m) |
__hostanddev__ vector3< complex > | operator* (const vector3< complex > &v, const matrix3<> &m) |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | operator* (const matrix3< scalar > &m, const matrix3< scalar > &n) |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | operator* (const matrix3< scalar > &m, const matrix3< int > &n) |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | operator* (const matrix3< int > &m, const matrix3< scalar > &n) |
__hostanddev__ matrix3< int > | operator* (const matrix3< int > &m, const matrix3< int > &n) |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > & | operator*= (matrix3< scalar > &m, const matrix3< scalar > &n) |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | Diag (vector3< scalar > v) |
template<typename scalar > | |
__hostanddev__ scalar | trace (const matrix3< scalar > &m) |
Trace of matrix. | |
template<typename scalar > | |
__hostanddev__ scalar | det (const matrix3< scalar > &m) |
Determinant of matrix. | |
template<typename scalar > | |
__hostanddev__ matrix3< scalar > | adjugate (const matrix3< scalar > &m) |
__hostanddev__ matrix3 | inv (const matrix3<> &m) |
template<typename scalar > | |
__hostanddev__ scalar | nrm2sq (const matrix3< scalar > &m) |
square of 2-norm of matrix | |
template<typename scalar > | |
__hostanddev__ double | nrm2 (const matrix3< scalar > &m) |
2-norm of matrix | |
__hostanddev__ matrix3 | rotation (double theta, int axis) |
Create a rotation matrix. | |
template<typename scalar > | |
__hostanddev__ symmetricMatrix3< scalar > | operator* (scalar s, symmetricMatrix3< scalar > m) |
Scale. | |
template<typename scalar > | |
__hostanddev__ symmetricMatrix3< scalar > | outer (const vector3< scalar > &v) |
Symmetric outer product of vector. | |
3x3 matrices with CPU and GPU operators
#define METRIC_LENGTH_SQUARED |
Compute the length of a vector, using this matrix as the metric.