20 #ifndef __mia_3d_matrix_hh 21 #define __mia_3d_matrix_hh 106 void print( std::ostream& os)
const;
159 void evaluate_ev()
const;
162 mutable int m_ev_type;
164 mutable std::vector<T3DCVector<T>> m_complex_evectors;
165 mutable std::vector<int> m_ev_order;
168 template <
typename T>
169 template <
typename I>
178 template <
typename T>
184 template <
typename T>
188 m.
x.y * x.
x + m.
y.y * x.
y + m.
z.y * x.
z,
189 m.
x.z * x.
x + m.
y.z * x.
y + m.
z.z * x.
z);
193 template <
typename T>
194 std::ostream& operator << (std::ostream& os, const T3DMatrix<T>& m)
200 template <
typename T>
210 template <
typename T>
214 m.
x.x * x.
x.y + m.
x.y * x.
y.y + m.
x.z * x.
z.y,
215 m.
x.x * x.
x.z + m.
x.y * x.
y.z + m.
x.z * x.
z.z),
217 m.
y.x * x.
x.y + m.
y.y * x.
y.y + m.
y.z * x.
z.y,
218 m.
y.x * x.
x.z + m.
y.y * x.
y.z + m.
y.z * x.
z.z),
220 m.
z.x * x.
x.y + m.
z.y * x.
y.y + m.
z.z * x.
z.y,
221 m.
z.x * x.
x.z + m.
z.y * x.
y.z + m.
z.z * x.
z.z));
231 template <
typename T>
236 template <
typename T>
T3DMatrix< T > & operator-=(const T3DMatrix< T > &other)
T3DVector< T > z
vector element
int get_eigenvalues(T3DVector< T > &v) const
static const T3DMatrix _0
The zero matrix.
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
static T3DMatrix< T > diagonal(T value)
T3DMatrix< float > C3DFMatrix
a simple 3x3 matrix with single precision floating point values
T3DMatrix< T > transposed() const
T3DCVector< T > get_complex_eigenvector(int i) const
T3DMatrix< double > C3DDMatrix
a simple 3x3 matrix with double precision floating point values
T3DVector< T > y
vector element
T3DVector< T > operator*(const T3DMatrix< T > &m, const T3DVector< T > &x)
T3DVector< T > get_real_eigenvector(int i) const
double EXPORT_GSL dot(const gsl_vector *lhs, const gsl_vector *rhs)
void print(std::ostream &os) const
T3DVector< T > x
vector element
static const T3DMatrix _1
The unity matrix.
#define NS_MIA_END
conveniance define to end the mia namespace