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 _(), _dgematrix::destroy(), i(), dgematrix::m, _dgematrix::m, _dgematrix::n, 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  mat.destroy();
14  return _(newmat);
15 }
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dgematrix.hpp:10
_dgematrix i(const _dgematrix &mat)
void destroy() const
_dcovector _(dcovector &vec)
_dgematrix i ( const _dgematrix mat)
inline

return its inverse matrix

Definition at line 19 of file _dgematrix-calc.hpp.

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

Referenced by t().

20 {CPPL_VERBOSE_REPORT;
21 #ifdef CPPL_DEBUG
22  if(mat.m!=mat.n){
23  ERROR_REPORT;
24  std::cerr << "This matrix is not square and has no inverse matrix." << std::endl
25  << "Your input was (" << mat.m << "x" << mat.n << ")." << std::endl;
26  exit(1);
27  }
28 #endif//CPPL_DEBUG
29 
30  dgematrix mat_cp(mat);
31  dgematrix mat_inv(mat_cp.m,mat_cp.n);
32  mat_inv.identity();
33  mat_cp.dgesv(mat_inv);
34 
35  return _(mat_inv);
36 }
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dgematrix.hpp:10
_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 45 of file _dgematrix-calc.hpp.

References _dgematrix::array, _dgematrix::destroy(), _dgematrix::m, and _dgematrix::n.

46 {CPPL_VERBOSE_REPORT;
47  CPPL_INT mn =mat.m*mat.n;
48  CPPL_INT inc =1;
49  CPPL_INT index =idamax_(&mn, mat.array, &inc) -1;
50  i =index%mat.m;
51  j =index/mat.m;
52 
53  mat.destroy();
54 }
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)
void destroy() const
double damax ( const _dgematrix mat)
inline

return its largest absolute value

Definition at line 58 of file _dgematrix-calc.hpp.

References _dgematrix::array, _dgematrix::destroy(), _dgematrix::m, and _dgematrix::n.

59 {CPPL_VERBOSE_REPORT;
60  CPPL_INT mn =mat.m*mat.n;
61  CPPL_INT inc =1;
62  double val =mat.array[idamax_(&mn, mat.array, &inc) -1];
63 
64  mat.destroy();
65  return val;
66 }
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
void destroy() const