72 void allocate(
void );
73 void callocate(
void );
74 void reallocate(
void );
117 _refs.push_back( ref );
124 _refs.push_back( ref );
192 Vector(
int n,
const double *val );
201 Vector(
int n,
double val );
212 Vector(
const VectorLA &vecla );
224 int size(
void )
const {
return( _n ); }
261 const double *
get_data(
void )
const {
return( _val ); }
265 VectorLA
operator+(
const VectorLA &vecla )
const;
269 VectorLA
operator-(
const VectorLA &vecla )
const;
418 #ifdef SPM_RANGE_CHECK
419 if( i >=
_refs[0]._vec->_n )
423 std::vector<VectorRef>::const_iterator itend =
_refs.end();
424 for( std::vector<VectorRef>::const_iterator it =
_refs.begin(); it != itend; it++ )
425 res += (it->_coef) * (*(it->_vec))[i];
431 #ifdef SPM_RANGE_CHECK
432 if( i >= _refs[0]._vec->_n )
436 std::vector<VectorRef>::const_iterator itend = _refs.end();
437 for( std::vector<VectorRef>::const_iterator it = _refs.begin(); it != itend; it++ )
438 res += (it->_coef) * (*(it->_vec))[i];
444 #ifdef SPM_RANGE_CHECK
453 #ifdef SPM_RANGE_CHECK
462 #ifdef SPM_RANGE_CHECK
471 #ifdef SPM_RANGE_CHECK
double operator[](int i) const
Operator for pointing to elements of linear algebra operations.
Definition: mvector.hpp:417
Vector & operator-=(const VectorLA &vecla)
Operator for subtracting vectors.
double * get_data(void)
Returns a pointer to the coordinate value data of the vector.
Definition: mvector.hpp:256
std::vector< VectorRef > _refs
List of linear algebra operations.
Definition: mvector.hpp:103
friend double min(const Vector &vec)
Returns the minimum vector element value.
VectorLA operator+(const VectorLA &vecla) const
Operator for adding vectors.
Compressed row sparse matrix class.
Definition: crowmatrix.hpp:76
friend double min_abs(const Vector &vec)
Returns the minimum vector element absolute value.
Container object for linear algebra operations.
Definition: mvector.hpp:102
Basis for matrix implementations.
Dense math vector class.
Definition: mvector.hpp:68
VectorLA operator-() const
Operator for unary minus.
VectorRef(const Vector *vec, double coef)
Constructor for VectorRef with vector vec and coefficient coef.
Definition: mvector.hpp:93
double _coef
Coefficient for vector vec.
Definition: mvector.hpp:85
Vector()
Default constructor.
Definition: mvector.hpp:176
int size(void) const
Returns the size of vector.
Definition: mvector.hpp:224
Vector & operator=(double x)
Operator for setting all vector elements to value x.
double operator()(int i) const
Operator for pointing to elements of linear algebra operations.
Definition: mvector.hpp:430
VectorLA operator*(double x) const
Operator for multiplying vector with a constant.
friend double max_abs(const Vector &vec)
Returns the maximum vector element absolute value.
void clear(void)
Clears the vector.
bool operator==(const Vector &vec) const
Operator for comparing vectors.
VectorRef()
Constructor for empty VectorRef.
Definition: mvector.hpp:89
double & operator[](int i)
Operator for pointing to vector elements.
Definition: mvector.hpp:443
VectorLA(const Vector &vec)
Constructor for VectorLA with vector vec with coefficient 1.
Definition: mvector.hpp:115
#define ERROR_LOCATION
Macro for setting error location when throwing errors.
Definition: error.hpp:72
friend double ssqr(const Vector &vec)
Returns square of 2-norm of vector.
VectorLA operator-() const
Operator for unary minus.
~Vector()
Destructor for vectors.
VectorLA operator+(const VectorLA &vecla) const
Operator for adding vectors.
const Vector * _vec
Pointer to vector.
Definition: mvector.hpp:84
friend std::ostream & operator<<(std::ostream &os, const Vector &vec)
Operator for printing a vector.
Base matrix class.
Definition: matrix.hpp:76
VectorLA operator*(double x) const
Operator for multiplying vector with a constant.
friend double dot_prod(const Vector &vec1, const Vector &vec2)
Returns dot product of vector vec1 and vector vec2.
void merge(Vector &vec)
Merges vector vec into the vector leaving vec empty.
Error classes and handling
friend double norm1(const Vector &vec)
Returns 1-norm of vector.
VectorLA(const VectorLA &vecla)
Copy constructor.
Definition: mvector.hpp:111
friend double norm2(const Vector &vec)
Returns 2-norm of vector.
Error class for index range checking errors.
Definition: error.hpp:254
Harwell Boeing sparse matrix file format I/O class.
Definition: hbio.hpp:66
double & operator()(int i)
Operator for pointing to vector elements.
Definition: mvector.hpp:452
void resize(int n)
Resizes a vector.
Container object for coefficient-vector pairs.
Definition: mvector.hpp:83
const double * get_data(void) const
Returns a const pointer to the coordinate value data of the vector.
Definition: mvector.hpp:261
friend double max(const Vector &vec)
Returns the maximum vector element value.
Container object for matrix-vector multiplication operation.
Definition: matrix.hpp:57
VectorLA(const Vector &vec, double coef)
Constructor for VectorLA with vector vec with coefficient coef.
Definition: mvector.hpp:122
Vector & operator+=(const VectorLA &vecla)
Operator for adding vectors.
friend void swap(Vector &vec1, Vector &vec2)
Swaps contents of vector vec1 and vector vec2.
bool operator!=(const Vector &vec) const
Operator for comparing vectors.
Compressed column sparse matrix class.
Definition: ccolmatrix.hpp:75
Vector & operator*=(double x)
Operator for multiplying vector with a constant.
VectorLA()
Default constructor.
Definition: mvector.hpp:107
Coordinate sparse matrix class.
Definition: coordmatrix.hpp:72