CPPLapack
 All Classes Files Functions Variables Friends Pages
Public Member Functions | Public Attributes | Friends | List of all members
_dgbmatrix Class Reference

(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class More...

#include <_dgbmatrix.hpp>

Public Member Functions

 _dgbmatrix ()
 
 _dgbmatrix (const _dgbmatrix &)
 
 ~_dgbmatrix ()
 
_zgbmatrix to_zgbmatrix () const
 
_dgematrix to_dgematrix () const
 
double & operator() (const CPPL_INT &, const CPPL_INT &) const
 
void write (const char *) const
 
void nullify () const
 
void destroy () const
 

Public Attributes

CPPL_INT m
 matrix row size More...
 
CPPL_INT n
 matrix column size More...
 
CPPL_INT kl
 lower band width More...
 
CPPL_INT ku
 upper band width More...
 
double * array
 1D array to store matrix data More...
 
double ** darray
 array of pointers of column head addresses More...
 

Friends

std::ostream & operator<< (std::ostream &, const _dgbmatrix &)
 
_dgbmatrix t (const _dgbmatrix &)
 
_dgematrix i (const _dgbmatrix &)
 
const _dgbmatrixoperator+ (const _dgbmatrix &)
 
_dgbmatrix operator- (const _dgbmatrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const dgematrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const _dgematrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const dsymatrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const _dsymatrix &)
 
_dgbmatrix operator+ (const _dgbmatrix &, const dgbmatrix &)
 
_dgbmatrix operator+ (const _dgbmatrix &, const _dgbmatrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const dgsmatrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const _dgsmatrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const dssmatrix &)
 
_dgematrix operator+ (const _dgbmatrix &, const _dssmatrix &)
 
_dgematrix operator- (const _dgbmatrix &, const dgematrix &)
 
_dgematrix operator- (const _dgbmatrix &, const _dgematrix &)
 
_dgematrix operator- (const _dgbmatrix &, const dsymatrix &)
 
_dgematrix operator- (const _dgbmatrix &, const _dsymatrix &)
 
_dgbmatrix operator- (const _dgbmatrix &, const dgbmatrix &)
 
_dgbmatrix operator- (const _dgbmatrix &, const _dgbmatrix &)
 
_dgematrix operator- (const _dgbmatrix &, const dgsmatrix &)
 
_dgematrix operator- (const _dgbmatrix &, const _dgsmatrix &)
 
_dgematrix operator- (const _dgbmatrix &, const dssmatrix &)
 
_dgematrix operator- (const _dgbmatrix &, const _dssmatrix &)
 
_dcovector operator* (const _dgbmatrix &, const dcovector &)
 
_dcovector operator* (const _dgbmatrix &, const _dcovector &)
 
_dgematrix operator* (const _dgbmatrix &, const dgematrix &)
 
_dgematrix operator* (const _dgbmatrix &, const _dgematrix &)
 
_dgematrix operator* (const _dgbmatrix &, const dsymatrix &)
 
_dgematrix operator* (const _dgbmatrix &, const _dsymatrix &)
 
_dgbmatrix operator* (const _dgbmatrix &, const dgbmatrix &)
 
_dgbmatrix operator* (const _dgbmatrix &, const _dgbmatrix &)
 
_dgematrix operator* (const _dgbmatrix &, const dgsmatrix &)
 
_dgematrix operator* (const _dgbmatrix &, const _dgsmatrix &)
 
_dgematrix operator* (const _dgbmatrix &, const dssmatrix &)
 
_dgematrix operator* (const _dgbmatrix &, const _dssmatrix &)
 
_dgbmatrix operator* (const _dgbmatrix &, const double &)
 
_dgbmatrix operator/ (const _dgbmatrix &, const double &)
 
_dgbmatrix operator* (const double &, const _dgbmatrix &)
 

Detailed Description

(DO NOT USE) Smart-temporary Real Double-precision General Band Matrix Class

Definition at line 3 of file _dgbmatrix.hpp.

Constructor & Destructor Documentation

_dgbmatrix::_dgbmatrix ( )
inline

_dgbmatrix constructor

Definition at line 3 of file _dgbmatrix-constructor.hpp.

References array, darray, kl, ku, m, and n.

4 {CPPL_VERBOSE_REPORT;
5  m =0;
6  n =0;
7  kl =0;
8  ku =0;
9  array =NULL;
10  darray =NULL;
11 }
double ** darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:14
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix::_dgbmatrix ( const _dgbmatrix mat)
inline

_dgbmatrix copy constructor

Definition at line 15 of file _dgbmatrix-constructor.hpp.

References array, darray, kl, ku, m, n, and nullify().

16 {CPPL_VERBOSE_REPORT;
17  m =mat.m;
18  n =mat.n;
19  kl =mat.kl;
20  ku =mat.ku;
21  array =mat.array;
22  darray =mat.darray;
23 
24  mat.nullify();
25 }
double ** darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:14
void nullify() const
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix::~_dgbmatrix ( )
inline

_dgbmatrix destructor

Definition at line 33 of file _dgbmatrix-constructor.hpp.

References array, and darray.

34 {CPPL_VERBOSE_REPORT;
35  delete[] array;
36  delete[] darray;
37 }
double ** darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:14
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13

Member Function Documentation

_zgbmatrix _dgbmatrix::to_zgbmatrix ( ) const
inline

cast to _zgbmatrix

Definition at line 3 of file _dgbmatrix-cast.hpp.

References _(), zgbmatrix::array, array, destroy(), i, kl, ku, m, and n.

4 {CPPL_VERBOSE_REPORT;
5  zgbmatrix newmat(m,n,kl,ku);
6 
7  for(CPPL_INT i=0; i<(kl+ku+1)*n; i++){
8  newmat.array[i] =comple(array[i],0.0);
9  }
10 
11  destroy();
12  return _(newmat);
13 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
Complex Double-precision General Band Matrix Class.
Definition: zgbmatrix.hpp:3
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix _dgbmatrix::to_dgematrix ( ) const
inline

convert to _dgematrix

Definition at line 21 of file _dgbmatrix-cast.hpp.

References _(), destroy(), i, kl, ku, m, and n.

22 {CPPL_VERBOSE_REPORT;
23  dgematrix newmat( dgematrix(m,n).zero() );
24 
25  for(CPPL_INT i=0; i<m; i++){
26  const CPPL_INT jmax =std::min(n,i+ku+1);
27  for(CPPL_INT j=std::max(CPPL_INT(0),i-kl); j<jmax; j++){
28  newmat(i,j) =(*this)(i,j);
29  }
30  }
31 
32  destroy();
33  return _(newmat);
34 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
double & _dgbmatrix::operator() ( const CPPL_INT &  i,
const CPPL_INT &  j 
) const
inline

operator() for const object

Definition at line 3 of file _dgbmatrix-io.hpp.

References darray, i, kl, ku, m, and n.

Referenced by write().

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if( i<0 || j<0 || m<=i || n<=j || i-j>kl || j-i>ku ){
7  ERROR_REPORT;
8  std::cerr << "The required component is out of the matrix size." << std::endl
9  << "Your input is (" << i << "," << j << "), whereas the matrix size is (" << m << "," << n << " , " << kl << "," << ku << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  //return array[ku+i+(kl+ku)*j];
15  return darray[j][ku-j+i];
16 }
friend _dgematrix i(const _dgbmatrix &)
double ** darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:14
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
void _dgbmatrix::write ( const char *  filename) const
inline

Definition at line 42 of file _dgbmatrix-io.hpp.

References destroy(), i, kl, ku, m, n, and operator()().

43 {CPPL_VERBOSE_REPORT;
44  std::ofstream ofs(filename, std::ios::trunc);
45  ofs.setf(std::cout.flags());
46  ofs.precision(std::cout.precision());
47  ofs.width(std::cout.width());
48  ofs.fill(std::cout.fill());
49 
50  ofs << "#dgbmatrix" << " " << m << " " << n << " " << kl << " " << ku << std::endl;
51  for(CPPL_INT i=0; i<m; i++){
52  const CPPL_INT jmax =std::min(n,i+ku+1);
53  for(CPPL_INT j=std::max(CPPL_INT(0),i-kl); j<jmax; j++){
54  ofs << operator()(i,j) << " ";
55  }
56  ofs << std::endl;
57  }
58 
59  ofs.close();
60  destroy();
61 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double & operator()(const CPPL_INT &, const CPPL_INT &) const
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
void _dgbmatrix::nullify ( ) const
inline

nullify all the matrix data

Definition at line 3 of file _dgbmatrix-misc.hpp.

References array, darray, kl, ku, m, and n.

Referenced by _dgbmatrix(), dgbmatrix::dgbmatrix(), and dgbmatrix::shallow_copy().

4 {CPPL_VERBOSE_REPORT;
5  m=0;
6  n=0;
7  kl=0;
8  ku=0;
9  array=NULL;
10  darray=NULL;
11 }
double ** darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:14
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
void _dgbmatrix::destroy ( ) const
inline

destroy all the matrix data

Definition at line 15 of file _dgbmatrix-misc.hpp.

References array, and darray.

Referenced by operator*(), dgbmatrix::operator*=(), dgematrix::operator*=(), operator+(), dgbmatrix::operator+=(), dgematrix::operator+=(), operator-(), dgbmatrix::operator-=(), dgematrix::operator-=(), operator<<(), t(), to_dgematrix(), to_zgbmatrix(), and write().

16 {CPPL_VERBOSE_REPORT;
17  delete [] array;
18  delete [] darray;
19  array=NULL;
20  darray=NULL;
21 }
double ** darray
array of pointers of column head addresses
Definition: _dgbmatrix.hpp:14
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  s,
const _dgbmatrix mat 
)
friend

Definition at line 23 of file _dgbmatrix-io.hpp.

24 {CPPL_VERBOSE_REPORT;
25  for(CPPL_INT i=0; i<mat.m; i++){
26  for(CPPL_INT j=0; j<mat.n; j++){
27  if( i-j>mat.kl || j-i>mat.ku ){ s << " x"; }
28  else{ s << " " << mat(i,j); }
29  }
30  s << std::endl;
31  }
32 
33  mat.destroy();
34  return s;
35 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix t ( const _dgbmatrix mat)
friend

return its transposed dgbmatrix

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

4 {CPPL_VERBOSE_REPORT;
5  dgbmatrix newmat(mat.n, mat.m, mat.ku, mat.kl);
6 
7  for(CPPL_INT i=0; i<newmat.m; i++){
8  const CPPL_INT jmax =std::min(newmat.n,i+newmat.ku+1);
9  for(CPPL_INT j=std::max(CPPL_INT(0),i-newmat.kl); j<jmax; j++){
10  newmat(i,j) =mat(j,i);
11  }
12  }
13 
14  mat.destroy();
15  return _(newmat);
16 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix i ( const _dgbmatrix mat)
friend

return its inverse matrix

Definition at line 20 of file _dgbmatrix-calc.hpp.

Referenced by operator()(), to_dgematrix(), to_zgbmatrix(), and write().

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

+_dgbmatrix operator

Definition at line 3 of file _dgbmatrix-unary.hpp.

4 {CPPL_VERBOSE_REPORT;
5  return mat;
6 }
_dgbmatrix operator- ( const _dgbmatrix mat)
friend

-_dgbmatrix operator

Definition at line 10 of file _dgbmatrix-unary.hpp.

11 {CPPL_VERBOSE_REPORT;
12  for(CPPL_INT i=0; i<(mat.kl+mat.ku+1)*mat.n; i++){
13  mat.array[i]=-mat.array[i];
14  }
15 
16  return mat;
17 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
_dgematrix operator+ ( const _dgbmatrix matA,
const dgematrix matB 
)
friend

_dgbmatrix+dgematrix operator

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

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.n!=matB.n || matA.m!=matB.m){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dgematrix newmat(matB);
15  for(CPPL_INT i=0; i<matA.m; i++){
16  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
17  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
18  newmat(i,j) += matA(i,j);
19  }
20  }
21 
22  matA.destroy();
23  return _(newmat);
24 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator+ ( const _dgbmatrix matA,
const _dgematrix matB 
)
friend

_dgbmatrix+_dgematrix operator

Definition at line 3 of file _dgbmatrix-_dgematrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.n!=matB.n || matA.m!=matB.m){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  for(CPPL_INT i=0; i<matA.m; i++){
15  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
16  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
17  matB(i,j) += matA(i,j);
18  }
19  }
20 
21  matA.destroy();
22  return matB;
23 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dgematrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator+ ( const _dgbmatrix matA,
const dsymatrix matB 
)
friend

_dgbmatrix+dsymatrix operator

Definition at line 3 of file _dgbmatrix-dsymatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.m!=matB.n || matA.n!=matB.n){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.n << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dgematrix newmat(matB.to_dgematrix());
15  for(CPPL_INT i=0; i<matA.m; i++){
16  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
17  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
18  newmat(i,j) += matA(i,j);
19  }
20  }
21 
22  matA.destroy();
23  return _(newmat);
24 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dgematrix to_dgematrix() const
CPPL_INT n
matrix column size
Definition: dsymatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator+ ( const _dgbmatrix matA,
const _dsymatrix matB 
)
friend

_dgbmatrix+_dsymatrix operator

Definition at line 3 of file _dgbmatrix-_dsymatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.m!=matB.n || matA.n!=matB.n){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.n << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dgematrix newmat(matB.n, matB.n);
15  for(CPPL_INT i=0; i<matA.m; i++){
16  for(CPPL_INT j=0; j<matB.n; j++){
17  newmat(i,j) = matB(i,j);
18  }
19  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
20  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
21  newmat(i,j) += matA(i,j);
22  }
23  }
24 
25  matA.destroy();
26  matB.destroy();
27  return _(newmat);
28 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT n
matrix column size
Definition: _dsymatrix.hpp:11
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix operator+ ( const _dgbmatrix matA,
const dgbmatrix matB 
)
friend

_dgbmatrix+dgbmatrix operator

Definition at line 3 of file _dgbmatrix-dgbmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.n!=matB.n || matA.m!=matB.m){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  if(matA.kl>=matB.kl && matA.ku>=matB.ku){
15  for(CPPL_INT i=0; i<matB.m; i++){
16  const CPPL_INT jmax =std::min(matB.n,i+matB.ku+1);
17  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax; j++){
18  matA(i,j) += matB(i,j);
19  }
20  }
21 
22  return matA;
23  }
24 
25  else{
26  dgbmatrix newmat(matA.m,matA.n,std::max(matA.kl,matB.kl),std::max(matA.ku,matB.ku));
27  newmat.zero();
28 
29  for(CPPL_INT i=0; i<matA.m; i++){
30  const CPPL_INT jmax1 =std::min(matA.n,i+matA.ku+1);
31  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax1; j++){
32  newmat(i,j) += matA(i,j);
33  }
34  const CPPL_INT jmax2 =std::min(matB.n,i+matB.ku+1);
35  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax2; j++){
36  newmat(i,j) += matB(i,j);
37  }
38  }
39 
40  matA.destroy();
41  return _(newmat);
42  }
43 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgbmatrix.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: dgbmatrix.hpp:11
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT ku
upper band width
Definition: dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
CPPL_INT n
matrix column size
Definition: dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix operator+ ( const _dgbmatrix matA,
const _dgbmatrix matB 
)
friend

