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

(DO NOT USE) Smart-temporary Complex Double-precision Row Vector Class More...

#include <_zrovector.hpp>

Public Member Functions

 _zrovector ()
 
 _zrovector (const _zrovector &)
 
 ~_zrovector ()
 
comple & operator() (const CPPL_INT &) const
 
void write (const char *) const
 
void nullify () const
 
void destroy () const
 

Public Attributes

CPPL_INT l
 vector size More...
 
comple * array
 1D array to store vector data More...
 

Friends

std::ostream & operator<< (std::ostream &, const _zrovector &)
 
_zcovector t (const _zrovector &)
 
_zrovector conj (const _zrovector &)
 
_zcovector conjt (const _zrovector &)
 
double nrm2 (const _zrovector &)
 
CPPL_INT idamax (const _zrovector &)
 
comple damax (const _zrovector &)
 
const _zrovectoroperator+ (const _zrovector &)
 
_zrovector operator- (const _zrovector &)
 
_zrovector operator+ (const _zrovector &, const zrovector &)
 
_zrovector operator+ (const _zrovector &, const _zrovector &)
 
_zrovector operator- (const _zrovector &, const zrovector &)
 
_zrovector operator- (const _zrovector &, const _zrovector &)
 
comple operator* (const _zrovector &, const zcovector &)
 
comple operator* (const _zrovector &, const _zcovector &)
 
_zrovector operator* (const _zrovector &, const zgematrix &)
 
_zrovector operator* (const _zrovector &, const _zgematrix &)
 
_zrovector operator* (const _zrovector &, const zhematrix &)
 
_zrovector operator* (const _zrovector &, const _zhematrix &)
 
_zrovector operator* (const _zrovector &, const zgbmatrix &)
 
_zrovector operator* (const _zrovector &, const _zgbmatrix &)
 
_zrovector operator* (const _zrovector &, const zgsmatrix &)
 
_zrovector operator* (const _zrovector &, const _zgsmatrix &)
 
_zrovector operator* (const _zrovector &, const zhsmatrix &)
 
_zrovector operator* (const _zrovector &, const _zhsmatrix &)
 
_zrovector operator* (const _zrovector &, const double &)
 
_zrovector operator* (const _zrovector &, const comple &)
 
_zrovector operator/ (const _zrovector &, const double &)
 
_zrovector operator/ (const _zrovector &, const comple &)
 
comple operator% (const _zrovector &, const zrovector &)
 
comple operator% (const _zrovector &, const _zrovector &)
 
_zrovector operator* (const double &, const _zrovector &)
 
_zrovector operator* (const comple &, const _zrovector &)
 

Detailed Description

(DO NOT USE) Smart-temporary Complex Double-precision Row Vector Class

Definition at line 3 of file _zrovector.hpp.

Constructor & Destructor Documentation

_zrovector::_zrovector ( )
inline

zrovector constructor

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

References array, and l.

