CPPLapack
 All Classes Files Functions Variables Friends Pages
Functions
dgematrix-calc.hpp File Reference

Go to the source code of this file.

Functions

_dgematrix t (const dgematrix &mat)
 
_dgematrix i (const dgematrix &mat)
 
void idamax (CPPL_INT &i, CPPL_INT &j, const dgematrix &mat)
 
double damax (const dgematrix &mat)
 

Function Documentation

_dgematrix t ( const dgematrix mat)
inline

return transposed dgematrix

Definition at line 3 of file dgematrix-calc.hpp.

References _(), i(), dgematrix::m, and dgematrix::n.

4 {CPPL_VERBOSE_REPORT;
5  dgematrix newmat(mat.n,mat.m);
6 
7  for(CPPL_INT i=0; i<newmat.m; i++){
8  for(CPPL_INT j=0; j<newmat.n; j++){
9  newmat(i,j) =mat(j,i);
10  }
11  }
12 
13  return _(newmat);
14 }
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
_dgematrix i(const dgematrix &mat)
_dcovector _(dcovector &vec)
_dgematrix i ( const dgematrix mat)
inline

return its inverse matrix

Definition at line 18 of file dgematrix-calc.hpp.

References _(), dgematrix::dgesv(), dgematrix::identity(), dgematrix::m, and dgematrix::n.

Referenced by t().

19 {CPPL_VERBOSE_REPORT;
20 #ifdef CPPL_DEBUG
21  if(mat.m!=mat.n){
22  ERROR_REPORT;
23  std::cerr << "This matrix is not square and has no inverse matrix." << std::endl
24  << "Your input was (" << mat.m << "x" << mat.n << ")." << std::endl;
25  exit(1);
26  }
27 #endif//CPPL_DEBUG
28 
29  dgematrix mat_cp(mat), mat_inv(mat.m,mat.n);
30  mat_inv.identity();
31  mat_cp.dgesv(mat_inv);
32 
33  return _(mat_inv);
34 }
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
_dcovector _(dcovector &vec)
void idamax ( CPPL_INT &  i,
CPPL_INT &  j,
const dgematrix mat 
)
inline

search the index of element having the largest absolute value in 0-based numbering system

Definition at line 43 of file dgematrix-calc.hpp.

References dgematrix::array, dgematrix::m, and dgematrix::n.

44 {CPPL_VERBOSE_REPORT;
45  CPPL_INT mn =mat.m*mat.n;
46  CPPL_INT inc =1;
47  CPPL_INT index =idamax_(&mn, mat.array, &inc) -1;
48  i =index%mat.m;
49  j =index/mat.m;
50 }
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
double * array
1D array to store matrix data
Definition: dgematrix.hpp:11
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10
_dgematrix i(const dgematrix &mat)
double damax ( const dgematrix mat)
inline

return its largest absolute value

Definition at line 54 of file dgematrix-calc.hpp.

References dgematrix::array, dgematrix::m, and dgematrix::n.

55 {CPPL_VERBOSE_REPORT;
56  CPPL_INT mn =mat.m*mat.n;
57  CPPL_INT inc =1;
58  return mat.array[idamax_(&mn, mat.array, &inc) -1];
59 }
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
double * array
1D array to store matrix data
Definition: dgematrix.hpp:11
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10