_dgbmatrix+_dgbmatrix operator

Definition at line 3 of file _dgbmatrix-_dgbmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.n!=matB.n || matA.m!=matB.m){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  if(matA.kl>matB.kl && matA.ku>matB.ku){
15  for(CPPL_INT i=0; i<matB.m; i++){
16  const CPPL_INT jmax =std::min(matB.n,i+matB.ku+1);
17  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax; j++){
18  matA(i,j) += matB(i,j);
19  }
20  }
21 
22  matB.destroy();
23  return matA;
24  }
25 
26  else if(matB.kl>matA.kl && matB.ku>matA.ku){
27  for(CPPL_INT i=0; i<matA.m; i++){
28  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
29  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
30  matB(i,j) += matA(i,j);
31  }
32  }
33 
34  matA.destroy();
35  return matB;
36  }
37 
38  else{
39  dgbmatrix newmat(matA.m,matA.n,std::max(matA.kl,matB.kl),std::max(matA.ku,matB.ku));
40  newmat.zero();
41 
42  for(CPPL_INT i=0; i<matA.m; i++){
43  const CPPL_INT jmax1 =std::min(matA.n,i+matA.ku+1);
44  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax1; j++){
45  newmat(i,j) += matA(i,j);
46  }
47  const CPPL_INT jmax2 =std::min(matB.n,i+matB.ku+1);
48  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax2; j++){
49  newmat(i,j) += matB(i,j);
50  }
51  }
52 
53  matA.destroy();
54  matB.destroy();
55  return _(newmat);
56  }
57 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator+ ( const _dgbmatrix matA,
const dgsmatrix matB 
)
friend

