CPPLapack
 All Classes Files Functions Variables Friends Pages
zhematrix_small-specialized.hpp
Go to the documentation of this file.
1 //=============================================================================
2 /*! calculate determinant */
3 inline comple det(const zhemat2& A)
4 {CPPL_VERBOSE_REPORT;
5  return A(0,0)*A(1,1) -A(1,0)*A(1,0);
6 }
7 
8 //=============================================================================
9 /*! calculate inverse */
10 inline zhemat2 inv(const zhemat2& A)
11 {CPPL_VERBOSE_REPORT;
12  const comple Adet( det(A) );
13  zhemat2 Ainv;
14  Ainv(0,0)= A(1,1)/Adet;
15  Ainv(1,0)=-A(1,0)/Adet; Ainv(1,1)= A(0,0)/Adet;
16  return Ainv;
17 }
18 
19 ///////////////////////////////////////////////////////////////////////////////
20 ///////////////////////////////////////////////////////////////////////////////
21 ///////////////////////////////////////////////////////////////////////////////
22 
23 //=============================================================================
24 /*! calculate determinant */
25 inline comple det(const zhemat3& A)
26 {CPPL_VERBOSE_REPORT;
27  return
28  +A(0,0)*A(1,1)*A(2,2) -A(0,0)*A(2,1)*A(2,1)
29  +A(1,0)*A(2,1)*A(2,0) -A(1,0)*A(1,0)*A(2,2)
30  +A(2,0)*A(1,0)*A(2,1) -A(2,0)*A(1,1)*A(2,0);
31 }
32 
33 //=============================================================================
34 /*! calculate inverse */
35 inline zhemat3 inv(const zhemat3& A)
36 {CPPL_VERBOSE_REPORT;
37  const comple Adet( det(A) );
38  zhemat3 Ainv;
39  Ainv(0,0) =(A(1,1)*A(2,2)-A(2,1)*A(2,1))/Adet;
40  Ainv(1,0) =(A(2,1)*A(2,0)-A(1,0)*A(2,2))/Adet;
41  Ainv(1,1) =(A(0,0)*A(2,2)-A(2,0)*A(2,0))/Adet;
42  Ainv(2,0) =(A(1,0)*A(2,1)-A(1,1)*A(2,0))/Adet;
43  Ainv(2,1) =(A(1,0)*A(2,0)-A(0,0)*A(2,1))/Adet;
44  Ainv(2,2) =(A(0,0)*A(1,1)-A(1,0)*A(1,0))/Adet;
45  return Ainv;
46 }
comple det(const zhemat2 &A)
zhemat2 inv(const zhemat2 &A)