4 {CPPL_VERBOSE_REPORT;
5  //////// initialize ////////
6  l =0;
7  array =NULL;
8 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector::_zrovector ( const _zrovector vec)
inline

_zrovector copy constructor

Definition at line 12 of file _zrovector-constructor.hpp.

References array, l, and nullify().

13 {CPPL_VERBOSE_REPORT;
14  //////// initialize ////////
15  l =vec.l;
16  array =vec.array;
17 
18  vec.nullify();
19 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
void nullify() const
_zrovector::~_zrovector ( )
inline

_zrovector destructor

Definition at line 27 of file _zrovector-constructor.hpp.

References array.

28 {CPPL_VERBOSE_REPORT;
29  delete [] array;
30 }
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10

Member Function Documentation

comple & _zrovector::operator() ( const CPPL_INT &  i) const
inline

operator() for const object

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

References array, i(), and l.

Referenced by write().

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if( i<0 || l<=i ){
7  ERROR_REPORT;
8  std::cerr << "The required component is out of the vector size." << std::endl
9  << "Your input is (" << i << "), whereas the vector size is (" << l << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  return array[i];
15 }
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
void _zrovector::write ( const char *  filename) const
inline

Definition at line 36 of file _zrovector-io.hpp.

References destroy(), i(), l, and operator()().

37 {CPPL_VERBOSE_REPORT;
38  std::ofstream ofs(filename, std::ios::trunc);
39  ofs.setf(std::cout.flags());
40  ofs.precision(std::cout.precision());
41  ofs.width(std::cout.width());
42  ofs.fill(std::cout.fill());
43 
44  ofs << "#zrovector" << " " << l << std::endl;
45  for(CPPL_INT i=0; i<l; i++){
46  ofs << operator()(i) << " ";
47  }
48  ofs << std::endl;
49 
50  ofs.close();
51  destroy();
52 }
comple & operator()(const CPPL_INT &) const
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
void _zrovector::nullify ( ) const
inline

nullify all the vector data

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

References array, and l.

Referenced by _zrovector(), zrovector::shallow_copy(), and zrovector::zrovector().

4 {CPPL_VERBOSE_REPORT;
5  l=0;
6  array=NULL;
7 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
void _zrovector::destroy ( ) const
inline

destroy all the vector data

Definition at line 11 of file _zrovector-misc.hpp.

References array.

Referenced by conjt(), damax(), idamax(), nrm2(), operator%(), operator*(), operator+(), zrovector::operator+=(), operator-(), zrovector::operator-=(), operator<<(), and write().

12 {CPPL_VERBOSE_REPORT;
13  delete [] array;
14  array=NULL;
15 }
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  s,
const _zrovector vec 
)
friend

Definition at line 22 of file _zrovector-io.hpp.

23 {CPPL_VERBOSE_REPORT;
24  for(CPPL_INT i=0; i<vec.l; i++){ s << " " << vec.array[i]; }
25  s << std::endl;
26 
27  vec.destroy();
28  return s;
29 }
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zcovector t ( const _zrovector rovec)
friend

return a transposed column vector

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

4 {CPPL_VERBOSE_REPORT;
5  _zcovector covec;
6  covec.l =rovec.l;
7  delete [] covec.array;
8  covec.array =rovec.array;
9 
10  return covec;
11 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store vector data
Definition: _zcovector.hpp:10
(DO NOT USE) Smart-temporary Complex Double-precision Column Vector Class
Definition: _zcovector.hpp:3
CPPL_INT l
vector size
Definition: _zcovector.hpp:9
_zrovector conj ( const _zrovector vec)
friend

return its conjugated vector

Definition at line 15 of file _zrovector-calc.hpp.

16 {CPPL_VERBOSE_REPORT;
17  for(CPPL_INT i=0; i<vec.l; i++){
18  vec(i) =std::conj(vec(i));
19  }
20  return vec;
21 }
_zrovector conj(const _zrovector &vec)
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
_zcovector conjt ( const _zrovector rovec)
friend

return a conjugate transposed column vector

Definition at line 25 of file _zrovector-calc.hpp.

26 {CPPL_VERBOSE_REPORT;
27  zcovector covec(rovec.l);
28  for(CPPL_INT i=0; i<rovec.l; i++){
29  covec(i) =std::conj(rovec(i));
30  }
31 
32  rovec.destroy();
33  return _(covec);
34 }
_zrovector conj(const _zrovector &vec)
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
Complex Double-precision Column Vector Class.
Definition: zcovector.hpp:3
_dcovector _(dcovector &vec)
double nrm2 ( const _zrovector vec)
friend

return its Euclidean norm

Definition at line 42 of file _zrovector-calc.hpp.

43 {CPPL_VERBOSE_REPORT;
44  CPPL_INT inc =1;
45  double val =dznrm2_(&vec.l, vec.array, &inc);
46  vec.destroy();
47  return val;
48 }
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
CPPL_INT idamax ( const _zrovector vec)
friend

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

Definition at line 53 of file _zrovector-calc.hpp.

54 {CPPL_VERBOSE_REPORT;
55  CPPL_INT inc =1;
56  CPPL_INT i =izamax_(&vec.l, vec.array, &inc) -1;
57  vec.destroy();
58  return i;
59 }
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple damax ( const _zrovector vec)
friend

return its largest absolute value

Definition at line 63 of file _zrovector-calc.hpp.

64 {CPPL_VERBOSE_REPORT;
65  CPPL_INT inc =1;
66  comple val =vec.array[izamax_(&vec.l, vec.array, &inc) -1];
67  vec.destroy();
68  return val;
69 }
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
const _zrovector& operator+ ( const _zrovector vec)
friend

+_zrovector operator

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

4 {CPPL_VERBOSE_REPORT;
5  return vec;
6 }
_zrovector operator- ( const _zrovector vec)
friend

-_zrovector operator

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

11 {CPPL_VERBOSE_REPORT;
12  for(CPPL_INT i=0; i<vec.l; i++){ vec.array[i]=-vec.array[i]; }
13  return vec;
14 }
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator+ ( const _zrovector vecA,
const zrovector vecB 
)
friend

_zrovector+zrovector operator

Definition at line 3 of file _zrovector-zrovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vecA.l!=vecB.l){
7  ERROR_REPORT;
8  std::cerr << "These two vectors can not make a sumation." << std::endl
9  << "Your input was (" << vecA.l << ") + (" << vecB.l << ")." << std::endl;
10  exit(1);
11  }
12 
13 #endif//CPPL_DEBUG
14 
15  for(CPPL_INT i=0; i<vecA.l; i++){
16  vecA.array[i] += vecB.array[i];
17  }
18 
19  return vecA;
20 }
CPPL_INT l
vector size
Definition: zrovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store vector data
Definition: zrovector.hpp:10
_zrovector operator+ ( const _zrovector vecA,
const _zrovector vecB 
)
friend

_zrovector+_zrovector operator

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

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vecA.l!=vecB.l){
7  ERROR_REPORT;
8  std::cerr << "These two vectors can not make a sumation." << std::endl
9  << "Your input was (" << vecA.l << ") + (" << vecB.l << ")." << std::endl;
10  exit(1);
11  }
12 
13 #endif//CPPL_DEBUG
14 
15  for(CPPL_INT i=0; i<vecA.l; i++){
16  vecA.array[i] += vecB.array[i];
17  }
18 
19  vecB.destroy();
20  return vecA;
21 }
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator- ( const _zrovector vecA,
const zrovector vecB 
)
friend