_dgbmatrix+dgsmatrix operator

Definition at line 3 of file _dgbmatrix-dgsmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.n!=matB.n || matA.m!=matB.m){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dgematrix newmat( matB.to_dgematrix() );
15 
16  for(CPPL_INT i=0; i<matA.m; i++){
17  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
18  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
19  newmat(i,j)+=matA(i,j);
20  }
21  }
22 
23  matA.destroy();
24  return _(newmat);
25 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: dgsmatrix.hpp:10
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dgematrix to_dgematrix() const
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: dgsmatrix.hpp:9
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator+ ( const _dgbmatrix matA,
const _dgsmatrix matB 
)
friend

_dgbmatrix+_dgsmatrix operator

Definition at line 3 of file _dgbmatrix-_dgsmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(matA.n!=matB.n || matA.m!=matB.m){
7  ERROR_REPORT;
8  std::cerr << "These two matrises can not make a summation." << std::endl
9  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dgematrix newmat( matB.to_dgematrix() );
15 
16  for(CPPL_INT i=0; i<matA.m; i++){
17  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
18  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
19  newmat(i,j)+=matA(i,j);
20  }
21  }
22 
23  matA.destroy();
24  matB.destroy();
25  return _(newmat);
26 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: _dgsmatrix.hpp:10
_dgematrix to_dgematrix() const
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgsmatrix.hpp:9
void destroy() const
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator+ ( const _dgbmatrix ,
const dssmatrix  
)
friend
_dgematrix operator+ ( const _dgbmatrix ,
const _dssmatrix  
)
friend
_dgematrix operator- ( const _dgbmatrix matA,
const dgematrix matB 
)
friend

