class HCL_RnVector_d : public HCL_Vector_d

HCL_RnVector_d is the simplest vector class

Inheritance:


Public Methods

HCL_RnVector_d ( const HCL_RnVector_d & x )
Copy constructor
HCL_RnVector_d ( HCL_RnSpace_d * s )
Construct a vector belonging to the HCL_RnSpace_d s.
HCL_RnVector_d ( int n, double *data = NULL )
Construct a vector belonging to n-space, and optionally initialize with the contents of the "data" array by COPYING a pointer to double - note that in this case the destructor will NOT DELETE the data pointer, as it presumably belongs to some other object
HCL_RnVector_d ( const HCL_RnSpace_d & s, char * fname = NULL )
Construct a ``new'' vector belonging to the HCL_RnSpace_d s, and optionally specify an ASCII file to which the data will be saved
HCL_RnVector_d ( char * fname, int save = 1 )
Construct a ``old'' vector by reading the contents of the specified ASCII file
virtual int Dim () const
Dim returns the dimension of the vector space.
virtual HCL_VectorSpace_d& Space () const
Space returns a reference to the vector space to which this vector belongs
double& operator) ( int i )
The () operator is a function for accessing the components of the vector
double operator) ( int i ) const
The () operator is a function for accessing the components of the vector
virtual double* Data ()
Data returns a pointer to an array containing the component values of the vector
void Save ( char * fname )
Save to a file
virtual ostream& Write ( ostream & str ) const
Write prints the dimension of the vector, followed by the first 10 components of the vector (or all of the componenents if the dimension is less than 10)

Public