zrovector-zrovector operator

Definition at line 24 of file _zrovector-zrovector.hpp.

25 {CPPL_VERBOSE_REPORT;
26 #ifdef CPPL_DEBUG
27  if(vecA.l!=vecB.l){
28  ERROR_REPORT;
29  std::cerr << "These two vectors can not make a subtraction." << std::endl
30  << "Your input was (" << vecA.l << ") - (" << vecB.l << ")." << std::endl;
31  exit(1);
32  }
33 #endif//CPPL_DEBUG
34 
35  for(CPPL_INT i=0; i<vecA.l; i++){
36  vecA.array[i] -= vecB.array[i];
37  }
38 
39  return vecA;
40 }
CPPL_INT l
vector size
Definition: zrovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store vector data
Definition: zrovector.hpp:10
_zrovector operator- ( const _zrovector vecA,
const _zrovector vecB 
)
friend

_zrovector-_zrovector operator

Definition at line 25 of file _zrovector-_zrovector.hpp.

26 {CPPL_VERBOSE_REPORT;
27 #ifdef CPPL_DEBUG
28  if(vecA.l!=vecB.l){
29  ERROR_REPORT;
30  std::cerr << "These two vectors can not make a subtraction." << std::endl
31  << "Your input was (" << vecA.l << ") - (" << vecB.l << ")." << std::endl;
32  exit(1);
33  }
34 #endif//CPPL_DEBUG
35 
36  for(CPPL_INT i=0; i<vecA.l; i++){
37  vecA.array[i] -= vecB.array[i];
38  }
39 
40  vecB.destroy();
41  return vecA;
42 }
void destroy() const
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple operator* ( const _zrovector rovec,
const zcovector covec 
)
friend

_zrovector*zcovector operator

