a simple 3x3 matrix More...
#include <mia/3d/matrix.hh>
Public Member Functions | |
T3DCVector< T > | get_complex_eigenvector (int i) const |
T | get_det () const |
int | get_eigenvalues (T3DVector< T > &v) const |
int | get_rank () const |
T3DVector< T > | get_real_eigenvector (int i) const |
T3DMatrix< T > & | operator-= (const T3DMatrix< T > &other) |
void | print (std::ostream &os) const |
T3DMatrix () | |
template<typename I > | |
T3DMatrix (const T3DMatrix< I > &o) | |
T3DMatrix (const T3DVector< T3DVector< T > > &other) | |
T3DMatrix (const T3DVector< T > &x, const T3DVector< T > &y, const T3DVector< T > &z) | |
T3DMatrix< T > | transposed () const |
Public Member Functions inherited from T3DVector< T3DVector< T > > | |
void | fill (T3DVector< T > v) |
Fill the vector elements with value v. More... | |
double | norm () const |
double | norm2 () const |
square of Euclidian norm of the vector More... | |
T3DVector< T3DVector< T > > & | operator*= (const double a) |
inplace multiplication More... | |
T3DVector< T3DVector< T > > & | operator*= (const T3DVector< T3DVector< T > > &a) |
inplace component wise multiplication More... | |
T3DVector< T3DVector< T > > & | operator+= (const T3DVector< T3DVector< T > > &a) |
inplace addition More... | |
T3DVector | operator- () const |
T3DVector< T3DVector< T > > & | operator-= (const T3DVector< T3DVector< T > > &a) |
inplace subtraction More... | |
T3DVector< T3DVector< T > > & | operator/= (const double a) |
inplace divisison by a scalar More... | |
T3DVector< T3DVector< T > > & | operator= (const T3DVector< T3DVector< T > > &other)=default |
we provide the default copy mechanisms More... | |
T3DVector< T3DVector< T > > & | operator= (const T3DVector< in > &org) |
assignment from different vector type More... | |
const T3DVector< T > | operator[] (size_t i) const |
T3DVector< T > & | operator[] (size_t i) |
double | product () const |
void | read (std::istream &is) |
read the vector from a formatted string More... | |
int | size () const |
T3DVector () | |
standart constructor More... | |
T3DVector (int dim) | |
create a zero-vector, dim must be 3 More... | |
T3DVector (const T3DVector< T3DVector< T > > &other)=default | |
we provide the default copy mechanisms More... | |
T3DVector (const T3DVector< T > &x_, const T3DVector< T > &y_, const T3DVector< T > &z_) | |
constructor to construct vector from values More... | |
T3DVector (const T3DVector< in > &org) | |
type casting copy constructor More... | |
void | write (std::ostream &os) const |
print out the formatted vector to the stream More... | |
const T3DVector< T3DVector< T > > & | xyz () const |
swizzle operator More... | |
const T3DVector< T3DVector< T > > | xzy () const |
swizzle operator More... | |
const T3DVector< T3DVector< T > > | yxz () const |
swizzle operator More... | |
const T3DVector< T3DVector< T > > | yzx () const |
swizzle operator More... | |
const T3DVector< T3DVector< T > > | zxy () const |
swizzle operator More... | |
const T3DVector< T3DVector< T > > | zyx () const |
swizzle operator More... | |
Static Public Member Functions | |
static T3DMatrix< T > | diagonal (T value) |
static T3DMatrix< T > | diagonal (const T3DVector< T > &values) |
Static Public Attributes | |
static const T3DMatrix | _0 = T3DMatrix<T>() |
The zero matrix. More... | |
static const T3DMatrix | _1 |
The unity matrix. More... | |
Static Public Attributes inherited from T3DVector< T3DVector< T > > | |
static T3DVector< T3DVector< T > > | _0 |
declare the vector (0,0,0) More... | |
static T3DVector< T3DVector< T > > | _1 |
declare the vector (1,1,1) More... | |
static const unsigned int | elements |
the number of elements this vector holds (=3) More... | |
Additional Inherited Members | |
Public Types inherited from T3DVector< T3DVector< T > > | |
typedef T3DVector< T > | value_type |
typedef for generic programming More... | |
Data Fields inherited from T3DVector< T3DVector< T > > | |
T3DVector< T > | x |
vector element More... | |
T3DVector< T > | y |
vector element More... | |
T3DVector< T > | z |
vector element More... | |
a simple 3x3 matrix
This si a simple implementation of a 3x3 matrix that supports the evaluation of certain properties and operations with vectors
T | the data type of the elements of the matrix |
Definition at line 45 of file 3d/matrix.hh.
Construct a matrix by copying from a differenty typed matrix
I | the element type of the original matrix |
o | the matrix to be copied |
Definition at line 170 of file 3d/matrix.hh.
Construct the matrix by giving a 3D vector of 3D vectors
other | the input matrix |
T3DMatrix< T >::T3DMatrix | ( | const T3DVector< T > & | x, |
const T3DVector< T > & | y, | ||
const T3DVector< T > & | z | ||
) |
Construct the matrix by giving the rows as 3D vectors
x | 1st row |
y | 2st row |
z | 3rd row |
Create a diagonal matrix
value | the value to set the diagonal elements to |
|
static |
Create a diagonal matrix
values | the values to set the diagonal elements to a(0,0) = values.x, a(1,1) = values.y, ... |
T3DCVector<T> T3DMatrix< T >::get_complex_eigenvector | ( | int | i | ) | const |
Calculate the complex eigenvector to a given eigenvalues.
i | number of eigenvector |
T T3DMatrix< T >::get_det | ( | ) | const |
calculated the eigenvalues of the matrix using the caracteristic polynome, and Cardans formula
result | stores the three eigenvalues, interprete dependend on returns |
int T3DMatrix< T >::get_rank | ( | ) | const |
Calculate the eigenvector to a given eigenvalues. This function doesn't work for complex valued eigenvectors
i | number of eigenvector |
void T3DMatrix< T >::print | ( | std::ostream & | os | ) | const |
print the matrix to an ostream
os | the output stream |
The zero matrix.
Definition at line 156 of file 3d/matrix.hh.
The unity matrix.
Definition at line 153 of file 3d/matrix.hh.