Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Protected Attributes | List of all members
AMP::LinearAlgebra::VectorOperationsDefault< TYPE > Class Template Reference

A default set of vector operations. More...

#include <VectorOperationsDefault.h>

Inheritance diagram for AMP::LinearAlgebra::VectorOperationsDefault< TYPE >:
Inheritance graph
[legend]

Public Member Functions

void abs (const VectorData &x, VectorData &z) override
 Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).
 
virtual void abs (const VectorData &x, VectorData &z)=0
 Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).
 
void add (const VectorData &x, const VectorData &y, VectorData &z) override
 Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).
 
virtual void add (const VectorData &x, const VectorData &y, VectorData &z)=0
 Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).
 
void addScalar (const VectorData &x, const Scalar &alpha, VectorData &y) override
 set vector to \(x + \alpha \bar{1}\).
 
virtual void addScalar (const VectorData &x, const Scalar &alpha, VectorData &y)=0
 set vector to \(x + \alpha \bar{1}\).
 
void axpby (const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y) override
 Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).
 
virtual void axpby (const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y)=0
 Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).
 
void axpy (const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z) override
 Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).
 
virtual void axpy (const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z)=0
 Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).
 
std::shared_ptr< VectorOperationscloneOperations () const override
 Clone the operations.
 
void copy (const VectorData &x, VectorData &z) override
 Set vector equal to x For Vectors, \(z_i = x_i\).
 
void copyCast (const VectorData &x, VectorData &z) override
 Set vector equal to x (with different precision) For Vectors, \(z_i = x_i\).
 
void divide (const VectorData &x, const VectorData &y, VectorData &z) override
 Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).
 
virtual void divide (const VectorData &x, const VectorData &y, VectorData &z)=0
 Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).
 
virtual Scalar dot (const VectorData &x, const VectorData &y) const
 Return the dot product of this vector with the argument vector.
 
virtual bool equals (const VectorData &x, const VectorData &y, const Scalar &tol) const
 Check if two vectors are equal.
 
uint64_t getID () const
 Get a unique id hash for the vector.
 
virtual Scalar L1Norm (const VectorData &x) const
 Return discrete \( L_1 \) -norm of this vector.
 
virtual Scalar L2Norm (const VectorData &x) const
 Return discrete \( L_2 \) -norm of this vector.
 
void linearSum (const Scalar &alpha, const VectorData &x, const Scalar &beta, const VectorData &y, VectorData &z) override
 Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).
 
virtual void linearSum (const Scalar &alpha, const VectorData &x, const Scalar &beta, const VectorData &y, VectorData &z)=0
 Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).
 
Scalar localDot (const VectorData &x, const VectorData &y) const override
 Return the local dot product of this vector with the argument vector.
 
bool localEquals (const VectorData &x, const VectorData &y, const Scalar &tol=0.000001) const override
 Determine if the local portion of two vectors are equal using an absolute tolerance.
 
Scalar localL1Norm (const VectorData &x) const override
 Return local discrete \( L_1 \) -norm of this vector.
 
virtual Scalar localL1Norm (const VectorData &x) const=0
 Return local discrete \( L_1 \) -norm of this vector.
 
Scalar localL2Norm (const VectorData &x) const override
 Return local discrete \( L_2 \) -norm of this vector.
 
virtual Scalar localL2Norm (const VectorData &x) const=0
 Return local discrete \( L_2 \) -norm of this vector.
 
Scalar localMax (const VectorData &x) const override
 Return the local maximum value of the vector. \(\max_i x_i\).
 
Scalar localMaxNorm (const VectorData &x) const override
 Return the local \( L_\infty \) -norm of this vector.
 
virtual Scalar localMaxNorm (const VectorData &x) const=0
 Return the local \( L_\infty \) -norm of this vector.
 
Scalar localMin (const VectorData &x) const override
 Return the local minimum value of the vector. \(\min_i x_i\).
 
Scalar localMinQuotient (const VectorData &x, const VectorData &y) const override
 Returns the local minimum of the quotient of two vectors:
 
Scalar localSum (const VectorData &) const override
 Return the local sum of the vector.
 