Definition at line 3 of file _zrovector-zcovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(rovec.l!=covec.l){
7  ERROR_REPORT;
8  std::cerr << "These two vectors can not make a product." << std::endl
9  << "Your input was (" << rovec.l << ") * (" << covec.l << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  CPPL_INT inc =1;
15 
16  comple val =zdotu_( &rovec.l, rovec.array, &inc, covec.array, &inc );
17 
18  rovec.destroy();
19  return val;
20 }
comple * array
1D array to store vector data
Definition: zcovector.hpp:10
CPPL_INT l
vector size
Definition: zcovector.hpp:9
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple operator* ( const _zrovector rovec,
const _zcovector covec 
)
friend

_zrovector*_zcovector operator

Definition at line 3 of file _zrovector-_zcovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(rovec.l!=covec.l){
7  ERROR_REPORT;
8  std::cerr << "These two vectors can not make a product." << std::endl
9  << "Your input was (" << rovec.l << ") * (" << covec.l << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  CPPL_INT inc =1;
15 
16  comple val =zdotu_( &rovec.l, rovec.array, &inc, covec.array, &inc );
17 
18  rovec.destroy();
19  covec.destroy();
20  return val;
21 }
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
void destroy() const
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store vector data
Definition: _zcovector.hpp:10
CPPL_INT l
vector size
Definition: _zcovector.hpp:9
_zrovector operator* ( const _zrovector vec,
const zgematrix mat 
)
friend

_zrovector*zgematrix operator

Definition at line 3 of file _zrovector-zgematrix.hpp.

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

_zrovector*_zgematrix operator

Definition at line 3 of file _zrovector-_zgematrix.hpp.

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

_zrovector*zhematrix operator

Definition at line 3 of file _zrovector-zhematrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vec.l!=mat.n){
7  ERROR_REPORT;
8  std::cerr << "These vector and matrix can not make a product." << std::endl
9  << "Your input was (" << vec.l << ") * (" << mat.n << "x" << mat.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  zrovector newvec(mat.n);
15  char uplo ='l';
16  comple alpha =comple(1.,0.);
17  CPPL_INT inc =1;
18  comple beta =comple(0.,0.);
19 
20  zhemv_( &uplo, &mat.n, &alpha, mat.array, &mat.n, vec.array, &inc, &beta, newvec.array, &inc );
21 
22  vec.destroy();
23  return _(newvec);
24 }
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
CPPL_INT n
matrix column size
Definition: zhematrix.hpp:11
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store matrix data
Definition: zhematrix.hpp:12
_dcovector _(dcovector &vec)
_zrovector operator* ( const _zrovector vec,
const _zhematrix mat 
)
friend

_zrovector*_zhematrix operator

Definition at line 3 of file _zrovector-_zhematrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vec.l!=mat.n){
7  ERROR_REPORT;
8  std::cerr << "These vector and matrix can not make a product." << std::endl
9  << "Your input was (" << vec.l << ") * (" << mat.n << "x" << mat.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  zrovector newvec(mat.n);
15  char uplo ='l';
16  comple alpha =comple(1.,0.);
17  CPPL_INT inc =1;
18  comple beta =comple(0.,0.);
19 
20  zhemv_( &uplo, &mat.n, &alpha, mat.array, &mat.n, vec.array, &inc, &beta, newvec.array, &inc );
21 
22  vec.destroy();
23  mat.destroy();
24  return _(newvec);
25 }
void destroy() const
CPPL_INT n
matrix column size
Definition: _zhematrix.hpp:11
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store matrix data
Definition: _zhematrix.hpp:12
void destroy() const
_dcovector _(dcovector &vec)
_zrovector operator* ( const _zrovector vec,
const zgbmatrix mat 
)
friend

_zrovector*zgbmatrix operator

Definition at line 3 of file _zrovector-zgbmatrix.hpp.

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

_zrovector*_zgbmatrix operator

Definition at line 3 of file _zrovector-_zgbmatrix.hpp.

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

_zrovector*zgsmatrix operator

