libROM
v1.0
Datadriven physical simulation library

#include <Vector.h>
Public Member Functions  
Vector (int dim, bool distributed)  
Constructor creating a Vector with uninitialized values. More...  
Vector (double *vec, int dim, bool distributed, bool copy_data=true)  
Constructor in which the Vector is given its initial values. More...  
Vector (const Vector &other)  
Copy constructor. More...  
~Vector ()  
Destructor.  
Vector &  operator= (const Vector &rhs) 
Assignment operator. More...  
Vector &  operator+= (const Vector &rhs) 
Addition operator. More...  
Vector &  operator= (const Vector &rhs) 
Subtraction operator. More...  
Vector &  operator= (const double &a) 
Equal operator. More...  
Vector &  operator*= (const double &a) 
Scaling operator. More...  
Vector &  transform (std::function< void(const int size, double *vector)> transformer) 
Transform the vector using a supplied function. More...  
void  transform (Vector &result, std::function< void(const int size, double *vector)> transformer) const 
Transform a vector using a supplied function and store the results in another vector. More...  
void  transform (Vector *&result, std::function< void(const int size, double *vector)> transformer) const 
Transform a vector using a supplied function and store the results in another vector. More...  
Vector &  transform (std::function< void(const int size, double *origVector, double *resultVector)> transformer) 
Transform the vector using a supplied function. More...  
void  transform (Vector &result, std::function< void(const int size, double *origVector, double *resultVector)> transformer) const 
Transform a vector using a supplied function and store the results in another vector. More...  
void  transform (Vector *&result, std::function< void(const int size, double *origVector, double *resultVector)> transformer) const 
Transform a vector using a supplied function and store the results in another vector. More...  
void  setSize (int dim) 
Sets the length of the vector and reallocates storage if needed. All values are initialized to zero. More...  
bool  distributed () const 
Returns true if the Vector is distributed. More...  
int  dim () const 
Returns the dimension of the Vector on this processor. More...  
double  inner_product (const Vector &other) const 
Inner product, reference form. More...  
double  inner_product (const Vector *other) const 
Inner product, pointer version. More...  
double  norm () const 
Form the norm of this. More...  
double  norm2 () const 
Form the squared norm of this. More...  
double  normalize () 
Normalizes the Vector and returns its norm. More...  
Vector *  plus (const Vector &other) const 
Adds other and this and returns the result, reference version. More...  
Vector *  plus (const Vector *other) const 
Adds other and this and returns the result, pointer version. More...  
void  plus (const Vector &other, Vector *&result) const 
Adds other and this and fills result with the answer. More...  
void  plus (const Vector &other, Vector &result) const 
Adds other and this and fills result with the answer. More...  
Vector *  plusAx (double factor, const Vector &other) 
Adds factor*other and this and returns the result, reference version. More...  
Vector *  plusAx (double factor, const Vector *other) 
Adds factor*other and this and returns the result, pointer version. More...  
void  plusAx (double factor, const Vector &other, Vector *&result) const 
Adds factor*other and this and fills result with the answer. More...  
void  plusAx (double factor, const Vector &other, Vector &result) const 
Adds factor*other and this and fills result with the answer. More...  
void  plusEqAx (double factor, const Vector &other) 
Adds factor*other to this, reference version. More...  
void  plusEqAx (double factor, const Vector *other) 
Adds factor*other to this, pointer version. More...  
Vector *  minus (const Vector &other) const 
Subtracts other and this and returns the result, reference version. More...  
Vector *  minus (const Vector *other) const 
Subtracts other and this and returns the result, pointer version. More...  
void  minus (const Vector &other, Vector *&result) const 
Subtracts other and this and fills result with the answer. More...  
void  minus (const Vector &other, Vector &result) const 
Subtracts other and this and fills result with the answer. More...  
Vector *  mult (double factor) const 
Multiplies this by the supplied constant and returns the result. More...  
void  mult (double factor, Vector *&result) const 
Multiplies this by the supplied constant and fills result with the answer. More...  
void  mult (double factor, Vector &result) const 
Multiplies this by the supplied constant and fills result with the answer. More...  
const double &  item (int i) const 
Const Vector member access. More...  
double &  item (int i) 
Nonconst Vector member access. More...  
const double &  operator() (int i) const 
Const Vector member access. More...  
double &  operator() (int i) 
Nonconst Vector member access. More...  
void  print (const char *prefix) const 
print Vector into (a) ascii file(s). More...  
void  write (const std::string &base_file_name) 
write Vector into (a) HDF file(s). More...  
void  read (const std::string &base_file_name) 
read Vector from (a) HDF file(s). More...  
void  local_read (const std::string &base_file_name, int rank) 
read read a single rank of a distributed Vector from (a) HDF file(s). More...  
double *  getData () const 
Get the vector data as a pointer.  
double  localMin (int nmax=0) 
Compute the local minimum of this. More...  
Class Vector is a simple vector class in which the dimensions may be distributed across multiple processes. This class supports only the basic operations that are needed by the SVD library.
CAROM::Vector::Vector  (  int  dim, 
bool  distributed  
) 
Constructor creating a Vector with uninitialized values.
[in]  dim  When undistributed, the total dimension of the Vector. When distributed, the part of the total dimension of the Vector on this processor. 
[in]  distributed  If true the dimensions of the Vector are spread over all processors. 
Definition at line 32 of file Vector.cpp.
CAROM::Vector::Vector  (  double *  vec, 
int  dim,  
bool  distributed,  
bool  copy_data = true 

) 
Constructor in which the Vector is given its initial values.
[in]  vec  The initial values of the Vector. 
[in]  dim  When undistributed, the total dimension of the Vector. When distributed, the part of the total dimension of the Vector on this processor. 
[in]  distributed  If true the dimensions of the Vector are spread over all processors. 
[in]  copy_data  If true the vector allocates its own storage and copies the contents of vec into its own storage. Otherwise it uses vec as its storage. 
Definition at line 52 of file Vector.cpp.
CAROM::Vector::Vector  (  const Vector &  other  ) 

