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

(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class More...

#include <_dcovector.hpp>

Public Member Functions

 _dcovector ()
 
 _dcovector (const _dcovector &)
 
 ~_dcovector ()
 
_zcovector to_zcovector () const
 
double & operator() (const CPPL_INT &) const
 
void write (const char *) const
 
void nullify () const
 
void destroy () const
 

Public Attributes

CPPL_INT l
 vector size More...
 
CPPL_INT cap
 vector capacity More...
 
double * array
 1D array to store vector data More...
 

Friends

std::ostream & operator<< (std::ostream &, const _dcovector &)
 
_drovector t (const dcovector &)
 
double nrm2 (const dcovector &)
 
CPPL_INT idamax (const dcovector &)
 
double damax (const dcovector &)
 
const _dcovectoroperator+ (const _dcovector &)
 
_dcovector operator- (const _dcovector &)
 
_dcovector operator+ (const _dcovector &, const dcovector &)
 
_dcovector operator+ (const _dcovector &, const _dcovector &)
 
_dcovector operator- (const _dcovector &, const dcovector &)
 
_dcovector operator- (const _dcovector &, const _dcovector &)
 
_dgematrix operator* (const _dcovector &, const drovector &)
 
_dgematrix operator* (const _dcovector &, const _drovector &)
 
_dcovector operator* (const _dcovector &, const double &)
 
_dcovector operator/ (const _dcovector &, const double &)
 
double operator% (const _dcovector &, const dcovector &)
 
double operator% (const _dcovector &, const _dcovector &)
 
_dcovector operator* (const double &, const _dcovector &)
 

Detailed Description

(DO NOT USE) Smart-temporary Real Double-precision Column Vector Class

Definition at line 3 of file _dcovector.hpp.

Constructor & Destructor Documentation

_dcovector::_dcovector ( )
inline

_dcovector constructor

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

References array, cap, and l.

4 {CPPL_VERBOSE_REPORT;CPPL_VERBOSE_REPORT;
5  l =0;
6  cap =0;
7  array =NULL;
8 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT cap
vector capacity
Definition: _dcovector.hpp:10
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector::_dcovector ( const _dcovector vec)
inline

_dcovector copy constructor

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

References array, cap, l, and nullify().

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

_dcovector destructor

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

References array.

28 {CPPL_VERBOSE_REPORT;CPPL_VERBOSE_REPORT;
29  delete[] array;
30 }
double * array
1D array to store vector data
Definition: _dcovector.hpp:11

Member Function Documentation

_zcovector _dcovector::to_zcovector ( ) const
inline

cast to _zcovector

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

References _(), zcovector::array, array, destroy(), i(), and l.

4 {CPPL_VERBOSE_REPORT;
5  zcovector newvec(l);
6 
7  for(CPPL_INT i=0; i<l; i++){
8  newvec.array[i] =comple(array[i], 0.);
9  }
10 
11  destroy();
12  return _(newvec);
13 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
void destroy() const
Complex Double-precision Column Vector Class.
Definition: zcovector.hpp:3
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector _(dcovector &vec)
double & _dcovector::operator() ( const CPPL_INT &  i) const
inline

operator() for const object

Definition at line 3 of file _dcovector-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 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
void _dcovector::write ( const char *  filename) const
inline

Definition at line 37 of file _dcovector-io.hpp.

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

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

nullify all the vector data

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

References array, cap, and l.

Referenced by _dcovector(), dcovector::dcovector(), dcovector::shallow_copy(), and t().

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

destroy all the vector data

Definition at line 12 of file _dcovector-misc.hpp.

References array.

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

13 {CPPL_VERBOSE_REPORT;
14  delete [] array;
15  array=NULL;
16 }
double * array
1D array to store vector data
Definition: _dcovector.hpp:11

Friends And Related Function Documentation

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

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

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

return a transposed row vector

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

4 {CPPL_VERBOSE_REPORT;
5  drovector rovec(covec.l);
6 
7  CPPL_INT inc =1;
8 
9  dcopy_(&covec.l, covec.array, &inc, rovec.array, &inc);
10 
11  return _(rovec);
12 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
Real Double-precision Row Vector Class.
Definition: drovector.hpp:3
_dcovector _(dcovector &vec)
double nrm2 ( const dcovector vec)
friend

return its Euclidean norm

Definition at line 16 of file dcovector-calc.hpp.

17 {CPPL_VERBOSE_REPORT;
18  CPPL_INT inc =1;
19  return dnrm2_(&vec.l, vec.array, &inc);
20 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
CPPL_INT idamax ( const dcovector vec)
friend

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

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

26 {CPPL_VERBOSE_REPORT;
27  CPPL_INT inc=1;
28  return idamax_(&vec.l, vec.array, &inc) -1;
29 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double damax ( const dcovector vec)
friend

return its largest absolute value

Definition at line 33 of file dcovector-calc.hpp.

34 {CPPL_VERBOSE_REPORT;
35  CPPL_INT inc =1;
36  return vec.array[idamax_(&vec.l, vec.array, &inc) -1];
37 }
CPPL_INT l
vector size
Definition: dcovector.hpp:9
double * array
1D array to store vector data
Definition: dcovector.hpp:11
const _dcovector& operator+ ( const _dcovector vec)
friend

+_dcovector operator

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

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

-_dcovector operator

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

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

_dcovector+dcovector operator

Definition at line 3 of file _dcovector-dcovector.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++){ vecA.array[i]+=vecB.array[i]; }
16 
17  return vecA;
18 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
double * array
1D array to store vector data
Definition: dcovector.hpp:11
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector operator+ ( const _dcovector vecA,
const _dcovector vecB 
)
friend

_dcovector+_dcovector operator

Definition at line 3 of file _dcovector-_dcovector.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++){ vecA.array[i]+=vecB.array[i]; }
16 
17  vecB.destroy();
18  return vecA;
19 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
void destroy() const
double * array
1D array to store vector data
Definition: _dcovector.hpp:11
_dcovector operator- ( const _dcovector vecA,
const dcovector vecB 
)
friend

dcovector-dcovector operator

Definition at line 22 of file _dcovector-dcovector.hpp.

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

_dcovector-_dcovector operator

Definition at line 23 of file _dcovector-_dcovector.hpp.

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

_dcovector*drovector operator

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

4 {CPPL_VERBOSE_REPORT;
5  dgematrix newmat(covec.l, rovec.l);
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) =covec(i)*rovec(j);
10  }
11  }
12 
13  covec.destroy();
14  return _(newmat);
15 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
CPPL_INT l
vector size
Definition: drovector.hpp:9
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
void destroy() const
_dcovector _(dcovector &vec)
_dgematrix operator* ( const _dcovector covec,
const _drovector rovec 
)
friend

_dcovector*_drovector operator

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

4 {CPPL_VERBOSE_REPORT;
5  dgematrix newmat(covec.l, rovec.l);
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) =covec(i)*rovec(j);
10  }
11  }
12 
13  covec.destroy();
14  rovec.destroy();
15  return _(newmat);
16 }
CPPL_INT l
vector size
Definition: _dcovector.hpp:9
CPPL_INT l
vector size
Definition: _drovector.hpp:9
_dgematrix i(const _dgbmatrix &mat)
void destroy() const
Real Double-precision General Dence Matrix Class.
Definition: dgematrix.hpp:3
CPPL_INT m
matrix row size
Definition: _dgematrix.hpp:9
void destroy() const
_dcovector _(dcovector &vec)
_dcovector operator* ( const _dcovector vec,
const double &  d 
)
friend

_dcovector*double operator

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

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

_dcovector/double operator

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

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

dcovector^T*dcovector operator (inner product)

Definition at line 40 of file _dcovector-dcovector.hpp.

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

_dcovector^T*_dcovector operator (inner product)

Definition at line 42 of file _dcovector-_dcovector.hpp.

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

double*_dcovector operator

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

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

Member Data Documentation

CPPL_INT _dcovector::l
mutable
CPPL_INT _dcovector::cap
mutable

vector capacity

Definition at line 10 of file _dcovector.hpp.

Referenced by _(), _dcovector(), dcovector::dcovector(), nullify(), dcovector::shallow_copy(), and t().

double* _dcovector::array
mutable

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