Definition at line 3 of file _zrovector-zgsmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vec.l!=mat.m){
7  ERROR_REPORT;
8  std::cerr << "These vector and matrix can not make a product." << std::endl
9  << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  zrovector newvec(mat.n);
15  newvec.zero();
16 
17  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
18  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
19  newvec(it->j) += vec(it->i)*it->v;
20  }
21 
22  vec.destroy();
23  return _(newvec);
24 }
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
std::vector< zcomponent > data
matrix data
Definition: zgsmatrix.hpp:11
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
CPPL_INT m
matrix row size
Definition: zgsmatrix.hpp:9
CPPL_INT n
matrix column size
Definition: zgsmatrix.hpp:10
_dcovector _(dcovector &vec)
_zrovector operator* ( const _zrovector vec,
const _zgsmatrix mat 
)
friend

_zrovector*_zgsmatrix operator

Definition at line 3 of file _zrovector-_zgsmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vec.l!=mat.m){
7  ERROR_REPORT;
8  std::cerr << "These vector and matrix can not make a product." << std::endl
9  << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  zrovector newvec(mat.n);
15  newvec.zero();
16 
17  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
18  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
19  newvec(it->j) += vec(it->i)*it->v;
20  }
21 
22  vec.destroy();
23  mat.destroy();
24  return _(newvec);
25 }
void destroy() const
CPPL_INT n
matrix column size
Definition: _zgsmatrix.hpp:10
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
CPPL_INT m
matrix row size
Definition: _zgsmatrix.hpp:9
void destroy() const
_dcovector _(dcovector &vec)
std::vector< zcomponent > data
matrix data
Definition: _zgsmatrix.hpp:11
_zrovector operator* ( const _zrovector vec,
const zhsmatrix mat 
)
friend

_zrovector*zhsmatrix operator

Definition at line 3 of file _zrovector-zhsmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vec.l!=mat.m){
7  ERROR_REPORT;
8  std::cerr << "These vector and matrix can not make a product." << std::endl
9  << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  zrovector newvec(mat.n);
15  newvec.zero();
16 
17  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
18  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
19  newvec(it->j) +=vec(it->i)*it->v;
20  if(it->i!=it->j){
21  newvec(it->i) +=vec(it->j)*std::conj(it->v);
22  }
23  }
24 
25  vec.destroy();
26  return _(newvec);
27 }
void destroy() const
CPPL_INT n
matrix column size
Definition: zhsmatrix.hpp:10
_zcovector conj(const _zcovector &vec)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
std::vector< zcomponent > data
matrix data
Definition: zhsmatrix.hpp:11
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
CPPL_INT const & m
matrix row size
Definition: zhsmatrix.hpp:9
_dcovector _(dcovector &vec)
_zrovector operator* ( const _zrovector vec,
const _zhsmatrix mat 
)
friend

_zrovector*_zhsmatrix operator

Definition at line 3 of file _zrovector-_zhsmatrix.hpp.

4 {CPPL_VERBOSE_REPORT;
5 #ifdef CPPL_DEBUG
6  if(vec.l!=mat.m){
7  ERROR_REPORT;
8  std::cerr << "These vector and matrix can not make a product." << std::endl
9  << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl;
10  exit(1);
11  }
12 #endif//CPPL_DEBUG
13 
14  zrovector newvec(mat.n);
15  newvec.zero();
16 
17  const std::vector<zcomponent>::const_iterator mat_data_end =mat.data.end();
18  for(std::vector<zcomponent>::const_iterator it=mat.data.begin(); it!=mat_data_end; it++){
19  newvec(it->j) +=vec(it->i)*it->v;
20  if(it->i!=it->j){
21  newvec(it->i) +=vec(it->j)*std::conj(it->v);
22  }
23  }
24 
25  vec.destroy();
26  mat.destroy();
27  return _(newvec);
28 }
std::vector< zcomponent > data
matrix data
Definition: _zhsmatrix.hpp:12
CPPL_INT const & m
matrix row size
Definition: _zhsmatrix.hpp:10
void destroy() const
void destroy() const
_zcovector conj(const _zcovector &vec)
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
CPPL_INT n
matrix column size
Definition: _zhsmatrix.hpp:11
Complex Double-precision Row Vector Class.
Definition: zrovector.hpp:3
_dcovector _(dcovector &vec)
_zrovector operator* ( const _zrovector vec,
const double &  d 
)
friend