inline 

inline 
double CAROM::Vector::inner_product  (  const Vector &  other  )  const 
Inner product, reference form.
For distributed Vectors this is a parallel operation.
[in]  other  The Vector to form the inner product with this. 
Definition at line 222 of file Vector.cpp.

inline 
Inner product, pointer version.
For distributed Vectors this is a parallel operation.
[in]  other  The Vector to form the inner product with this. 

inline 

inline 
void CAROM::Vector::local_read  (  const std::string &  base_file_name, 
int  rank  
) 
read read a single rank of a distributed Vector from (a) HDF file(s).
[in]  base_file_name  The base part of the file name. 
[in]  rank  The rank to read from. 
Definition at line 533 of file Vector.cpp.
double CAROM::Vector::localMin  (  int  nmax = 0  ) 
Compute the local minimum of this.
[in]  nmax  If positive, use only the first nmax entries of this. 
Definition at line 566 of file Vector.cpp.
Subtracts other and this and returns the result, reference version.
[in]  other  The other subtrahand. 
Subtracts other and this and fills result with the answer.
Result will be resized appropriately.
[in]  other  The other subtrahend. 
[out]  result  this  other 
Definition at line 390 of file Vector.cpp.
Subtracts other and this and fills result with the answer.
Result will be allocated if unallocated or resized appropriately if already allocated.
[in]  other  The other subtrahend. 
[out]  result  this  other 
Definition at line 366 of file Vector.cpp.
Subtracts other and this and returns the result, pointer version.
[in]  other  The other subtrahand. 

inline 
void CAROM::Vector::mult  (  double  factor, 
Vector &  result  
)  const 
Multiplies this by the supplied constant and fills result with the answer.
[in]  factor  Factor to multiply by. 
[out]  result  factor*this 
Definition at line 430 of file Vector.cpp.
void CAROM::Vector::mult  (  double  factor, 
Vector *&  result  
)  const 
Multiplies this by the supplied constant and fills result with the answer.
[in]  factor  Factor to multiply by. 
[out]  result  factor*this 
Definition at line 408 of file Vector.cpp.
double CAROM::Vector::norm  (  )  const 
Form the norm of this.
For a distributed Vector this is a parallel operation.
Definition at line 242 of file Vector.cpp.
double CAROM::Vector::norm2  (  )  const 
Form the squared norm of this.
For a distributed Vector this is a parallel operation.
Definition at line 249 of file Vector.cpp.
double CAROM::Vector::normalize  (  ) 
Normalizes the Vector and returns its norm.
For a distributed Vector this is a parallel operation.
Definition at line 256 of file Vector.cpp.

inline 