_dgbmatrix-dgematrix operator

Definition at line 28 of file _dgbmatrix-dgematrix.hpp.

29 {CPPL_VERBOSE_REPORT;
30 #ifdef CPPL_DEBUG
31  if(matA.n!=matB.n || matA.m!=matB.m){
32  ERROR_REPORT;
33  std::cerr << "These two matrises can not make a summation." << std::endl
34  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
35  exit(1);
36  }
37 #endif//CPPL_DEBUG
38 
39  dgematrix newmat(-matB);
40  for(CPPL_INT i=0; i<matA.m; i++){
41  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
42  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
43  newmat(i,j) += matA(i,j);
44  }
45  }
46 
47  matA.destroy();
48  return _(newmat);
49 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator- ( const _dgbmatrix matA,
const _dgematrix matB 
)
friend

_dgbmatrix-_dgematrix operator

Definition at line 27 of file _dgbmatrix-_dgematrix.hpp.

28 {CPPL_VERBOSE_REPORT;
29 #ifdef CPPL_DEBUG
30  if(matA.n!=matB.n || matA.m!=matB.m){
31  ERROR_REPORT;
32  std::cerr << "These two matrises can not make a summation." << std::endl
33  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
34  exit(1);
35  }
36 #endif//CPPL_DEBUG
37 
38  for(CPPL_INT i=0; i<matA.m; i++){
39  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
40  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
41  matB(i,j) = matA(i,j)-matB(i,j);
42  }
43  }
44 
45  matA.destroy();
46  return matB;
47 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dgematrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator- ( const _dgbmatrix matA,
const dsymatrix matB 
)
friend

_dgbmatrix-dsymatrix operator

Definition at line 28 of file _dgbmatrix-dsymatrix.hpp.

29 {CPPL_VERBOSE_REPORT;
30 #ifdef CPPL_DEBUG
31  if(matA.m!=matB.n || matA.n!=matB.n){
32  ERROR_REPORT;
33  std::cerr << "These two matrises can not make a summation." << std::endl
34  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.n << "x" << matB.n << ")." << std::endl;
35  exit(1);
36  }
37 #endif//CPPL_DEBUG
38 
39  dgematrix newmat( (-matB).to_dgematrix() );
40  for(CPPL_INT i=0; i<matA.m; i++){
41  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
42  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
43  newmat(i,j) += matA(i,j);
44  }
45  }
46 
47  matA.destroy();
48  return _(newmat);
49 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT n
matrix column size
Definition: dsymatrix.hpp:10
_dcovector _(dcovector &vec)
_dgematrix to_dgematrix() const
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator- ( const _dgbmatrix matA,
const _dsymatrix matB 
)
friend

_dgbmatrix-_dsymatrix operator

Definition at line 32 of file _dgbmatrix-_dsymatrix.hpp.

33 {CPPL_VERBOSE_REPORT;
34 #ifdef CPPL_DEBUG
35  if(matA.m!=matB.n || matA.n!=matB.n){
36  ERROR_REPORT;
37  std::cerr << "These two matrises can not make a summation." << std::endl
38  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.n << "x" << matB.n << ")." << std::endl;
39  exit(1);
40  }
41 #endif//CPPL_DEBUG
42 
43  dgematrix newmat(matB.n, matB.n);
44  for(CPPL_INT i=0; i<newmat.m; i++){
45  for(CPPL_INT j=0; j<newmat.n; j++){
46  newmat(i,j) = -matB(i,j);
47  }
48  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
49  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
50  newmat(i,j) += matA(i,j);
51  }
52  }
53 
54  matA.destroy();
55  matB.destroy();
56  return _(newmat);
57 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dsymatrix.hpp:11
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix operator- ( const _dgbmatrix matA,
const dgbmatrix matB 
)
friend

