CPPLapack
|
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class More...
#include <_drovector.hpp>
(DO NOT USE) Smart-temporary Real Double-precision Row Vector Class
Definition at line 3 of file _drovector.hpp.
_drovector::_drovector | ( | ) | [inline] |
_drovector::_drovector | ( | const _drovector & | vec | ) | [inline] |
_drovector::~_drovector | ( | ) | [inline] |
_drovector destructor
Definition at line 27 of file _drovector-constructor.hpp.
References array.
{VERBOSE_REPORT; delete[] array; }
_zrovector _drovector::to_zrovector | ( | ) | const [inline] |
double & _drovector::operator() | ( | const long & | i | ) | const [inline] |
void _drovector::write | ( | const char * | filename | ) | const [inline] |
Definition at line 36 of file _drovector-io.hpp.
References destroy(), i(), l, and operator()().
{VERBOSE_REPORT; std::ofstream ofs(filename, std::ios::trunc); ofs.setf(std::cout.flags()); ofs.precision(std::cout.precision()); ofs.width(std::cout.width()); ofs.fill(std::cout.fill()); ofs << "#drovector" << " " << l << std::endl; for(long i=0; i<l; i++){ ofs << operator()(i) << " "; } ofs << std::endl; ofs.close(); destroy(); }
void _drovector::nullify | ( | ) | const [inline] |
nullify all the vector data
Definition at line 3 of file _drovector-misc.hpp.
Referenced by _drovector(), drovector::drovector(), drovector::shallow_copy(), and t().
void _drovector::destroy | ( | ) | const [inline] |
destroy all the vector data
Definition at line 12 of file _drovector-misc.hpp.
References array.
Referenced by damax(), idamax(), nrm2(), operator%(), operator*(), operator+(), drovector::operator+=(), operator-(), drovector::operator-=(), operator<<(), to_zrovector(), and write().
std::ostream& operator<< | ( | std::ostream & | s, |
const _drovector & | vec | ||
) | [friend] |
_dcovector t | ( | const drovector & | rovec | ) | [friend] |
return its Euclidean norm
Definition at line 13 of file drovector-calc.hpp.
return the index of element having the largest absolute value in 0-based numbering system
Definition at line 21 of file drovector-calc.hpp.
return its largest absolute value
Definition at line 28 of file drovector-calc.hpp.
const _drovector& operator+ | ( | const _drovector & | vec | ) | [friend] |
+_drovector operator
Definition at line 3 of file _drovector-unary.hpp.
{VERBOSE_REPORT;
return vec;
}
_drovector operator- | ( | const _drovector & | vec | ) | [friend] |
_drovector operator+ | ( | const _drovector & | vecA, |
const drovector & | vecB | ||
) | [friend] |
_drovector+drovector operator
Definition at line 3 of file _drovector-drovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vecA.l!=vecB.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a sumation." << std::endl << "Your input was (" << vecA.l << ") + (" << vecB.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG for(long i=0; i<vecA.l; i++){ vecA.array[i]+=vecB.array[i]; } return vecA; }
_drovector operator+ | ( | const _drovector & | vecA, |
const _drovector & | vecB | ||
) | [friend] |
_drovector+_drovector operator
Definition at line 3 of file _drovector-_drovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vecA.l!=vecB.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a sumation." << std::endl << "Your input was (" << vecA.l << ") + (" << vecB.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG for(long i=0; i<vecA.l; i++){ vecA.array[i]+=vecB.array[i]; } vecB.destroy(); return vecA; }
_drovector operator- | ( | const _drovector & | vecA, |
const drovector & | vecB | ||
) | [friend] |
drovector-drovector operator
Definition at line 22 of file _drovector-drovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vecA.l!=vecB.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a subtraction." << std::endl << "Your input was (" << vecA.l << ") - (" << vecB.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG for(long i=0; i<vecA.l; i++){ vecA.array[i]-=vecB.array[i]; } return vecA; }
_drovector operator- | ( | const _drovector & | vecA, |
const _drovector & | vecB | ||
) | [friend] |
_drovector-_drovector operator
Definition at line 23 of file _drovector-_drovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vecA.l!=vecB.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a subtraction." << std::endl << "Your input was (" << vecA.l << ") - (" << vecB.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG for(long i=0; i<vecA.l; i++){ vecA.array[i]-=vecB.array[i]; } vecB.destroy(); return vecA; }
double operator* | ( | const _drovector & | rovec, |
const dcovector & | covec | ||
) | [friend] |
_drovector*dcovector operator
Definition at line 3 of file _drovector-dcovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(rovec.l!=covec.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a product." << std::endl << "Your input was (" << rovec.l << ") * (" << covec.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG double val( ddot_( rovec.l, rovec.array, 1, covec.array, 1 ) ); rovec.destroy(); return val; }
double operator* | ( | const _drovector & | rovec, |
const _dcovector & | covec | ||
) | [friend] |
_drovector*_dcovector operator
Definition at line 3 of file _drovector-_dcovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(rovec.l!=covec.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a product." << std::endl << "Your input was (" << rovec.l << ") * (" << covec.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG double val( ddot_( rovec.l, rovec.array, 1, covec.array, 1 ) ); rovec.destroy(); covec.destroy(); return val; }
_drovector operator* | ( | const _drovector & | vec, |
const dgematrix & | mat | ||
) | [friend] |
_drovector*dgematrix operator
Definition at line 3 of file _drovector-dgematrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.m){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); dgemv_( 'T', mat.m, mat.n, 1.0, mat.array, mat.m, vec.array, 1, 0.0, newvec.array, 1 ); vec.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const _dgematrix & | mat | ||
) | [friend] |
_drovector*_dgematrix operator
Definition at line 3 of file _drovector-_dgematrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.m){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); dgemv_( 'T', mat.m, mat.n, 1.0, mat.array, mat.m, vec.array, 1, 0.0, newvec.array, 1 ); vec.destroy(); mat.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const dsymatrix & | mat | ||
) | [friend] |
_drovector*dsymatrix operator
Definition at line 3 of file _drovector-dsymatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.n){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.n << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); dsymv_( 'l', mat.n, 1.0, mat.array, mat.n, vec.array, 1, 0.0, newvec.array, 1 ); vec.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const _dsymatrix & | mat | ||
) | [friend] |
_drovector*_dsymatrix operator
Definition at line 3 of file _drovector-_dsymatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.n){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.n << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); dsymv_( 'l', mat.n, 1.0, mat.array, mat.n, vec.array, 1, 0.0, newvec.array, 1 ); vec.destroy(); mat.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const dgbmatrix & | mat | ||
) | [friend] |
_drovector*dgbmatrix operator
Definition at line 3 of file _drovector-dgbmatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.m){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); dgbmv_( 'T', mat.m, mat.n, mat.kl, mat.ku, 1.0, mat.array, mat.kl+mat.ku+1, vec.array, 1, 0.0, newvec.array, 1 ); vec.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const _dgbmatrix & | mat | ||
) | [friend] |
_drovector*_dgbmatrix operator
Definition at line 3 of file _drovector-_dgbmatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.m){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); dgbmv_( 'T', mat.m, mat.n, mat.kl, mat.ku, 1.0, mat.array, mat.kl+mat.ku+1, vec.array, 1, 0.0, newvec.array, 1 ); vec.destroy(); mat.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const dgsmatrix & | mat | ||
) | [friend] |
_drovector*dgsmatrix operator
Definition at line 3 of file _drovector-dgsmatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.m){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); newvec.zero(); for(std::vector<dcomponent>::const_iterator it=mat.data.begin(); it!=mat.data.end(); it++){ newvec(it->j) += vec(it->i)*it->v; } vec.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const _dgsmatrix & | mat | ||
) | [friend] |
_drovector*_dgsmatrix operator
Definition at line 3 of file _drovector-_dgsmatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.m){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.m << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); newvec.zero(); for(std::vector<dcomponent>::const_iterator it=mat.data.begin(); it!=mat.data.end(); it++){ newvec(it->j) += vec(it->i)*it->v; } vec.destroy(); mat.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const dssmatrix & | mat | ||
) | [friend] |
_drovector*dssmatrix operator
Definition at line 3 of file _drovector-dssmatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.n){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.n << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); newvec.zero(); for(std::vector<dcomponent>::const_iterator it=mat.data.begin(); it!=mat.data.end(); it++){ newvec(it->j) +=vec(it->i)*it->v; if(it->i!=it->j){ newvec(it->i) +=vec(it->j)*it->v; } } vec.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const _dssmatrix & | mat | ||
) | [friend] |
_drovector*_dssmatrix operator
Definition at line 3 of file _drovector-_dssmatrix.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vec.l!=mat.n){ ERROR_REPORT; std::cerr << "These vector and matrix can not make a product." << std::endl << "Your input was (" << vec.l << ") * (" << mat.n << "x" << mat.n << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG drovector newvec(mat.n); newvec.zero(); for(std::vector<dcomponent>::const_iterator it=mat.data.begin(); it!=mat.data.end(); it++){ newvec(it->j) +=vec(it->i)*it->v; if(it->i!=it->j){ newvec(it->i) +=vec(it->j)*it->v; } } vec.destroy(); mat.destroy(); return _(newvec); }
_drovector operator* | ( | const _drovector & | vec, |
const double & | d | ||
) | [friend] |
_drovector*double operator
Definition at line 3 of file _drovector-double.hpp.
_drovector operator/ | ( | const _drovector & | vec, |
const double & | d | ||
) | [friend] |
_drovector/double operator
Definition at line 11 of file _drovector-double.hpp.
double operator% | ( | const _drovector & | vecA, |
const drovector & | vecB | ||
) | [friend] |
drovector^T*drovector operator (inner product)
Definition at line 40 of file _drovector-drovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vecA.l!=vecB.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a dot product." << std::endl << "Your input was (" << vecA.l << ") % (" << vecB.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG double val( ddot_( vecA.l, vecA.array, 1, vecB.array, 1 ) ); vecA.destroy(); return val; }
double operator% | ( | const _drovector & | vecA, |
const _drovector & | vecB | ||
) | [friend] |
_drovector^T*_drovector operator (inner product)
Definition at line 42 of file _drovector-_drovector.hpp.
{VERBOSE_REPORT; #ifdef CPPL_DEBUG if(vecA.l!=vecB.l){ ERROR_REPORT; std::cerr << "These two vectors can not make a dot product." << std::endl << "Your input was (" << vecA.l << ") % (" << vecB.l << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG double val( ddot_( vecA.l, vecA.array, 1, vecB.array, 1 ) ); vecA.destroy(); vecB.destroy(); return val; }
_drovector operator* | ( | const double & | d, |
const _drovector & | vec | ||
) | [friend] |
double*_drovector operator
Definition at line 3 of file double-_drovector.hpp.
long _drovector::l [mutable] |
vector size
Definition at line 9 of file _drovector.hpp.
Referenced by _(), _drovector(), damax(), drovector::drovector(), idamax(), nrm2(), nullify(), operator%(), operator()(), operator*(), operator+(), drovector::operator+=(), operator-(), drovector::operator-=(), operator/(), operator<<(), drovector::shallow_copy(), t(), to_zrovector(), and write().
long _drovector::cap [mutable] |
vector capacity
Definition at line 10 of file _drovector.hpp.
Referenced by _(), _drovector(), drovector::drovector(), nullify(), drovector::shallow_copy(), and t().
double* _drovector::array [mutable] |
1D array to store vector data
Definition at line 11 of file _drovector.hpp.
Referenced by _(), _drovector(), damax(), destroy(), drovector::drovector(), idamax(), nrm2(), nullify(), operator%(), operator()(), operator*(), operator+(), drovector::operator+=(), operator-(), drovector::operator-=(), operator/(), operator<<(), drovector::shallow_copy(), t(), to_zrovector(), and ~_drovector().