inline 
Vector & CAROM::Vector::operator*=  (  const double &  a  ) 
Scaling operator.
[in]  a  The double precision number by which every Vector entry should be scaled. 
Definition at line 146 of file Vector.cpp.
Addition operator.
[in]  rhs  The Vector to add to this. 
Definition at line 121 of file Vector.cpp.
Subtraction operator.
[in]  rhs  The Vector to subtract from this. 
Definition at line 130 of file Vector.cpp.
Vector & CAROM::Vector::operator=  (  const double &  a  ) 
Equal operator.
[in]  a  The double precision number to which every Vector entry should be set. 
Definition at line 139 of file Vector.cpp.
Assignment operator.
[in]  rhs  The Vector to assign to this. 
Definition at line 110 of file Vector.cpp.
Adds other and this and returns the result, reference version.
[in]  other  The other summand. 
Adds other and this and fills result with the answer.
Result will be resized appropriately.
[in]  other  The other summand. 
[out]  result  this + other 
Definition at line 290 of file Vector.cpp.
Adds other and this and fills result with the answer.
Result will be allocated if unallocated or resized appropriately if already allocated.
[in]  other  The other summand. 
[out]  result  this + other 
Definition at line 266 of file Vector.cpp.
Adds other and this and returns the result, pointer version.
[in]  other  The other summand. 
Adds factor*other and this and returns the result, reference version.
[in]  factor  Multiplicative factor applied to other. 
[in]  other  The other summand. 
Adds factor*other and this and fills result with the answer.
Result will be resized appropriately.
[in]  factor  Multiplicative factor applied to other. 
[in]  other  The other summand. 
[out]  result  this + factor*other 
Definition at line 333 of file Vector.cpp.
Adds factor*other and this and fills result with the answer.
Result will be allocated if unallocated or resized appropriately if already allocated.
[in]  factor  Multiplicative factor applied to other. 
[in]  other  The other summand. 
[out]  result  this + factor*other 
Definition at line 308 of file Vector.cpp.
Adds factor*other and this and returns the result, pointer version.
[in]  factor  Multiplicative factor applied to other. 
[in]  other  The other summand. 
void CAROM::Vector::plusEqAx  (  double  factor, 
const Vector &  other  
) 
Adds factor*other to this, reference version.
[in]  factor  Multiplicative factor applied to other. 
[in]  other  The other summand. 
Definition at line 352 of file Vector.cpp.

inline 
Adds factor*other to this, pointer version.
[in]  factor  Multiplicative factor applied to other. 
[in]  other  The other summand. 
void CAROM::Vector::print  (  const char *  prefix  )  const 
print Vector into (a) ascii file(s).
[in]  prefix  The name of the prefix of the file name. 
Definition at line 476 of file Vector.cpp.
void CAROM::Vector::read  (  const std::string &  base_file_name  ) 
read Vector from (a) HDF file(s).
[in]  base_file_name  The base part of the file name. 
Definition at line 492 of file Vector.cpp.

inline 
Vector & CAROM::Vector::transform  (  std::function< void(const int size, double *origVector, double *resultVector)>  transformer  ) 
Transform the vector using a supplied function.
[in]  transformer  A transformer function which takes in as input a size and transforms the origVector and stores the result in resultVector. 
Definition at line 183 of file Vector.cpp.
Vector & CAROM::Vector::transform  (  std::function< void(const int size, double *vector)>  transformer  ) 
Transform the vector using a supplied function.
[in]  transformer  A transformer function which takes in as input a size and a vector. 
Definition at line 153 of file Vector.cpp.
void CAROM::Vector::transform  (  Vector &  result, 
std::function< void(const int size, double *origVector, double *resultVector)>  transformer  
)  const 
Transform a vector using a supplied function and store the results in another vector.
[out]  result  A vector which will store the transformed result. 
[in]  transformer  A transformer function which takes in as input a size and transforms the origVector and stores the result in resultVector. 
Definition at line 193 of file Vector.cpp.
void CAROM::Vector::transform  (  Vector &  result, 
std::function< void(const int size, double *vector)>  transformer  
)  const 
Transform a vector using a supplied function and store the results in another vector.
[out]  result  A vector which will store the transformed result. 
[in]  transformer  A transformer function which takes in as input a size and transforms the vector. 
Definition at line 160 of file Vector.cpp.
void CAROM::Vector::transform  (  Vector *&  result, 
std::function< void(const int size, double *origVector, double *resultVector)>  transformer  
)  const 
Transform a vector using a supplied function and store the results in another vector.
[out]  result  A vector which will store the transformed result. 
[in]  transformer  A transformer function which takes in as input a size and transforms the origVector and stores the result in resultVector. 
Definition at line 204 of file Vector.cpp.
void CAROM::Vector::transform  (  Vector *&  result, 
std::function< void(const int size, double *vector)>  transformer  
)  const 
Transform a vector using a supplied function and store the results in another vector.
[out]  result  A vector which will store the transformed result. 
[in]  transformer  A transformer function which takes in as input a size and transforms the vector. 
Definition at line 168 of file Vector.cpp.
void CAROM::Vector::write  (  const std::string &  base_file_name  ) 
write Vector into (a) HDF file(s).
[in]  base_file_name  The base part of the file name. 
Definition at line 446 of file Vector.cpp.