_dgbmatrix-dgbmatrix operator

Definition at line 47 of file _dgbmatrix-dgbmatrix.hpp.

48 {CPPL_VERBOSE_REPORT;
49 #ifdef CPPL_DEBUG
50  if(matA.n!=matB.n || matA.m!=matB.m){
51  ERROR_REPORT;
52  std::cerr << "These two matrises can not make a subtraction." << std::endl
53  << "Your input was (" << matA.m << "x" << matA.n << ") - (" << matB.m << "x" << matB.n << ")." << std::endl;
54  exit(1);
55  }
56 #endif//CPPL_DEBUG
57 
58  if(matA.kl>=matB.kl && matA.ku>=matB.ku){
59  for(CPPL_INT i=0; i<matB.m; i++){
60  const CPPL_INT jmax =std::min(matB.n,i+matB.ku+1);
61  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax; j++){
62  matA(i,j) -= matB(i,j);
63  }
64  }
65 
66  return matA;
67  }
68 
69  else{
70  dgbmatrix newmat(matA.m,matA.n,std::max(matA.kl,matB.kl),std::max(matA.ku,matB.ku));
71  newmat.zero();
72 
73  for(CPPL_INT i=0; i<matA.m; i++){
74  const CPPL_INT jmax1 =std::min(matA.n,i+matA.ku+1);
75  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax1; j++){
76  newmat(i,j) += matA(i,j);
77  }
78  const CPPL_INT jmax2 =std::min(matB.n,i+matB.ku+1);
79  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax2; j++){
80  newmat(i,j) -= matB(i,j);
81  }
82  }
83 
84  return _(newmat);
85  }
86 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgbmatrix.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: dgbmatrix.hpp:11
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT ku
upper band width
Definition: dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
CPPL_INT n
matrix column size
Definition: dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix operator- ( const _dgbmatrix matA,
const _dgbmatrix matB 
)
friend

_dgbmatrix-_dgbmatrix operator

Definition at line 61 of file _dgbmatrix-_dgbmatrix.hpp.

62 {CPPL_VERBOSE_REPORT;
63 #ifdef CPPL_DEBUG
64  if(matA.n!=matB.n || matA.m!=matB.m){
65  ERROR_REPORT;
66  std::cerr << "These two matrises can not make a subtraction." << std::endl
67  << "Your input was (" << matA.m << "x" << matA.n << ") - (" << matB.m << "x" << matB.n << ")." << std::endl;
68  exit(1);
69  }
70 #endif//CPPL_DEBUG
71 
72  if(matA.kl>matB.kl && matA.ku>matB.ku){
73  for(CPPL_INT i=0; i<matB.m; i++){
74  const CPPL_INT jmax =std::min(matB.n,i+matB.ku+1);
75  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax; j++){
76  matA(i,j) -= matB(i,j);
77  }
78  }
79 
80  matB.destroy();
81  return matA;
82  }
83 
84  else{
85  dgbmatrix newmat(matA.m,matA.n,std::max(matA.kl,matB.kl),std::max(matA.ku,matB.ku));
86  newmat.zero();
87 
88  for(CPPL_INT i=0; i<matA.m; i++){
89  const CPPL_INT jmax1 =std::min(matA.n,i+matA.ku+1);
90  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax1; j++){
91  newmat(i,j) += matA(i,j);
92  }
93  const CPPL_INT jmax2 =std::min(matB.n,i+matB.ku+1);
94  for(CPPL_INT j=std::max(CPPL_INT(0),i-matB.kl); j<jmax2; j++){
95  newmat(i,j) -= matB(i,j);
96  }
97  }
98 
99  matA.destroy();
100  matB.destroy();
101  return _(newmat);
102  }
103 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator- ( const _dgbmatrix matA,
const dgsmatrix matB 
)
friend

_dgbmatrix-dgsmatrix operator

Definition at line 29 of file _dgbmatrix-dgsmatrix.hpp.

30 {CPPL_VERBOSE_REPORT;
31 #ifdef CPPL_DEBUG
32  if(matA.n!=matB.n || matA.m!=matB.m){
33  ERROR_REPORT;
34  std::cerr << "These two matrises can not make a summation." << std::endl
35  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
36  exit(1);
37  }
38 #endif//CPPL_DEBUG
39 
40  dgematrix newmat( (-matB).to_dgematrix() );
41 
42  for(CPPL_INT i=0; i<matA.m; i++){
43  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
44  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
45  newmat(i,j)-=matA(i,j);
46  }
47  }
48 
49  matA.destroy();
50  return _(newmat);
51 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: dgsmatrix.hpp:10
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: dgsmatrix.hpp:9
_dgematrix to_dgematrix() const
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator- ( const _dgbmatrix matA,
const _dgsmatrix matB 
)
friend

_dgbmatrix-_dgsmatrix operator

Definition at line 30 of file _dgbmatrix-_dgsmatrix.hpp.

