@@ -7,179 +7,182 @@ Matrix3::Matrix3(const double &r11, const double &r12, const double &r13,
77 const double &r21, const double &r22, const double &r23,
88 const double &r31, const double &r32, const double &r33)
99{
10- e11 = r11;e12 = r12;e13 = r13;
11- e21 = r21;e22 = r22;e23 = r23;
12- e31 = r31;e32 = r32;e33 = r33;
10+ e11 = r11; e12 = r12; e13 = r13;
11+ e21 = r21; e22 = r22; e23 = r23;
12+ e31 = r31; e32 = r32; e33 = r33;
1313}
1414
1515void Matrix3::Identity (void )
1616{
17- e11 = 1 ;e12 = 0 ;e13 = 0 ;
18- e21 = 0 ;e22 = 1 ;e23 = 0 ;
19- e31 = 0 ;e32 = 0 ;e33 = 1 ;
17+ e11 = 1 ; e12 = 0 ; e13 = 0 ;
18+ e21 = 0 ; e22 = 1 ; e23 = 0 ;
19+ e31 = 0 ; e32 = 0 ; e33 = 1 ;
2020}
2121
2222void Matrix3::Zero (void )
2323{
24- e11 = 0 ;e12 = 0 ;e13 = 0 ;
25- e21 = 0 ;e22 = 0 ;e23 = 0 ;
26- e31 = 0 ;e32 = 0 ;e33 = 0 ;
24+ e11 = 0 ; e12 = 0 ; e13 = 0 ;
25+ e21 = 0 ; e22 = 0 ; e23 = 0 ;
26+ e31 = 0 ; e32 = 0 ; e33 = 0 ;
2727}
2828
29- double Matrix3::Det (void ) const
29+ double Matrix3::Det (void ) const
3030{
31- return e11 *e22 *e33 -
32- e11 *e32 *e23 +
33- e21 *e32 *e13 -
34- e21 *e12 *e33 +
35- e31 *e12 *e23 -
36- e31 *e22 *e13 ;
31+ return e11 *e22 *e33 -
32+ e11 *e32 *e23 +
33+ e21 *e32 *e13 -
34+ e21 *e12 *e33 +
35+ e31 *e12 *e23 -
36+ e31 *e22 *e13 ;
3737}
3838
3939Matrix3 Matrix3::Transpose (void ) const
4040{
41- return Matrix3 (e11 , e21 , e31 , e12 , e22 , e32 , e13 , e23 , e33 );
41+ return Matrix3 (e11 , e21 , e31 , e12 , e22 , e32 , e13 , e23 , e33 );
4242}
4343
4444Matrix3 Matrix3::Inverse (void ) const
4545{
46- double d = this ->Det ();
46+ double d = this ->Det ();
4747
48- if (d == 0 )d = 1 ;
48+ if (d == 0 )
49+ {
50+ d = 1 ;
51+ }
4952
50- return Matrix3 ((e22 *e33 - e23 *e32 ) / d,
51- -(e12 *e33 - e13 *e32 ) / d,
52- (e12 *e23 - e13 *e22 ) / d,
53- -(e21 *e33 - e23 *e31 ) / d,
54- (e11 *e33 - e13 *e31 ) / d,
55- -(e11 *e23 - e13 *e21 ) / d,
56- (e21 *e32 - e22 *e31 ) / d,
57- -(e11 *e32 - e12 *e31 ) / d,
58- (e11 *e22 - e12 *e21 ) / d);
53+ return Matrix3 ((e22 *e33 - e23 *e32 ) / d,
54+ -(e12 *e33 - e13 *e32 ) / d,
55+ (e12 *e23 - e13 *e22 ) / d,
56+ -(e21 *e33 - e23 *e31 ) / d,
57+ (e11 *e33 - e13 *e31 ) / d,
58+ -(e11 *e23 - e13 *e21 ) / d,
59+ (e21 *e32 - e22 *e31 ) / d,
60+ -(e11 *e32 - e12 *e31 ) / d,
61+ (e11 *e22 - e12 *e21 ) / d);
5962}
6063
6164Matrix3& Matrix3::operator = (const Matrix3 &m)
6265{
63- e11 = m.e11 ;e12 = m.e12 ;e13 = m.e13 ;
64- e21 = m.e21 ;e22 = m.e22 ;e23 = m.e23 ;
65- e31 = m.e31 ;e32 = m.e32 ;e33 = m.e33 ;
66- return *this ;
66+ e11 = m.e11 ; e12 = m.e12 ; e13 = m.e13 ;
67+ e21 = m.e21 ; e22 = m.e22 ; e23 = m.e23 ;
68+ e31 = m.e31 ; e32 = m.e32 ; e33 = m.e33 ;
69+ return *this ;
6770}
6871
6972Matrix3& Matrix3::operator +=(const Matrix3 &m)
7073{
71- e11 += m.e11 ;e12 += m.e12 ;e13 += m.e13 ;
72- e21 += m.e21 ;e22 += m.e22 ;e23 += m.e23 ;
73- e31 += m.e31 ;e32 += m.e32 ;e33 += m.e33 ;
74- return *this ;
74+ e11 += m.e11 ; e12 += m.e12 ; e13 += m.e13 ;
75+ e21 += m.e21 ; e22 += m.e22 ; e23 += m.e23 ;
76+ e31 += m.e31 ; e32 += m.e32 ; e33 += m.e33 ;
77+ return *this ;
7578}
7679
7780Matrix3& Matrix3::operator -=(const Matrix3 &m)
7881{
79- e11 -= m.e11 ;e12 -= m.e12 ;e13 -= m.e13 ;
80- e21 -= m.e21 ;e22 -= m.e22 ;e23 -= m.e23 ;
81- e31 -= m.e31 ;e32 -= m.e32 ;e33 -= m.e33 ;
82- return *this ;
82+ e11 -= m.e11 ; e12 -= m.e12 ; e13 -= m.e13 ;
83+ e21 -= m.e21 ; e22 -= m.e22 ; e23 -= m.e23 ;
84+ e31 -= m.e31 ; e32 -= m.e32 ; e33 -= m.e33 ;
85+ return *this ;
8386}
8487
8588Matrix3& Matrix3::operator *=(const double &s)
8689{
87- e11 *= s;e12 *= s;e13 *= s;
88- e21 *= s;e22 *= s;e23 *= s;
89- e31 *= s;e32 *= s;e33 *= s;
90- return *this ;
90+ e11 *= s; e12 *= s; e13 *= s;
91+ e21 *= s; e22 *= s; e23 *= s;
92+ e31 *= s; e32 *= s; e33 *= s;
93+ return *this ;
9194}
9295
9396Matrix3& Matrix3::operator /=(const double &s)
9497{
95- e11 /= s;e12 /= s;e13 /= s;
96- e21 /= s;e22 /= s;e23 /= s;
97- e31 /= s;e32 /= s;e33 /= s;
98- return *this ;
98+ e11 /= s; e12 /= s; e13 /= s;
99+ e21 /= s; e22 /= s; e23 /= s;
100+ e31 /= s; e32 /= s; e33 /= s;
101+ return *this ;
99102}
100103
101104// m1+m2
102105Matrix3 operator +(const Matrix3 &m1, const Matrix3 &m2)
103106{
104- return Matrix3 (m1.e11 + m2.e11 ,
105- m1.e12 + m2.e12 ,
106- m1.e13 + m2.e13 ,
107- m1.e21 + m2.e21 ,
108- m1.e22 + m2.e22 ,
109- m1.e23 + m2.e23 ,
110- m1.e31 + m2.e31 ,
111- m1.e32 + m2.e32 ,
112- m1.e33 + m2.e33 );
107+ return Matrix3 (m1.e11 + m2.e11 ,
108+ m1.e12 + m2.e12 ,
109+ m1.e13 + m2.e13 ,
110+ m1.e21 + m2.e21 ,
111+ m1.e22 + m2.e22 ,
112+ m1.e23 + m2.e23 ,
113+ m1.e31 + m2.e31 ,
114+ m1.e32 + m2.e32 ,
115+ m1.e33 + m2.e33 );
113116}
114117
115118// m1-m2
116119Matrix3 operator -(const Matrix3 &m1, const Matrix3 &m2)
117120{
118- return Matrix3 (m1.e11 - m2.e11 , // Zujian Dai fix bug 2019-01-21
119- m1.e12 - m2.e12 ,
120- m1.e13 - m2.e13 ,
121- m1.e21 - m2.e21 ,
122- m1.e22 - m2.e22 ,
123- m1.e23 - m2.e23 ,
124- m1.e31 - m2.e31 ,
125- m1.e32 - m2.e32 ,
126- m1.e33 - m2.e33 );
121+ return Matrix3 (m1.e11 - m2.e11 , // Zujian Dai fix bug 2019-01-21
122+ m1.e12 - m2.e12 ,
123+ m1.e13 - m2.e13 ,
124+ m1.e21 - m2.e21 ,
125+ m1.e22 - m2.e22 ,
126+ m1.e23 - m2.e23 ,
127+ m1.e31 - m2.e31 ,
128+ m1.e32 - m2.e32 ,
129+ m1.e33 - m2.e33 );
127130}
128131
129132// m/s
130133Matrix3 operator /(const Matrix3 &m, const double &s)
131134{
132- return Matrix3 (m.e11 / s, m.e12 / s, m.e13 / s,
133- m.e21 / s, m.e22 / s, m.e23 / s,
134- m.e31 / s, m.e32 / s, m.e33 / s);
135+ return Matrix3 (m.e11 / s, m.e12 / s, m.e13 / s,
136+ m.e21 / s, m.e22 / s, m.e23 / s,
137+ m.e31 / s, m.e32 / s, m.e33 / s);
135138}
136139
137140// m1*m2
138141Matrix3 operator *(const Matrix3 &m1, const Matrix3 &m2)
139142{
140- return Matrix3 (m1.e11 *m2.e11 + m1.e12 *m2.e21 + m1.e13 *m2.e31 ,
141- m1.e11 *m2.e12 + m1.e12 *m2.e22 + m1.e13 *m2.e32 ,
142- m1.e11 *m2.e13 + m1.e12 *m2.e23 + m1.e13 *m2.e33 ,
143- m1.e21 *m2.e11 + m1.e22 *m2.e21 + m1.e23 *m2.e31 ,
144- m1.e21 *m2.e12 + m1.e22 *m2.e22 + m1.e23 *m2.e32 ,
145- m1.e21 *m2.e13 + m1.e22 *m2.e23 + m1.e23 *m2.e33 ,
146- m1.e31 *m2.e11 + m1.e32 *m2.e21 + m1.e33 *m2.e31 ,
147- m1.e31 *m2.e12 + m1.e32 *m2.e22 + m1.e33 *m2.e32 ,
148- m1.e31 *m2.e13 + m1.e32 *m2.e23 + m1.e33 *m2.e33 );
143+ return Matrix3 (m1.e11 *m2.e11 + m1.e12 *m2.e21 + m1.e13 *m2.e31 ,
144+ m1.e11 *m2.e12 + m1.e12 *m2.e22 + m1.e13 *m2.e32 ,
145+ m1.e11 *m2.e13 + m1.e12 *m2.e23 + m1.e13 *m2.e33 ,
146+ m1.e21 *m2.e11 + m1.e22 *m2.e21 + m1.e23 *m2.e31 ,
147+ m1.e21 *m2.e12 + m1.e22 *m2.e22 + m1.e23 *m2.e32 ,
148+ m1.e21 *m2.e13 + m1.e22 *m2.e23 + m1.e23 *m2.e33 ,
149+ m1.e31 *m2.e11 + m1.e32 *m2.e21 + m1.e33 *m2.e31 ,
150+ m1.e31 *m2.e12 + m1.e32 *m2.e22 + m1.e33 *m2.e32 ,
151+ m1.e31 *m2.e13 + m1.e32 *m2.e23 + m1.e33 *m2.e33 );
149152}
150153
151154// m*s
152155Matrix3 operator *(const Matrix3 &m,const double &s)
153156{
154- return Matrix3 (m.e11 *s, m.e12 *s, m.e13 *s,
155- m.e21 *s, m.e22 *s, m.e23 *s,
156- m.e31 *s, m.e32 *s, m.e33 *s);
157+ return Matrix3 (m.e11 *s, m.e12 *s, m.e13 *s,
158+ m.e21 *s, m.e22 *s, m.e23 *s,
159+ m.e31 *s, m.e32 *s, m.e33 *s);
157160}
158161
159162// s*m
160163Matrix3 operator *(const double &s, const Matrix3 &m)
161164{
162- return Matrix3 (m.e11 *s, m.e12 *s, m.e13 *s,
163- m.e21 *s, m.e22 *s, m.e23 *s,
164- m.e31 *s, m.e32 *s, m.e33 *s);
165+ return Matrix3 (m.e11 *s, m.e12 *s, m.e13 *s,
166+ m.e21 *s, m.e22 *s, m.e23 *s,
167+ m.e31 *s, m.e32 *s, m.e33 *s);
165168}
166169
167170// whether m1==m2
168171bool operator ==(const Matrix3 &m1, const Matrix3 &m2)
169172{
170- if (m1.e11 == m2.e11 &&
171- m1.e12 == m2.e12 &&
172- m1.e13 == m2.e13 &&
173- m1.e21 == m2.e21 &&
174- m1.e22 == m2.e22 &&
175- m1.e23 == m2.e23 &&
176- m1.e31 == m2.e31 &&
177- m1.e32 == m2.e32 &&
178- m1.e33 == m2.e33 )
179- {
180- return true ;
181- }
182- return false ;
173+ if (m1.e11 == m2.e11 &&
174+ m1.e12 == m2.e12 &&
175+ m1.e13 == m2.e13 &&
176+ m1.e21 == m2.e21 &&
177+ m1.e22 == m2.e22 &&
178+ m1.e23 == m2.e23 &&
179+ m1.e31 == m2.e31 &&
180+ m1.e32 == m2.e32 &&
181+ m1.e33 == m2.e33 )
182+ {
183+ return true ;
184+ }
185+ return false ;
183186}
184187
185188// whether m1 != m2
@@ -189,21 +192,21 @@ bool operator!=(const Matrix3 &m1, const Matrix3 &m2)
189192}
190193
191194
192- void Matrix3::print (void )const
195+ void Matrix3::print (void ) const
193196{
194- std::cout << e11 << std::setw (15 ) << e12 << std::setw (15 ) << e13 << std::endl ;
195- std::cout << e21 << std::setw (15 ) << e22 << std::setw (15 ) << e23 << std::endl ;
196- std::cout << e31 << std::setw (15 ) << e32 << std::setw (15 ) << e33 << std::endl ;
197- return ;
197+ std::cout << std::setw ( 15 ) << e11 << std::setw (15 ) << e12 << std::setw (15 ) << e13 << std::endl;
198+ std::cout << std::setw ( 15 ) << e21 << std::setw (15 ) << e22 << std::setw (15 ) << e23 << std::endl;
199+ std::cout << std::setw ( 15 ) << e31 << std::setw (15 ) << e32 << std::setw (15 ) << e33 << std::endl;
200+ return ;
198201}
199202
200- ModuleBase::matrix Matrix3::to_matrix (void )const // Peize Lin add 2021.03.09
203+ ModuleBase::matrix Matrix3::to_matrix (void )const // Peize Lin add 2021.03.09
201204{
202- ModuleBase::matrix m (3 ,3 );
203- m (0 ,0 )=e11 ; m (0 ,1 )=e12 ; m (0 ,2 )=e13 ;
204- m (1 ,0 )=e21 ; m (1 ,1 )=e22 ; m (1 ,2 )=e23 ;
205- m (2 ,0 )=e31 ; m (2 ,1 )=e32 ; m (2 ,2 )=e33 ;
206- return m;
205+ ModuleBase::matrix m (3 ,3 );
206+ m (0 ,0 )=e11 ; m (0 ,1 )=e12 ; m (0 ,2 )=e13 ;
207+ m (1 ,0 )=e21 ; m (1 ,1 )=e22 ; m (1 ,2 )=e23 ;
208+ m (2 ,0 )=e31 ; m (2 ,1 )=e32 ; m (2 ,2 )=e33 ;
209+ return m;
207210}
208211
209212}
0 commit comments