MFEM
v3.0
|
#include <vector.hpp>
Public Member Functions | |
Vector () | |
Default constructor for Vector. Sets size = 0 and data = NULL. More... | |
Vector (const Vector &) | |
Copy constructor. More... | |
Vector (int s) | |
Creates vector of size s. More... | |
Vector (double *_data, int _size) | |
void | Load (std::istream **in, int np, int *dim) |
Reads a vector from multiple files. More... | |
void | Load (std::istream &in, int Size) |
Load a vector from an input stream. More... | |
void | Load (std::istream &in) |
Load a vector from an input stream. More... | |
void | SetSize (int s) |
Resizes the vector if the new size is different. More... | |
void | SetData (double *d) |
void | SetDataAndSize (double *d, int s) |
void | NewDataAndSize (double *d, int s) |
void | MakeDataOwner () |
void | Destroy () |
Destroy a vector. More... | |
int | Size () const |
Returns the size of the vector. More... | |
double * | GetData () const |
operator double * () | |
operator const double * () const | |
bool | OwnsData () const |
void | StealData (double **p) |
Changes the ownership of the data; after the call the Vector is empty. More... | |
double * | StealData () |
Changes the ownership of the data; after the call the Vector is empty. More... | |
double & | Elem (int i) |
Sets value in vector. Index i = 0 .. size-1. More... | |
const double & | Elem (int i) const |
Sets value in vector. Index i = 0 .. size-1. More... | |
double & | operator() (int i) |
Sets value in vector. Index i = 0 .. size-1. More... | |
const double & | operator() (int i) const |
Sets value in vector. Index i = 0 .. size-1. More... | |
double | operator* (const double *) const |
double | operator* (const Vector &v) const |
Return the inner-product. More... | |
Vector & | operator= (const double *v) |
Vector & | operator= (const Vector &v) |
Redefine '=' for vector = vector. More... | |
Vector & | operator= (double value) |
Redefine '=' for vector = constant. More... | |
Vector & | operator*= (double c) |
Vector & | operator/= (double c) |
Vector & | operator-= (double c) |
Vector & | operator-= (const Vector &v) |
Vector & | operator+= (const Vector &v) |
Vector & | Add (const double a, const Vector &Va) |
(*this) += a * Va More... | |
Vector & | Set (const double a, const Vector &x) |
(*this) = a * x More... | |
void | SetVector (const Vector &v, int offset) |
void | Neg () |
(*this) = -(*this) More... | |
void | median (const Vector &lo, const Vector &hi) |
v = median(v,lo,hi) entrywise. Implementation assumes lo <= hi. More... | |
void | GetSubVector (const Array< int > &dofs, Vector &elemvect) const |
void | GetSubVector (const Array< int > &dofs, double *elem_data) const |
void | SetSubVector (const Array< int > &dofs, const Vector &elemvect) |
void | SetSubVector (const Array< int > &dofs, double *elem_data) |
void | AddElementVector (const Array< int > &dofs, const Vector &elemvect) |
Add (element) subvector to the vector. More... | |
void | AddElementVector (const Array< int > &dofs, double *elem_data) |
void | AddElementVector (const Array< int > &dofs, const double a, const Vector &elemvect) |
void | Print (std::ostream &out=std::cout, int width=8) const |
Prints vector to stream out. More... | |
void | Print_HYPRE (std::ostream &out) const |
Prints vector to stream out in HYPRE_Vector format. More... | |
void | Randomize (int seed=0) |
Set random values in the vector. More... | |
double | Norml2 () const |
Returns the l2 norm of the vector. More... | |
double | Normlinf () const |
Returns the l_infinity norm of the vector. More... | |
double | Norml1 () const |
Returns the l_1 norm of the vector. More... | |
double | Normlp (double p) const |
Returns the l_p norm of the vector. More... | |
double | Max () const |
Returns the maximal element of the vector. More... | |
double | Min () const |
Returns the minimal element of the vector. More... | |
double | Sum () const |
Return the sum of the vector entries. More... | |
double | DistanceTo (const double *p) const |
Compute the Euclidian distance to another vector. More... | |
int | CheckFinite () const |
~Vector () | |
Destroys vector. More... | |
Protected Attributes | |
int | size |
int | allocsize |
double * | data |
Friends | |
void | swap (Vector *v1, Vector *v2) |
Swap v1 and v2. More... | |
void | add (const Vector &v1, const Vector &v2, Vector &v) |
Do v = v1 + v2. More... | |
void | add (const Vector &v1, double alpha, const Vector &v2, Vector &v) |
Do v = v1 + alpha * v2. More... | |
void | add (const double a, const Vector &x, const Vector &y, Vector &z) |
z = a * (x + y) More... | |
void | add (const double a, const Vector &x, const double b, const Vector &y, Vector &z) |
z = a * x + b * y More... | |
void | subtract (const Vector &v1, const Vector &v2, Vector &v) |
Do v = v1 - v2. More... | |
void | subtract (const double a, const Vector &x, const Vector &y, Vector &z) |
z = a * (x - y) More... | |
Vector data type.
Definition at line 29 of file vector.hpp.
|
inline |
Default constructor for Vector. Sets size = 0 and data = NULL.
Definition at line 39 of file vector.hpp.
mfem::Vector::Vector | ( | const Vector & | v | ) |
Copy constructor.
Definition at line 26 of file vector.cpp.
|
inlineexplicit |
Creates vector of size s.
Definition at line 234 of file vector.hpp.
|
inline |
Definition at line 47 of file vector.hpp.
|
inline |
Destroys vector.
Definition at line 291 of file vector.hpp.
(*this) += a * Va
Definition at line 168 of file vector.cpp.
Add (element) subvector to the vector.
Definition at line 449 of file vector.cpp.
void mfem::Vector::AddElementVector | ( | const Array< int > & | dofs, |
double * | elem_data | ||
) |
Definition at line 460 of file vector.cpp.
void mfem::Vector::AddElementVector | ( | const Array< int > & | dofs, |
const double | a, | ||
const Vector & | elemvect | ||
) |
Definition at line 471 of file vector.cpp.
|
inline |
Count the number of entries in the Vector for which isfinite is false, i.e. the entry is a NaN or +/-Inf.
Definition at line 206 of file vector.hpp.
|
inline |
Destroy a vector.
Definition at line 263 of file vector.hpp.
double mfem::Vector::DistanceTo | ( | const double * | p | ) | const |
Compute the Euclidian distance to another vector.
Definition at line 608 of file vector.cpp.
double & mfem::Vector::Elem | ( | int | i | ) |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 67 of file vector.cpp.
const double & mfem::Vector::Elem | ( | int | i | ) | const |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 72 of file vector.cpp.
|
inline |
Definition at line 80 of file vector.hpp.
Definition at line 403 of file vector.cpp.
void mfem::Vector::GetSubVector | ( | const Array< int > & | dofs, |
double * | elem_data | ||
) | const |
Definition at line 416 of file vector.cpp.
void mfem::Vector::Load | ( | std::istream ** | in, |
int | np, | ||
int * | dim | ||
) |
Reads a vector from multiple files.
Definition at line 43 of file vector.cpp.
void mfem::Vector::Load | ( | std::istream & | in, |
int | Size | ||
) |
Load a vector from an input stream.
Definition at line 59 of file vector.cpp.
|
inline |
Load a vector from an input stream.
Definition at line 57 of file vector.hpp.
|
inline |
Definition at line 70 of file vector.hpp.
double mfem::Vector::Max | ( | ) | const |
Returns the maximal element of the vector.
Definition at line 576 of file vector.cpp.
v = median(v,lo,hi) entrywise. Implementation assumes lo <= hi.
Definition at line 390 of file vector.cpp.
double mfem::Vector::Min | ( | ) | const |
Returns the minimal element of the vector.
Definition at line 587 of file vector.cpp.
void mfem::Vector::Neg | ( | ) |
(*this) = -(*this)
Definition at line 207 of file vector.cpp.
|
inline |
Definition at line 67 of file vector.hpp.
double mfem::Vector::Norml1 | ( | ) | const |
Returns the l_1 norm of the vector.
Definition at line 548 of file vector.cpp.
double mfem::Vector::Norml2 | ( | ) | const |
Returns the l2 norm of the vector.
Definition at line 532 of file vector.cpp.
double mfem::Vector::Normlinf | ( | ) | const |
Returns the l_infinity norm of the vector.
Definition at line 537 of file vector.cpp.
double mfem::Vector::Normlp | ( | double | p | ) | const |
Returns the l_p norm of the vector.
Definition at line 558 of file vector.cpp.
|
inline |
Definition at line 84 of file vector.hpp.
|
inline |
Definition at line 82 of file vector.hpp.
|
inline |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 271 of file vector.hpp.
|
inline |
Sets value in vector. Index i = 0 .. size-1.
Definition at line 281 of file vector.hpp.
double mfem::Vector::operator* | ( | const double * | v | ) | const |
Definition at line 77 of file vector.cpp.
double mfem::Vector::operator* | ( | const Vector & | v | ) | const |
Return the inner-product.
Definition at line 90 of file vector.cpp.
Vector & mfem::Vector::operator*= | ( | double | c | ) |
Definition at line 124 of file vector.cpp.
Definition at line 157 of file vector.cpp.
Vector & mfem::Vector::operator-= | ( | double | c | ) |
Definition at line 139 of file vector.cpp.
Definition at line 146 of file vector.cpp.
Vector & mfem::Vector::operator/= | ( | double | c | ) |
Definition at line 131 of file vector.cpp.
Vector & mfem::Vector::operator= | ( | const double * | v | ) |
Definition at line 100 of file vector.cpp.
Redefine '=' for vector = vector.
Definition at line 107 of file vector.cpp.
Vector & mfem::Vector::operator= | ( | double | value | ) |
Redefine '=' for vector = constant.
Definition at line 115 of file vector.cpp.
|
inline |
Definition at line 86 of file vector.hpp.
void mfem::Vector::Print | ( | std::ostream & | out = std::cout , |
int | width = 8 |
||
) | const |
Prints vector to stream out.
Definition at line 483 of file vector.cpp.
void mfem::Vector::Print_HYPRE | ( | std::ostream & | out | ) | const |
Prints vector to stream out in HYPRE_Vector format.
Definition at line 501 of file vector.cpp.
void mfem::Vector::Randomize | ( | int | seed = 0 | ) |
Set random values in the vector.
Definition at line 517 of file vector.cpp.
(*this) = a * x
Definition at line 182 of file vector.cpp.
|
inline |
Definition at line 62 of file vector.hpp.
|
inline |
Definition at line 64 of file vector.hpp.
|
inline |
Resizes the vector if the new size is different.
Definition at line 248 of file vector.hpp.
Definition at line 427 of file vector.cpp.
void mfem::Vector::SetSubVector | ( | const Array< int > & | dofs, |
double * | elem_data | ||
) |
Definition at line 438 of file vector.cpp.
void mfem::Vector::SetVector | ( | const Vector & | v, |
int | offset | ||
) |
Definition at line 193 of file vector.cpp.
|
inline |
Returns the size of the vector.
Definition at line 76 of file vector.hpp.
|
inline |
Changes the ownership of the data; after the call the Vector is empty.
Definition at line 89 of file vector.hpp.
|
inline |
Changes the ownership of the data; after the call the Vector is empty.
Definition at line 93 of file vector.hpp.
double mfem::Vector::Sum | ( | ) | const |
Return the sum of the vector entries.
Definition at line 598 of file vector.cpp.
Do v = v1 + v2.
Definition at line 227 of file vector.cpp.
Do v = v1 + alpha * v2.
Definition at line 241 of file vector.cpp.
z = a * (x + y)
Definition at line 268 of file vector.cpp.
z = a * x + b * y
Definition at line 298 of file vector.cpp.
Do v = v1 - v2.
Definition at line 341 of file vector.cpp.
z = a * (x - y)
Definition at line 359 of file vector.cpp.
Swap v1 and v2.
Definition at line 213 of file vector.cpp.
|
protected |
Definition at line 33 of file vector.hpp.
|
protected |
Definition at line 34 of file vector.hpp.
|
protected |
Definition at line 33 of file vector.hpp.