_zrovector*double operator

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

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT inc =1;
6  zdscal_(&vec.l, &d, vec.array, &inc);
7  return vec;
8 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator* ( const _zrovector vec,
const comple &  d 
)
friend

_zrovector*comple operator

Definition at line 3 of file _zrovector-complex.hpp.

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT inc =1;
6  zscal_(&vec.l, &d, vec.array, &inc);
7  return vec;
8 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator/ ( const _zrovector vec,
const double &  d 
)
friend

_zrovector/double operator

Definition at line 12 of file _zrovector-double.hpp.

13 {CPPL_VERBOSE_REPORT;
14  double dinv =1./d;
15  CPPL_INT inc =1;
16  zdscal_(&vec.l, &dinv, vec.array, &inc);
17  return vec;
18 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator/ ( const _zrovector vec,
const comple &  d 
)
friend

_zrovector/comple operator

Definition at line 12 of file _zrovector-complex.hpp.

13 {CPPL_VERBOSE_REPORT;
14  comple dinv =1./d;
15  CPPL_INT inc =1;
16  zscal_(&vec.l, &dinv, vec.array, &inc);
17  return vec;
18 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple operator% ( const _zrovector vecA,
const zrovector vecB 
)
friend

zrovector^T*zrovector operator (inner product)

Definition at line 44 of file _zrovector-zrovector.hpp.

45 {CPPL_VERBOSE_REPORT;
46 #ifdef CPPL_DEBUG
47  if(vecA.l!=vecB.l){
48  ERROR_REPORT;
49  std::cerr << "These two vectors can not make a dot product." << std::endl
50  << "Your input was (" << vecA.l << ") % (" << vecB.l << ")." << std::endl;
51  exit(1);
52  }
53 #endif//CPPL_DEBUG
54 
55  CPPL_INT inc =1;
56  comple val =zdotu_( &vecA.l, vecA.array, &inc, vecB.array, &inc );
57 
58  vecA.destroy();
59  return val;
60 }
CPPL_INT l
vector size
Definition: zrovector.hpp:9
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
comple * array
1D array to store vector data
Definition: zrovector.hpp:10
comple operator% ( const _zrovector vecA,
const _zrovector vecB 
)
friend

_zrovector^T*_zrovector operator (inner product)

Definition at line 46 of file _zrovector-_zrovector.hpp.

47 {CPPL_VERBOSE_REPORT;
48 #ifdef CPPL_DEBUG
49  if(vecA.l!=vecB.l){
50  ERROR_REPORT;
51  std::cerr << "These two vectors can not make a dot product." << std::endl
52  << "Your input was (" << vecA.l << ") % (" << vecB.l << ")." << std::endl;
53  exit(1);
54  }
55 #endif//CPPL_DEBUG
56 
57  CPPL_INT inc =1;
58  comple val =zdotu_( &vecA.l, vecA.array, &inc, vecB.array, &inc );
59 
60  vecA.destroy();
61  vecB.destroy();
62  return val;
63 }
void destroy() const
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator* ( const double &  d,
const _zrovector vec 
)
friend

double*_zrovector operator

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

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT inc =1;
6  zdscal_(&vec.l, &d, vec.array, &inc);
7  return vec;
8 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10
_zrovector operator* ( const comple &  d,
const _zrovector vec 
)
friend

comple*_zrovector operator

Definition at line 3 of file complex-_zrovector.hpp.

4 {CPPL_VERBOSE_REPORT;
5  CPPL_INT inc =1;
6  zscal_(&vec.l, &d, vec.array, &inc);
7  return vec;
8 }
CPPL_INT l
vector size
Definition: _zrovector.hpp:9
comple * array
1D array to store vector data
Definition: _zrovector.hpp:10

Member Data Documentation

CPPL_INT _zrovector::l
mutable
comple* _zrovector::array
mutable

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