Scalar localWrmsNorm (const VectorData &x, const VectorData &y) const override
 Return a weighted norm of a vector.
 
Scalar localWrmsNormMask (const VectorData &x, const VectorData &mask, const VectorData &y) const override
 Return a weighted norm of a subset of a vector.
 
virtual Scalar max (const VectorData &x) const
 Return the maximum value of the vector. \(\max_i x_i\).
 
virtual Scalar maxNorm (const VectorData &x) const
 Return the \( L_\infty \) -norm of this vector.
 
Scalar mean (const VectorData &x) const
 Return the mean of the values of the vector.
 
virtual Scalar min (const VectorData &x) const
 Return the minimum value of the vector. \(\min_i x_i\).
 
virtual Scalar minQuotient (const VectorData &x, const VectorData &y) const
 Returns the minimum of the quotient of two vectors:
 
void multiply (const VectorData &x, const VectorData &y, VectorData &z) override
 Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).
 
virtual void multiply (const VectorData &x, const VectorData &y, VectorData &z)=0
 Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).
 
void reciprocal (const VectorData &x, VectorData &y) override
 Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).
 
virtual void reciprocal (const VectorData &x, VectorData &y)=0
 Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).
 
void registerChildObjects (AMP::IO::RestartManager *manager) const override
 Register any child objects.
 
void scale (const Scalar &alpha, const VectorData &x, VectorData &y) override
 Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).
 
virtual void scale (const Scalar &alpha, const VectorData &x, VectorData &y)=0
 Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).
 
void scale (const Scalar &alpha, VectorData &x) override
 Scale a vector. For Vectors, \(x_i = \alpha x_i\).
 
virtual void scale (const Scalar &alpha, VectorData &x)=0
 Scale a vector. For Vectors, \(x_i = \alpha x_i\).
 
void setMax (const Scalar &val, VectorData &x) override
 modify vector to set \(x_i = max(x_i, val)\).
 
virtual void setMax (const Scalar &val, VectorData &x)=0
 modify vector to set \(x_i = max(x_i, val)\).
 
void setMin (const Scalar &val, VectorData &x) override
 modify vector to set \(x_i = min(x_i, val)\).
 
virtual void setMin (const Scalar &val, VectorData &x)=0
 modify vector to set \(x_i = min(x_i, val)\).
 
void setRandomValues (VectorData &x) override
 Set data in this vector to random values.
 
virtual void setRandomValues (VectorData &x)=0
 Set data in this vector to random values.
 
void setToScalar (const Scalar &alpha, VectorData &z) override
 Set all compenents of a vector to a scalar. For Vectors, the components of z are set to \(\alpha\).
 
void subtract (const VectorData &x, const VectorData &y, VectorData &z) override
 Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).
 
virtual void subtract (const VectorData &x, const VectorData &y, VectorData &z)=0
 Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).
 
virtual Scalar sum (const VectorData &x) const
 Return the sum of the values of the vector.
 
 VectorOperationsDefault ()
 
 VectorOperationsDefault (int64_t fid, AMP::IO::RestartManager *manager)
 
std::string VectorOpName () const override
 Get the type name.
 
void writeRestart (int64_t fid) const override
 Write restart data to file.
 
virtual Scalar wrmsNorm (const VectorData &x, const VectorData &y) const
 Return a weighted norm of a vector.
 
virtual Scalar wrmsNormMask (const VectorData &x, const VectorData &mask, const VectorData &y) const
 Return a weighted norm of a subset of a vector.
 
void zero (VectorData &z) override
 Set vector entries (including ghosts) to zero.
 
virtual ~VectorOperationsDefault ()
 Destructor.
 

Protected Attributes

uint64_t d_hash = 0
 

Detailed Description

template<typename TYPE = double>
class AMP::LinearAlgebra::VectorOperationsDefault< TYPE >

A default set of vector operations.

VectorOperationsDefault impliments a default set of vector operations on the CPU.

Definition at line 17 of file VectorOperationsDefault.h.

Constructor & Destructor Documentation

◆ VectorOperationsDefault() [1/2]

template<typename TYPE = double>
AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::VectorOperationsDefault ( )
inline

Definition at line 21 of file VectorOperationsDefault.h.

◆ ~VectorOperationsDefault()

template<typename TYPE = double>
virtual AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::~VectorOperationsDefault ( )
inlinevirtual

Destructor.

Definition at line 24 of file VectorOperationsDefault.h.

◆ VectorOperationsDefault() [2/2]

template<typename TYPE = double>
AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::VectorOperationsDefault ( int64_t  fid,
AMP::IO::RestartManager manager 
)

Member Function Documentation

◆ abs() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::abs ( const VectorData x,
VectorData z 
)
overridevirtual

Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).

Parameters
[in]xa vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ abs() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::abs ( const VectorData x,
VectorData z 
)
virtual

Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).

Parameters
[in]xa vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ add() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::add ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ add() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::add ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ addScalar() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::addScalar ( const VectorData x,
const Scalar alpha,
VectorData y 
)
overridevirtual

set vector to \(x + \alpha \bar{1}\).

for vectors, \(y_i = x_i + \alpha\).

Parameters
[in]xa vector
[in]alphaa scalar
[out]yOutput vector y

Implements AMP::LinearAlgebra::VectorOperations.

◆ addScalar() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::addScalar ( const VectorData x,
const Scalar alpha,
VectorData y 
)
virtual

set vector to \(x + \alpha \bar{1}\).

for vectors, \(y_i = x_i + \alpha\).

Parameters
[in]xa vector
[in]alphaa scalar
[out]yOutput vector y

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpby() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::axpby ( const Scalar alpha,
const Scalar beta,
const VectorData x,
VectorData y 
)
overridevirtual

Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).

Parameters
[in]alphaa scalar
[in]betaa scalar
[in]xa vector
[in,out]yOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpby() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::axpby ( const Scalar alpha,
const Scalar beta,
const VectorData x,
VectorData y 
)
virtual

Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).

Parameters
[in]alphaa scalar
[in]betaa scalar
[in]xa vector
[in,out]yOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpy() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::axpy ( const Scalar alpha,
const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpy() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::axpy ( const Scalar alpha,
const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ cloneOperations()

template<typename TYPE = double>
std::shared_ptr< VectorOperations > AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::cloneOperations ( ) const
overridevirtual

Clone the operations.

Implements AMP::LinearAlgebra::VectorOperations.

◆ copy()

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::copy ( const VectorData x,
VectorData z 
)
overridevirtual

Set vector equal to x For Vectors, \(z_i = x_i\).

Parameters
[in]xa vector
[out]za vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ copyCast()

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::copyCast ( const VectorData x,
VectorData z 
)
overridevirtual

Set vector equal to x (with different precision) For Vectors, \(z_i = x_i\).

Parameters
[in]xa vector
[out]za vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ divide() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::divide ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ divide() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::divide ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ dot()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::dot ( const VectorData x,
const VectorData y 
) const
virtual

Return the dot product of this vector with the argument vector.

Returns

\[\sum_i x_i y_i\]

Parameters
[in]xa vector
[in,out]ya vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ equals()

template<typename TYPE = double>
virtual bool AMP::LinearAlgebra::VectorOperations::equals ( const VectorData x,
const VectorData y,
const Scalar tol 
) const
virtual

Check if two vectors are equal.

Returns true if all values are equal within tolerance

Parameters
[in]xa vector
[in]ya vector
[in]toltolerance to use

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ getID()

uint64_t AMP::LinearAlgebra::VectorOperations::getID ( ) const
inherited

Get a unique id hash for the vector.

◆ L1Norm()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::L1Norm ( const VectorData x) const
virtual

Return discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ L2Norm()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::L2Norm ( const VectorData x) const
virtual

Return discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ linearSum() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::linearSum ( const Scalar alpha,
const VectorData x,
const Scalar beta,
const VectorData y,
VectorData z 
)
overridevirtual

Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]betaa scalar
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ linearSum() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::linearSum ( const Scalar alpha,
const VectorData x,
const Scalar beta,
const VectorData y,
VectorData z 
)
virtual

Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]betaa scalar
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ localDot()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localDot ( const VectorData x,
const VectorData y 
) const
overridevirtual

Return the local dot product of this vector with the argument vector.

Returns

\[\sum_i x_i y_i\]

Parameters
[in]xa vector
[in]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localEquals()

template<typename TYPE = double>
bool AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localEquals ( const VectorData x,
const VectorData y,
const Scalar tol = 0.000001 
) const
overridevirtual

Determine if the local portion of two vectors are equal using an absolute tolerance.

Parameters
[in]xa vector
[in]ya vector
[in]tolTolerance of comparison
Returns
True iff \(||y - x||_\infty < \mathit{tol}\)

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL1Norm() [1/2]

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localL1Norm ( const VectorData x) const
overridevirtual

Return local discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL1Norm() [2/2]

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::localL1Norm ( const VectorData x) const
virtual

Return local discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL2Norm() [1/2]

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localL2Norm ( const VectorData x) const
overridevirtual

Return local discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL2Norm() [2/2]

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::localL2Norm ( const VectorData x) const
virtual

Return local discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMax()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localMax ( const VectorData x) const
overridevirtual

Return the local maximum value of the vector. \(\max_i x_i\).

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMaxNorm() [1/2]

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localMaxNorm ( const VectorData x) const
overridevirtual

Return the local \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMaxNorm() [2/2]

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::localMaxNorm ( const VectorData x) const
virtual

Return the local \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMin()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localMin ( const VectorData x) const
overridevirtual

Return the local minimum value of the vector. \(\min_i x_i\).

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMinQuotient()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localMinQuotient ( const VectorData x,
const VectorData y 
) const
overridevirtual

Returns the local minimum of the quotient of two vectors:

\[\min_{i,y_i\neq0} x_i/y_i\]

Parameters
[in]xa vector
[in]ya vector
Returns

\[\min_{i,y_i\neq0} x_i/y_i\]

Implements AMP::LinearAlgebra::VectorOperations.

◆ localSum()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localSum ( const VectorData x) const
overridevirtual

Return the local sum of the vector.

Implements AMP::LinearAlgebra::VectorOperations.

◆ localWrmsNorm()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localWrmsNorm ( const VectorData x,
const VectorData y 
) const
overridevirtual

Return a weighted norm of a vector.

Parameters
[in]xa vector
[in]ya vector
Returns

\[\sqrt{\frac{\displaystyle \sum_i x^2_i y^2_i}{n}}\]

Implements AMP::LinearAlgebra::VectorOperations.

◆ localWrmsNormMask()

template<typename TYPE = double>
Scalar AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::localWrmsNormMask ( const VectorData x,
const VectorData mask,
const VectorData y 
) const
overridevirtual

Return a weighted norm of a subset of a vector.

Parameters
[in]xa vector
[in]ya vector
[in]maska vector
Returns

\[\sqrt{\frac{\displaystyle \sum_{i,\mathit{mask}_i>0} y^2_iy^2_i}{n}}\]

Implements AMP::LinearAlgebra::VectorOperations.

◆ max()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::max ( const VectorData x) const
virtual

Return the maximum value of the vector. \(\max_i x_i\).

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ maxNorm()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::maxNorm ( const VectorData x) const
virtual

Return the \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ mean()

Scalar AMP::LinearAlgebra::VectorOperations::mean ( const VectorData x) const
inherited

Return the mean of the values of the vector.

Parameters
[in]xa vector

◆ min()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::min ( const VectorData x) const
virtual

Return the minimum value of the vector. \(\min_i x_i\).

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ minQuotient()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::minQuotient ( const VectorData x,
const VectorData y 
) const
virtual

Returns the minimum of the quotient of two vectors:

\[\min_{i,y_i\neq0} x_i/x_i\]

Parameters
[in]xa vector
[in]ya vector
Returns

\[\min_{i,y_i\neq0} x_i/y_i\]

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ multiply() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::multiply ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ multiply() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::multiply ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ reciprocal() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::reciprocal ( const VectorData x,
VectorData y 
)
overridevirtual

Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).

Parameters
xa vector
ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ reciprocal() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::reciprocal ( const VectorData x,
VectorData y 
)
virtual

Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).

Parameters
xa vector
ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ registerChildObjects()

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::registerChildObjects ( AMP::IO::RestartManager manager) const
overridevirtual

Register any child objects.

This function will register child objects with the manager

Parameters
managerRestart manager

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ scale() [1/4]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::scale ( const Scalar alpha,
const VectorData x,
VectorData y 
)
overridevirtual

Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[out]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [2/4]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::scale ( const Scalar alpha,
const VectorData x,
VectorData y 
)
virtual

Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[out]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [3/4]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::scale ( const Scalar alpha,
VectorData x 
)
overridevirtual

Scale a vector. For Vectors, \(x_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in,out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [4/4]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::scale ( const Scalar alpha,
VectorData x 
)
virtual

Scale a vector. For Vectors, \(x_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in,out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMax() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::setMax ( const Scalar val,
VectorData x 
)
overridevirtual

modify vector to set \(x_i = max(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMax() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::setMax ( const Scalar val,
VectorData x 
)
virtual

modify vector to set \(x_i = max(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMin() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::setMin ( const Scalar val,
VectorData x 
)
overridevirtual

modify vector to set \(x_i = min(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMin() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::setMin ( const Scalar val,
VectorData x 
)
virtual

modify vector to set \(x_i = min(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setRandomValues() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::setRandomValues ( VectorData x)
overridevirtual

Set data in this vector to random values.

Parameters
[out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setRandomValues() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::setRandomValues ( VectorData x)
virtual

Set data in this vector to random values.

Parameters
[out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setToScalar()

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::setToScalar ( const Scalar alpha,
VectorData z 
)
overridevirtual

Set all compenents of a vector to a scalar. For Vectors, the components of z are set to \(\alpha\).

Parameters
[in]alphascalar value
[out]za vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ subtract() [1/2]

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::subtract ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ subtract() [2/2]

template<typename TYPE = double>
virtual void AMP::LinearAlgebra::VectorOperations::subtract ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ sum()

virtual Scalar AMP::LinearAlgebra::VectorOperations::sum ( const VectorData x) const
virtualinherited

Return the sum of the values of the vector.

Parameters
[in]xa vector

◆ VectorOpName()

template<typename TYPE = double>
std::string AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::VectorOpName ( ) const
overridevirtual

Get the type name.

Implements AMP::LinearAlgebra::VectorOperations.

◆ writeRestart()

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::writeRestart ( int64_t  fid) const
overridevirtual

Write restart data to file.

This function will write the mesh to an HDF5 file

Parameters
fidFile identifier to write

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ wrmsNorm()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::wrmsNorm ( const VectorData x,
const VectorData y 
) const
virtual

Return a weighted norm of a vector.

Parameters
[in]xa vector
[in]ya vector
Returns

\[\sqrt{\frac{\displaystyle \sum_i x^2_iy^2_i}{n}}\]

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ wrmsNormMask()

template<typename TYPE = double>
virtual Scalar AMP::LinearAlgebra::VectorOperations::wrmsNormMask ( const VectorData x,
const VectorData mask,
const VectorData y 
) const
virtual

Return a weighted norm of a subset of a vector.

Parameters
[in]xa vector
[in]ya vector
[in]maska vector
Returns

\[\sqrt{\frac{\displaystyle \sum_{i,\mathit{mask}_i>0} x^2_iy^2_i}{n}}\]

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ zero()

template<typename TYPE = double>
void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::zero ( VectorData x)
overridevirtual

Set vector entries (including ghosts) to zero.

This is equivalent (but more efficient) to calling setToScalar ( 0.0 ) followed by a makeConsistent(SET)

Implements AMP::LinearAlgebra::VectorOperations.

Member Data Documentation

◆ d_hash

uint64_t AMP::LinearAlgebra::VectorOperations::d_hash = 0
protectedinherited

Definition at line 399 of file VectorOperations.h.


The documentation for this class was generated from the following file:



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:43.
Comments on this page