Vector operations (z is *this, which is C++-ese for the instance
virtual void Copy ( const HCL_Vector_d & x )
z <-- x
virtual void Neg ()
z <-- -z
virtual void Mul ( const double & a )
z <-- a*z
virtual void Mul ( const double & a, const HCL_Vector_d & x )
z <-- a*x
virtual void Add ( const HCL_Vector_d & x )
z <-- z + x
virtual void Add ( const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x + y
virtual double Inner ( const HCL_Vector_d & x ) const
Inner product of z with x.
virtual void Sub ( const HCL_Vector_d & x )
z <-- z - x
virtual void Sub ( const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x - y
virtual void ScaleAdd ( const double & a, const HCL_Vector_d & x )
z <-- a*z + x
virtual void AddScale ( const double & a, const HCL_Vector_d & x )
z <-- z + a*x
virtual void AddScale ( const double & a, const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x + a*y
double Norm () const
Norm of z.
double Norm2 () const
Norm squared of z.
Array operations - ``Matlab'' methods. In describing these,
virtual void Add ( double a )
- overload of Add with scalar argument a la Matlab
virtual void Add ( const HCL_Vector_d & x, double a )
- overload of Add with scalar argument a la Matlab
virtual void Fill ( double a )
virtual void Zero ()
virtual void Random ()
Returns a vector with (pseudo-)random components
virtual void DiagScale ( const HCL_Vector_d & x )
- matrix multiply by diag(x)
virtual void DiagScale ( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual void DiagRecipScale ( const HCL_Vector_d & x, double tol=0.0)
- matrix division by diag(x)
virtual void DiagRecipScale ( const HCL_Vector_d & x, const HCL_Vector_d & y, double tol=0.0)
- matrix division by diag(x)
virtual double Max () const
returns largest of components or -FLT_MAX
virtual double Min () const
returns smallest of components or FLT_MAX
virtual double Sum () const
returns
virtual void Max ( const HCL_Vector_d & x )
virtual void Max ( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual void Min ( const HCL_Vector_d & x )
virtual void Min ( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual void Abs ()
virtual void Abs ( const HCL_Vector_d & x )
virtual void Sign ()
virtual void Sign ( double t )
virtual void Sign ( const HCL_Vector_d & x )
virtual void Sign ( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual void Sign ( const HCL_Vector_d & y, double t )
virtual void Sign ( double t, const HCL_Vector_d & y )
virtual void Greater ( double t )
Mask function: if > , else 0
virtual void Greater ( const HCL_Vector_d & x )
Mask function: if > , else 0
virtual void Greater ( const HCL_Vector_d & x, const HCL_Vector_d & y )
Mask function: if > , else 0
virtual void Greater ( const HCL_Vector_d & y, double t )
Mask function: if > , else 0
virtual void Greater ( double, const HCL_Vector_d & y )
Mask function: if > , else 0
virtual void Power ( double )
- arbitrary real power
virtual void Power ( double p, const HCL_Vector_d & x )
- arbitrary real power
virtual void Sqrt ()
- componentwise square root
virtual void Sqrt ( const HCL_Vector_d & x )
- componentwise square root
virtual void Exp ()
virtual void Exp ( const HCL_Vector_d & x )
virtual void Log ()
- componentwise natural log
virtual void Log ( const HCL_Vector_d & x )
- componentwise natural log

Inherited from HCL_Vector_d:

Public

Vector operations (z is the object invoking the method).

virtual void Copy( const HCL_Vector_d & x )
z <-- x
virtual void Neg()
z <-- (-z)
virtual void Mul( const double & a )
z <-- a*z
virtual void Add( const HCL_Vector_d & x )
z <-- z + x
virtual void Mul( const double & a, const HCL_Vector_d & x )
z <-- a*x
virtual void Add( const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x + y
virtual void Sub( const HCL_Vector_d & x )
z <-- z - x
virtual void Sub(const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x - y
virtual void ScaleAdd(const double & a, const HCL_Vector_d & x )
z <-- a*z + x
virtual void AddScale(const double & a, const HCL_Vector_d & x )
z <-- z + a*x
virtual void AddScale(const double & a, const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x + a*y
virtual double Inner( const HCL_Vector_d & x ) const
Inner product of z with x.
virtual double Norm() const
Norm of z.
virtual double Norm2() const
Norm squared of z.
virtual HCL_VectorSpace_d& Space() const
Returns a reference to the space of which z is a member
virtual void Zero()
z <-- 0
virtual void Random()
Returns a "random" vector

Access to components.

virtual int Dim() const
Dim returns dimension of space.
virtual double* Data()
Data returns a pointer to the array of components, which is assumed to exist or to be created for this purpose

Array operations - ``Matlab'' methods.

virtual void Fill( double a )
virtual void Add( double a )
- overload of Add with scalar argument a la Matlab
virtual void Add( const HCL_Vector_d & x, double a )
- overload of Add with scalar argument a la Matlab
virtual void DiagScale( const HCL_Vector_d & x )
- matrix multiply by diag(x)
virtual void DiagScale( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual void DiagRecipScale( const HCL_Vector_d & x, double tol=0.0)
- matrix division by diag(x)
virtual void DiagRecipScale( const HCL_Vector_d & x, const HCL_Vector_d & y, double tol=0.0)
- matrix division by diag(x)
virtual void DotStar( const HCL_Vector_d & x )
"Matlab" name for DiagScale, first version
virtual void DotStar( const HCL_Vector_d & x, const HCL_Vector_d & y )
"Matlab" name for DiagScale, second version
virtual void DotSlash( const HCL_Vector_d & x, double tol=0.0)
"Matlab" name for DiagRecipScale, first version.
virtual void DotSlash( const HCL_Vector_d & x, const HCL_Vector_d & y, double tol=0.0)
"Matlab" name for DiagRecipScale, second version.
virtual double Max() const
returns largest of components or -FLT_MAX
virtual void Max( const HCL_Vector_d & x )
virtual void Max( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual double Min() const
returns smallest of components or FLT_MAX
virtual void Min( const HCL_Vector_d & x )
virtual void Min( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual double Sum() const
returns
virtual void Abs()
virtual void Abs( const HCL_Vector_d & x )
virtual void Sign()
virtual void Sign( double t )
virtual void Sign( const HCL_Vector_d & x )
virtual void Sign( const HCL_Vector_d & x, const HCL_Vector_d & y )
virtual void Sign( const HCL_Vector_d & x, double t )
virtual void Sign( double t, const HCL_Vector_d & y )
virtual void Greater( double t )
Mask function: if > , else 0
virtual void Greater( const HCL_Vector_d & x )
Mask function: if > , else 0
virtual void Greater( const HCL_Vector_d & x, const HCL_Vector_d & y )
Mask function: if > , else 0
virtual void Greater( const HCL_Vector_d & x, double t )
Mask function: if > , else 0
virtual void Greater( double t, const HCL_Vector_d & x )
Mask function: if > , else 0
virtual void Power( double p )
- arbitrary real power
virtual void Power( double p, const HCL_Vector_d & x )
- arbitrary real power
virtual void Sqrt()
- componentwise square root
virtual void Sqrt( const HCL_Vector_d & x )
- componentwise square root
virtual void Exp()
virtual void Exp( const HCL_Vector_d & x )
virtual void Log()
- componentwise natural log
virtual void Log( const HCL_Vector_d & x )
- componentwise natural log

Inherited from HCL_Base:

Public Methods

void IncCount() const
void DecCount() const
int Count() const

Documentation

HCL_RnVector_d is the simplest vector class. The components of a vector are stored in a 1D Fortran-style array. Operations on the vectors are implemented using explicit loops.
HCL_RnVector_d( const HCL_RnVector_d & x )
Copy constructor

HCL_RnVector_d( HCL_RnSpace_d * s )
Construct a vector belonging to the HCL_RnSpace_d s.

HCL_RnVector_d( int n, double *data = NULL )
Construct a vector belonging to n-space, and optionally initialize with the contents of the "data" array by COPYING a pointer to double - note that in this case the destructor will NOT DELETE the data pointer, as it presumably belongs to some other object

HCL_RnVector_d( const HCL_RnSpace_d & s, char * fname = NULL )
Construct a ``new'' vector belonging to the HCL_RnSpace_d s, and optionally specify an ASCII file to which the data will be saved. The format for the file is an integer specifying the dimension, followed by whitespace or newline-separated values.

HCL_RnVector_d( char * fname, int save = 1 )
Construct a ``old'' vector by reading the contents of the specified ASCII file. The format for the file is an integer specifying the dimension, followed by whitespace or newline- separated values. If the save flag is set the contents are saved back to the file on destruction - this is the default behaviour.

virtual int Dim() const
Dim returns the dimension of the vector space.

virtual HCL_VectorSpace_d& Space() const
Space returns a reference to the vector space to which this vector belongs

double& operator)( int i )
The () operator is a function for accessing the components of the vector. This version allows the value to be changed.

double operator)( int i ) const
The () operator is a function for accessing the components of the vector. This version allows access only to the value (it cannot be changed).

virtual double* Data()
Data returns a pointer to an array containing the component values of the vector. This is the actual storage array in the vector, so changing it will change the components of the vector. This pointer belongs to the HCL_RnVector_d object, and may not be deleted.

Vector operations (z is *this, which is C++-ese for the instance
of the class invoking the method).

virtual void Copy( const HCL_Vector_d & x )
z <-- x

virtual void Neg()
z <-- -z

virtual void Mul( const double & a )
z <-- a*z

virtual void Mul( const double & a, const HCL_Vector_d & x )
z <-- a*x

virtual void Add( const HCL_Vector_d & x )
z <-- z + x

virtual void Add( const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x + y

virtual double Inner( const HCL_Vector_d & x ) const
Inner product of z with x.

virtual void Sub( const HCL_Vector_d & x )
z <-- z - x

virtual void Sub( const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x - y

virtual void ScaleAdd( const double & a, const HCL_Vector_d & x )
z <-- a*z + x

virtual void AddScale( const double & a, const HCL_Vector_d & x )
z <-- z + a*x

virtual void AddScale( const double & a, const HCL_Vector_d & x, const HCL_Vector_d & y )
z <-- x + a*y

double Norm() const
Norm of z.

double Norm2() const
Norm squared of z.

Array operations - ``Matlab'' methods. In describing these,
denotes the ith component of the current array, i.e. the data array of the HCL_Vector object

virtual void Add( double a )
- overload of Add with scalar argument a la Matlab

virtual void Add( const HCL_Vector_d & x, double a )
- overload of Add with scalar argument a la Matlab

virtual void Fill( double a )

virtual void Zero()

virtual void Random()
Returns a vector with (pseudo-)random components. The components are uniformly distributed in .

virtual void DiagScale( const HCL_Vector_d & x )
- matrix multiply by diag(x)

virtual void DiagScale( const HCL_Vector_d & x, const HCL_Vector_d & y )

virtual void DiagRecipScale( const HCL_Vector_d & x, double tol=0.0)
- matrix division by diag(x). Safeguarded against overflow - if tol is less that the smallest safe divisor sfmin as defined by LAPACK::[SD]LAMCH, then tol is replaced by sfmin - thus the default is tol=0.0, which effectively means tol=sfmin.

virtual void DiagRecipScale( const HCL_Vector_d & x, const HCL_Vector_d & y, double tol=0.0)
- matrix division by diag(x). Safeguarded against overflow - if tol is less that the smallest safe divisor sfmin as defined by LAPACK::[SD]LAMCH, then tol is replaced by sfmin - thus the default is tol=0.0, which effectively means tol=sfmin.

virtual double Max() const
returns largest of components or -FLT_MAX

virtual double Min() const
returns smallest of components or FLT_MAX

virtual double Sum() const
returns

virtual void Max( const HCL_Vector_d & x )

virtual void Max( const HCL_Vector_d & x, const HCL_Vector_d & y )

virtual void Min( const HCL_Vector_d & x )

virtual void Min( const HCL_Vector_d & x, const HCL_Vector_d & y )

virtual void Abs()

virtual void Abs( const HCL_Vector_d & x )

virtual void Sign()
. Sign returns 1 for positive arguments, -1 for negative arguments, and 0 for zero arguments.

virtual void Sign( double t )

virtual void Sign( const HCL_Vector_d & x )

virtual void Sign( const HCL_Vector_d & x, const HCL_Vector_d & y )

virtual void Sign( const HCL_Vector_d & y, double t )

virtual void Sign( double t, const HCL_Vector_d & y )

virtual void Greater( double t )
Mask function: if > , else 0

virtual void Greater( const HCL_Vector_d & x )
Mask function: if > , else 0

virtual void Greater( const HCL_Vector_d & x, const HCL_Vector_d & y )
Mask function: if > , else 0

virtual void Greater( const HCL_Vector_d & y, double t )
Mask function: if > , else 0

virtual void Greater( double, const HCL_Vector_d & y )
Mask function: if > , else 0

virtual void Power( double )
- arbitrary real power. Should only be invoked for nonintegral when , but have not found a good way to enforce this constraint, so rely on runtime.

virtual void Power( double p, const HCL_Vector_d & x )
- arbitrary real power. should only be invoked for nonintegral when , but have not found a good way to enforce this constraint, so rely on runtime

virtual void Sqrt()
- componentwise square root. exits with error condition if any component is negative.

virtual void Sqrt( const HCL_Vector_d & x )
- componentwise square root. exits with error condition if any component is negative.

virtual void Exp()

virtual void Exp( const HCL_Vector_d & x )

virtual void Log()
- componentwise natural log. exits with error condition if any component is nonpositive.

virtual void Log( const HCL_Vector_d & x )
- componentwise natural log. exits with error condition if any component is nonpositive.

void Save( char * fname )
Save to a file. The file format is an integer specifying the dimension, followed by the data values, one per line.

virtual ostream& Write( ostream & str ) const
Write prints the dimension of the vector, followed by the first 10 components of the vector (or all of the componenents if the dimension is less than 10). Note that this method is intended for routine debugging, i.e. so that the vector can be examined when an error condition occurs. To save all of the vector to a file, use the Save method.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de