31 {CPPL_VERBOSE_REPORT;
32 #ifdef CPPL_DEBUG
33  if(matA.n!=matB.n || matA.m!=matB.m){
34  ERROR_REPORT;
35  std::cerr << "These two matrises can not make a summation." << std::endl
36  << "Your input was (" << matA.m << "x" << matA.n << ") + (" << matB.m << "x" << matB.n << ")." << std::endl;
37  exit(1);
38  }
39 #endif//CPPL_DEBUG
40 
41  dgematrix newmat( (-matB).to_dgematrix() );
42 
43  for(CPPL_INT i=0; i<matA.m; i++){
44  const CPPL_INT jmax =std::min(matA.n,i+matA.ku+1);
45  for(CPPL_INT j=std::max(CPPL_INT(0),i-matA.kl); j<jmax; j++){
46  newmat(i,j)-=matA(i,j);
47  }
48  }
49 
50  matA.destroy();
51  matB.destroy();
52  return _(newmat);
53 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: _dgsmatrix.hpp:10
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgsmatrix.hpp:9
void destroy() const
_dcovector _(dcovector &vec)
_dgematrix to_dgematrix() const
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator- ( const _dgbmatrix ,
const dssmatrix  
)
friend
_dgematrix operator- ( const _dgbmatrix ,
const _dssmatrix  
)
friend
_dcovector operator* ( const _dgbmatrix mat,
const dcovector vec 
)
friend

_dgbmatrix*dcovector operator

Definition at line 3 of file _dgbmatrix-dcovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(mat.n!=vec.l){
7  ERROR_REPORT;
8  std::cerr << "These matrix and vector can not make a product." << std::endl
9  << "Your input was (" << mat.m << "x" << mat.n << ") * (" << vec.l << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dcovector newvec(mat.m);
15  char trans ='n';
16  double alpha =1.;
17  CPPL_INT lda =mat.kl+mat.ku+1;
18  CPPL_INT inc =1;
19  double beta =0.;
20 
21  dgbmv_( &trans, &mat.m, &mat.n, &mat.kl, &mat.ku, &alpha, mat.array, &lda, vec.array, &inc, &beta, newvec.array, &inc );
22 
23  mat.destroy();
24  return _(newvec);
25 }
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT l
vector size
Definition: dcovector.hpp:9
void destroy() const
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dcovector operator* ( const _dgbmatrix mat,
const _dcovector vec 
)
friend

_dgbmatrix*_dcovector operator

Definition at line 3 of file _dgbmatrix-_dcovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(mat.n!=vec.l){
7  ERROR_REPORT;
8  std::cerr << "These matrix and vector can not make a product." << std::endl
9  << "Your input was (" << mat.m << "x" << mat.n << ") * (" << vec.l << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  dcovector newvec(mat.m);
15  char trans ='n';
16  double alpha =1.;
17  CPPL_INT lda =mat.kl+mat.ku+1;
18  CPPL_INT inc =1;
19  double beta =0.;
20 
21  dgbmv_( &trans, &mat.m, &mat.n, &mat.kl, &mat.ku, &alpha, mat.array, &lda, vec.array, &inc, &beta, newvec.array, &inc );
22 
23  mat.destroy();
24  vec.destroy();
25  return _(newvec);
26 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
void destroy() const
Real Double-precision Column Vector Class.
Definition: dcovector.hpp:3
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix matA,
const dgematrix matB 
)
friend

_dgbmatrix*dgematrix operator

Definition at line 53 of file _dgbmatrix-dgematrix.hpp.

54 {CPPL_VERBOSE_REPORT;
55 #ifdef CPPL_DEBUG
56  if(matA.n!=matB.m){
57  ERROR_REPORT;
58  std::cerr << "These two matrises can not make a product." << std::endl
59  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.m << "x" << matB.n << ")." << std::endl;
60  exit(1);
61  }
62 #endif//CPPL_DEBUG
63 
64  dgematrix newmat( matA.m, matB.n );
65  newmat.zero();
66 
67  for(CPPL_INT i=0; i<newmat.m; i++){
68  for(CPPL_INT j=0; j<newmat.n; j++){
69  const CPPL_INT kmax =std::min(matA.n,i+matA.ku+1);
70  for(CPPL_INT k=std::max(CPPL_INT(0),i-matA.kl); k<kmax; k++){
71  newmat(i,j) += matA(i,k)*matB(k,j);
72  }
73  }
74  }
75 
76  matA.destroy();
77  return _(newmat);
78 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgematrix.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT n
matrix column size
Definition: dgematrix.hpp:10
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix matA,
const _dgematrix matB 
)
friend

_dgbmatrix*_dgematrix operator

Definition at line 51 of file _dgbmatrix-_dgematrix.hpp.

52 {CPPL_VERBOSE_REPORT;
53 #ifdef CPPL_DEBUG
54  if(matA.n!=matB.m){
55  ERROR_REPORT;
56  std::cerr << "These two matrises can not make a product." << std::endl
57  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.m << "x" << matB.n << ")." << std::endl;
58  exit(1);
59  }
60 #endif//CPPL_DEBUG
61 
62  dgematrix newmat( matA.m, matB.n );
63  newmat.zero();
64 
65  for(CPPL_INT i=0; i<newmat.m; i++){
66  for(CPPL_INT j=0; j<newmat.n; j++){
67  const CPPL_INT kmax =std::min(matA.n,i+matA.ku+1);
68  for(CPPL_INT k=std::max(CPPL_INT(0),i-matA.kl); k<kmax; k++){
69  newmat(i,j) += matA(i,k)*matB(k,j);
70  }
71  }
72  }
73 
74  matA.destroy();
75  matB.destroy();
76  return _(newmat);
77 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dgematrix.hpp:10
void destroy() const
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix matA,
const dsymatrix matB 
)
friend

_dgbmatrix*dgematrix operator

Definition at line 53 of file _dgbmatrix-dsymatrix.hpp.

54 {CPPL_VERBOSE_REPORT;
55 #ifdef CPPL_DEBUG
56  if(matA.n!=matB.n){
57  ERROR_REPORT;
58  std::cerr << "These two matrises can not make a product." << std::endl
59  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.n << "x" << matB.n << ")." << std::endl;
60  exit(1);
61  }
62 #endif//CPPL_DEBUG
63 
64  dgematrix newmat( matA.m, matB.n );
65  newmat.zero();
66 
67  for(CPPL_INT i=0; i<newmat.m; i++){
68  for(CPPL_INT j=0; j<newmat.n; j++){
69  const CPPL_INT kmax =std::min(matA.n,i+matA.ku+1);
70  for(CPPL_INT k=std::max(CPPL_INT(0),i-matA.kl); k<kmax; k++){
71  newmat(i,j) += matA(i,k)*matB(k,j);
72  }
73  }
74  }
75 
76  matA.destroy();
77  return _(newmat);
78 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: dsymatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix matA,
const _dsymatrix matB 
)
friend

_dgbmatrix*_dsymatrix operator

Definition at line 61 of file _dgbmatrix-_dsymatrix.hpp.

62 {CPPL_VERBOSE_REPORT;
63 #ifdef CPPL_DEBUG
64  if(matA.n!=matB.n){
65  ERROR_REPORT;
66  std::cerr << "These two matrises can not make a product." << std::endl
67  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.n << "x" << matB.n << ")." << std::endl;
68  exit(1);
69  }
70 #endif//CPPL_DEBUG
71 
72  dgematrix newmat( matA.m, matB.n );
73  newmat.zero();
74 
75  for(CPPL_INT i=0; i<newmat.m; i++){
76  for(CPPL_INT j=0; j<newmat.n; j++){
77  const CPPL_INT kmax =std::min(matA.n,i+matA.ku+1);
78  for(CPPL_INT k=std::max(CPPL_INT(0),i-matA.kl); k<kmax; k++){
79  newmat(i,j) += matA(i,k)*matB(k,j);
80  }
81  }
82  }
83 
84  matA.destroy();
85  matB.destroy();
86  return _(newmat);
87 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
CPPL_INT n
matrix column size
Definition: _dsymatrix.hpp:11
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix operator* ( const _dgbmatrix matA,
const dgbmatrix matB 
)
friend

_dgbmatrix*dgbmatrix operator

Definition at line 90 of file _dgbmatrix-dgbmatrix.hpp.

91 {CPPL_VERBOSE_REPORT;
92 #ifdef CPPL_DEBUG
93  if(matA.n!=matB.m){
94  ERROR_REPORT;
95  std::cerr << "These two matrises can not make a product." << std::endl
96  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.m << "x" << matB.n << ")." << std::endl;
97  exit(1);
98  }
99 #endif//CPPL_DEBUG
100 
101  dgbmatrix newmat( matA.m, matB.n, std::min(matA.kl+matB.kl,matA.m-1), std::min(matA.ku+matB.ku,matB.n-1) );
102  newmat.zero();
103 
104  for(CPPL_INT i=0; i<newmat.m; i++){
105  const CPPL_INT jmax =std::min(newmat.n,i+newmat.ku+1);
106  for(CPPL_INT j=std::max(CPPL_INT(0),i-newmat.kl); j<jmax; j++){
107  const CPPL_INT kmax =std::min( std::min(matA.n,i+matA.ku+1), std::min(matB.m,j+matB.kl+1) );
108  for(CPPL_INT k=std::max( std::max(CPPL_INT(0),i-matA.kl), std::max(CPPL_INT(0),j-matB.ku) ); k<kmax; k++){
109  newmat(i,j) += matA(i,k)*matB(k,j);
110  }
111  }
112  }
113 
114  matA.destroy();
115  return _(newmat);
116 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT m
matrix row size
Definition: dgbmatrix.hpp:9
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: dgbmatrix.hpp:11
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT ku
upper band width
Definition: dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
CPPL_INT n
matrix column size
Definition: dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgbmatrix operator* ( const _dgbmatrix matA,
const _dgbmatrix matB 
)
friend

_dgbmatrix*_dgbmatrix operator

Definition at line 107 of file _dgbmatrix-_dgbmatrix.hpp.

108 {CPPL_VERBOSE_REPORT;
109 #ifdef CPPL_DEBUG
110  if(matA.n!=matB.m){
111  ERROR_REPORT;
112  std::cerr << "These two matrises can not make a product." << std::endl
113  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.m << "x" << matB.n << ")." << std::endl;
114  exit(1);
115  }
116 #endif//CPPL_DEBUG
117 
118  dgbmatrix newmat( matA.m, matB.n, std::min(matA.kl+matB.kl,matA.m-1), std::min(matA.ku+matB.ku,matB.n-1) );
119  newmat.zero();
120 
121  for(CPPL_INT i=0; i<newmat.m; i++){
122  const CPPL_INT jmax =std::min(newmat.n,i+newmat.ku+1);
123  for(CPPL_INT j=std::max(CPPL_INT(0),i-newmat.kl); j<jmax; j++){
124  const CPPL_INT kmax =std::min( std::min(matA.n,i+matA.ku+1), std::min(matB.m,j+matB.kl+1) );
125  for(CPPL_INT k=std::max( std::max(CPPL_INT(0),i-matA.kl), std::max(CPPL_INT(0),j-matB.ku) ); k<kmax; k++){
126  newmat(i,j) += matA(i,k)*matB(k,j);
127  }
128  }
129  }
130 
131  matA.destroy();
132  matB.destroy();
133  return _(newmat);
134 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
void destroy() const
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
Real Double-precision General Band Matrix Class.
Definition: dgbmatrix.hpp:3
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix matA,
const dgsmatrix matB 
)
friend

_dgbmatrix*dgsmatrix operator

Definition at line 55 of file _dgbmatrix-dgsmatrix.hpp.

56 {CPPL_VERBOSE_REPORT;
57 #ifdef CPPL_DEBUG
58  if(matA.n!=matB.m){
59  ERROR_REPORT;
60  std::cerr << "These two matrises can not make a product." << std::endl
61  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.m << "x" << matB.n << ")." << std::endl;
62  exit(1);
63  }
64 #endif//CPPL_DEBUG
65 
66  dgematrix newmat( matA.m, matB.n );
67  newmat.zero();
68 
69  const std::vector<dcomponent>::const_iterator matB_data_end =matB.data.end();
70  for(std::vector<dcomponent>::const_iterator it=matB.data.begin(); it!=matB_data_end; it++){
71  const CPPL_INT imax =std::min(matA.m,it->i+matA.kl);
72  for(CPPL_INT i=std::max(CPPL_INT(0),it->i-(matA.ku+1)); i<imax; i++){
73  newmat(i,it->j) += matA(i,it->i)*it->v;
74  }
75  }
76 
77  matA.destroy();
78  return _(newmat);
79 }
friend _dgematrix i(const _dgbmatrix &)
std::vector< dcomponent > data
matrix data
Definition: dgsmatrix.hpp:11
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: dgsmatrix.hpp:10
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
friend _dgematrix i(const _dgematrix &)
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: dgsmatrix.hpp:9
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix matA,
const _dgsmatrix matB 
)
friend

_dgbmatrix*_dgsmatrix operator

Definition at line 57 of file _dgbmatrix-_dgsmatrix.hpp.

58 {CPPL_VERBOSE_REPORT;
59 #ifdef CPPL_DEBUG
60  if(matA.n!=matB.m){
61  ERROR_REPORT;
62  std::cerr << "These two matrises can not make a product." << std::endl
63  << "Your input was (" << matA.m << "x" << matA.n << ") * (" << matB.m << "x" << matB.n << ")." << std::endl;
64  exit(1);
65  }
66 #endif//CPPL_DEBUG
67 
68  dgematrix newmat( matA.m, matB.n );
69  newmat.zero();
70 
71  const std::vector<dcomponent>::const_iterator matB_data_end =matB.data.end();
72  for(std::vector<dcomponent>::const_iterator it=matB.data.begin(); it!=matB_data_end; it++){
73  const CPPL_INT imax =std::min(matA.m,it->i+matA.kl);
74  for(CPPL_INT i=std::max(CPPL_INT(0),it->i-(matA.ku+1)); i<imax; i++){
75  newmat(i,it->j) += matA(i,it->i)*it->v;
76  }
77  }
78 
79  matA.destroy();
80  matB.destroy();
81  return _(newmat);
82 }
friend _dgematrix i(const _dgbmatrix &)
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT n
matrix column size
Definition: _dgsmatrix.hpp:10
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
friend _dgematrix i(const _dgematrix &)
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
CPPL_INT m
matrix row size
Definition: _dgsmatrix.hpp:9
void destroy() const
std::vector< dcomponent > data
matrix data
Definition: _dgsmatrix.hpp:11
_dcovector _(dcovector &vec)
CPPL_INT m
matrix row size
Definition: _dgbmatrix.hpp:9
_dgematrix operator* ( const _dgbmatrix ,
const dssmatrix  
)
friend
_dgematrix operator* ( const _dgbmatrix ,
const _dssmatrix  
)
friend
_dgbmatrix operator* ( const _dgbmatrix mat,
const double &  d 
)
friend

_dgbmatrix*double operator

Definition at line 3 of file _dgbmatrix-double.hpp.

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT size =(mat.kl+mat.ku+1)*mat.n;
6  CPPL_INT inc =1;
7  dscal_(&size, &d, mat.array, &inc);
8  return mat;
9 }
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
_dgbmatrix operator/ ( const _dgbmatrix mat,
const double &  d 
)
friend

_dgbmatrix/double operator

Definition at line 13 of file _dgbmatrix-double.hpp.

14 {CPPL_VERBOSE_REPORT;
15  CPPL_INT size =(mat.kl+mat.ku+1)*mat.n;
16  double dinv =1./d;
17  CPPL_INT inc =1;
18  dscal_(&size, &dinv, mat.array, &inc);
19  return mat;
20 }
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13
_dgbmatrix operator* ( const double &  d,
const _dgbmatrix mat 
)
friend

double*_dgbmatrix operator

Definition at line 3 of file double-_dgbmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT size =(mat.kl+mat.ku+1)*mat.n;
6  CPPL_INT inc =1;
7  dscal_(&size, &d, mat.array, &inc);
8  return mat;
9 }
CPPL_INT ku
upper band width
Definition: _dgbmatrix.hpp:12
CPPL_INT kl
lower band width
Definition: _dgbmatrix.hpp:11
CPPL_INT n
matrix column size
Definition: _dgbmatrix.hpp:10
double * array
1D array to store matrix data
Definition: _dgbmatrix.hpp:13

Member Data Documentation

CPPL_INT _dgbmatrix::m
mutable
CPPL_INT _dgbmatrix::n
mutable
CPPL_INT _dgbmatrix::kl
mutable
CPPL_INT _dgbmatrix::ku
mutable
double* _dgbmatrix::array
mutable
double** _dgbmatrix::darray
mutable

array of pointers of column head addresses

Definition at line 14 of file _dgbmatrix.hpp.

Referenced by _(), _dgbmatrix(), destroy(), dgbmatrix::dgbmatrix(), nullify(), operator()(), dgbmatrix::shallow_copy(), and ~_dgbmatrix().


The documentation for this class was generated from the following files: