forked from yayahjb/ncdist
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Mat66.h
executable file
·60 lines (43 loc) · 1.31 KB
/
Mat66.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#ifndef NC_MAT_H
#define NC_MAT_H
#include <string>
#include <vector>
#include "VectorTools.h"
//#include "NC_Vec.h"
#define Default6 6
#define Default36 36
class G6;
class Mat7;
class Mat66;
Mat66 operator* ( const double d, const Mat66& m );
Mat66 operator/ ( const double d, const Mat66& m );
class Mat66 {
public:
friend std::ostream& operator<< ( std::ostream&, const Mat66& );
Mat66( );
Mat66( const double m[36] );
Mat66( const std::string& s );
Mat66( const Mat66& m );
Mat66( const Mat7& m7 );
Mat66( const MatN& m );
~Mat66( void ) {};
Mat66 operator* ( const Mat66& m2 ) const;
Mat66 operator+ ( const Mat66& m2 ) const;
Mat66 operator- ( const Mat66& m2 ) const;
Mat66 transpose( const Mat66& m2 ) const;
Mat66 inverse( const Mat66& m2 ) const;
G6 operator* ( const G6& v ) const;
double norm( void ) const;
Mat66 operator* ( const double d ) const;
Mat66 operator/ ( const double d ) const;
double operator[]( const size_t i ) const;
double& operator[]( const size_t i );
Mat66& operator= ( const Mat66& m2 );
bool operator== ( const Mat66& m2 ) const;
void zeros( void );
static Mat66 Eye( void );
bool IsUnit( void ) const;
std::vector<double> m_mat;
protected:
};
#endif