Playa::Vector< Scalar > Class Template Reference

#include <PlayaVectorDecl.hpp>

Inheritance diagram for Playa::Vector< Scalar >:

Playa::Handle< VectorBase< Scalar > >

List of all members.

Public Member Functions

Constructors, Destructors, and Assignment Operators


 Vector ()
 Vector (Playa::Handleable< VectorBase< Scalar > > *rawPtr)
 Vector (const Teuchos::RCP< VectorBase< Scalar > > &smartPtr)
template<int N>
 Vector (const LCN< Scalar, N > &x)
 Construct a vector from an N-term LC.
Vector< Scalar > & operator= (const LCN< Scalar, 1 > &x)
 Assign a one-term LC to this vector.
Vector< Scalar > & operator= (const LCN< Scalar, 2 > &x)
 Assign a two-term LC to this vector.
Vector< Scalar > & operator= (const LCN< Scalar, 3 > &x)
 Assign a three-term LC to this vector.
template<int N>
Vector< Scalar > & operator= (const LCN< Scalar, N > &x)
 Assign an N-term LC to this vector.
Operators with assignment


Vector< Scalar > & operator+= (const Vector< Scalar > &other)
Vector< Scalar > & operator+= (const LCN< Scalar, 1 > &x)
Vector< Scalar > & operator+= (const LCN< Scalar, 2 > &x)
template<int N>
Vector< Scalar > & operator+= (const LCN< Scalar, N > &x)
Vector< Scalar > & operator-= (const Vector< Scalar > &other)
Vector< Scalar > & operator-= (const LCN< Scalar, 1 > &x)
Vector< Scalar > & operator-= (const LCN< Scalar, 2 > &x)
template<int N>
Vector< Scalar > & operator-= (const LCN< Scalar, N > &x)
Vector< Scalar > & operator*= (const Scalar &a)
Vector< Scalar > & operator/= (const Scalar &a)
Structural information


VectorSpace< Scalar > space () const
 My space.
const MPICommcomm () const
 My communicator.
int dim () const
 My dimension.
Block operations


int numBlocks () const
 get number of blocks
void setBlock (int i, const Vector< Scalar > &v)
 set the i-th block
const Vector< Scalar > & getBlock (int i) const
 get the i-th block
Vector< Scalar > getNonConstBlock (int i)
 get the i-th block
const Vector< Scalar > & getBlock (const BlockIterator< Scalar > &b) const
 get the i-th block
Vector< Scalar > getNonConstBlock (const BlockIterator< Scalar > &b)
 get the i-th block
Sequential data accessors


ConstDataChunk< Scalar > nextConstChunk () const
 Get the next chunk of values for read-only access.
NonConstDataChunk< Scalar > nextChunk ()
 Get the next chunk of values for read-write access.
bool hasMoreChunks () const
 Tell whether there are more chunks remaining to be accessed.
void rewind () const
 Reset the data stream back to a state where all chunks are considered unread.
Random access to local elements


const Scalar & operator[] (int localIndex) const
 const bracket operator for read-only random access to local elements as specified by a flat index that runs from 0 to space().numLocalElements(). If the vector does not consist of a single contiguous data chunk, this might be slow (worst case would be O(N), if every element is stored in its own chunk of length 1).
Scalar & operator[] (int localIndex)
 non-const bracket operator for read-write random access to local elements as specified by a flat index that runs from 0 to space().numLocalElements(). If the vector does not consist of a single contiguous data chunk, this might be slow (worst case would be O(N), if every element is stored in its own chunk of length 1).
const Scalar & operator() (const BlockIterator< Scalar > &b, int localIndexWithinBlock) const
 parentheses operator for read-only random access to local elements as specified by a block iterator and a flat index indicating the element's location within that block.
Scalar & operator() (const BlockIterator< Scalar > &b, int localIndexWithinBlock)
 parentheses operator for read-write random access to local elements as specified by a block iterator and a flat index indicating the element's location within that block.
Diagnostic output


std::string description () const
 Return a short string description of the vector.
void print (std::ostream &os) const
 Print the vector in some detail.
Math operations


Vector< Scalar > & scale (const Scalar &alpha)
 Multiply this vector by a constant scalar factor.
Vector< Scalar > & update (const Scalar &alpha, const Vector< Scalar > &x, const Scalar &gamma=1.0)
 Add a scaled vector to this vector times a constant: $ this=\alpha x + \gamma \,this. $.
Vector< Scalar > & update (const Scalar &alpha, const Vector< Scalar > &x, const Scalar &beta, const Vector< Scalar > &y, const Scalar &gamma)
 Add two scaled vectors to this vector times a constant: $ this=\alpha x + \beta y + \gamma \, this. $.
Vector< Scalar > & update (const Scalar &alpha, const Vector< Scalar > &x, const Scalar &beta, const Vector< Scalar > &y, const Scalar &gamma, const Vector< Scalar > &z, const Scalar &delta)
 Add three scaled vectors to this vector times a constant: $ this=\alpha x + \beta y + \gamma x + \delta \, this. $.
Vector< Scalar > & acceptCopyOf (const Vector< Scalar > &x)
 Copy the values of another vector into this vector.
Vector< Scalar > copy () const
 Create a new vector that is a copy of this vector.
Vector< Scalar > & selfDotStar (const Vector< Scalar > &other)
 In-place element-by-element product (Matlab dot-star operator).
Vector< Scalar > & selfDotSlash (const Vector< Scalar > &other)
 In-place element-by-element division (Matlab dot-slash operator).
Vector< Scalar > dotStar (const Vector< Scalar > &other) const
 Element-by-element product (Matlab dot-star operator).
Vector< Scalar > dotSlash (const Vector< Scalar > &other) const
 Element-by-element division (Matlab dot-slash operator).
Vector< Scalar > reciprocal () const
 Return element-by-element reciprocal as a new vector.
Vector< Scalar > abs () const
 Return element-by-element absolute value as a new vector.
Vector< Scalar > & selfReciprocal ()
 Overwrite self with element-by-element reciprocal.
Vector< Scalar > & selfAbs ()
 Overwrite self with element-by-element absolute value.
Vector< Scalar > & randomize ()
 Overwrite self with random values.
void setToConstant (const Scalar &alpha)
 Set all elements to a constant value.
Scalar dot (const Vector< Scalar > &other) const
 Take dot product with another vector.
Scalar operator* (const Vector< Scalar > &other) const
 Overloaded operator for dot product.
Scalar norm1 () const
 Compute the 1-norm of this vector.
Scalar norm2 () const
 Compute the 2-norm of this vector.
Scalar norm2 (const Vector< Scalar > &weights) const
 Compute the weighted 2-norm of this vector.
Scalar normInf () const
 Compute the infinity-norm of this vector.
void zero ()
 Set all elements to zero.
Scalar max () const
 Return the max element.
Scalar min () const
 Return the min element.
Functor application


template<class UF >
Vector< Scalar > & applyUnaryFunctor (const UF &functor)
 Apply a unary functor, overwriting this vector with the results.
template<class UF >
Vector< Scalar > & acceptUnaryFunctor (const UF &functor, const Vector< Scalar > &other)
 Apply a unary functor to another vector, writing the results into this vector. The other vector is unchanged.
template<class VF >
Vector< Scalar > & applyBinaryFunctor (const VF &functor, const Vector< Scalar > &other)
 Apply a binary functor to this vector and another vector, writing the results into this vector. The other vector is unchanged.
template<class VF >
Vector< Scalar > & applyTernaryFunctor (const VF &functor, const Vector< Scalar > &x, const Vector< Scalar > &y)
 Apply a ternary functor to this vector and two other vectors, writing the results into this vector. The other vectors are unchanged.
template<class RF >
PlayaFunctors::VectorFunctorTraits
< Scalar, RF >::ReturnType 
applyUnaryReductionFunctor (const RF &functor) const
 Apply a unary reduction functor.
template<class RF >
PlayaFunctors::VectorFunctorTraits
< Scalar, RF >::ReturnType 
applyBinaryReductionFunctor (const RF &functor, const Vector< Scalar > &other) const
 Apply a binary reduction functor.

Static Public Member Functions

static RCP< Time > & opTimer ()
 Get a stopwtach for timing vector operations.

Protected Member Functions

const Vector< Scalar > & getBlock (const std::deque< int > &iter) const
Vector< Scalar > getNonConstBlock (const std::deque< int > &iter)

Related Functions

(Note that these are not member functions.)

template<class Scalar >
Vector< Scalar > blockVector (const Vector< Scalar > &v1)
template<class Scalar >
Vector< Scalar > blockVector (const Vector< Scalar > &v1, const Vector< Scalar > &v2)
template<class Scalar >
Vector< Scalar > blockVector (const Vector< Scalar > &v1, const Vector< Scalar > &v2, const Vector< Scalar > &v3)
template<class Scalar >
Vector< Scalar > blockVector (const Vector< Scalar > &v1, const Vector< Scalar > &v2, const Vector< Scalar > &v3, const Vector< Scalar > &v4)
template<class Scalar >
Vector< Scalar > blockVector (const Array< Vector< Scalar > > &x)
template<class Scalar >
LoadableVector< Scalar > * loadable (Vector< Scalar > vec)
 Dynamic cast a Vector's underlying pointer to a LoadableVector.
template<class Scalar >
Scalar * dataPtr (Vector< Scalar > vec)
 Return a pointer to the beginning of the vector's single data chunk. If the underlying VectorBase is not a SingleChunkVector an exception will be thrown.
template<class Scalar >
const Scalar * dataPtr (const Vector< Scalar > &vec)
 Return a pointer to the beginning of the vector's single data chunk. If the underlying VectorBase is not a SingleChunkVector an exception will be thrown.
template<class Scalar >
Scalar minloc (const Vector< Scalar > &x, int &gni)
 Return minimum element and its location.
template<class Scalar >
Scalar maxloc (const Vector< Scalar > &x, int &gni)
 Return maximum element and its location.
template<class Scalar >
Scalar minlocWithBound (const Scalar &lowerBound, const Vector< Scalar > &x, int &gni)
 Return minimum element greater than a specified bound, and its location.
template<class Scalar >
Scalar maxlocWithBound (const Scalar &upperBound, const Vector< Scalar > &x, int &gni)
 Return maximum element less than a specified bound, and its location.
template<class Scalar >
Scalar norm2 (const Vector< Scalar > &x)
 Compute the Euclidean norm of a vector.
template<class Scalar >
Scalar norm1 (const Vector< Scalar > &x)
 Compute the one-norm of a vector.
template<class Scalar >
Scalar normInf (const Vector< Scalar > &x)
 Compute the infinity norm of a vector.
template<class Scalar >
Scalar norm2Dist (const Vector< Scalar > &x, const Vector< Scalar > &y)
 Compute the Euclidean distance between two vectors.
template<class Scalar >
Scalar norm1Dist (const Vector< Scalar > &x, const Vector< Scalar > &y)
 Compute the one-norm distance between two vectors.
template<class Scalar >
Scalar normInfDist (const Vector< Scalar > &x, const Vector< Scalar > &y)
 Compute the infinity-norm distance between two vectors.


Detailed Description

template<class Scalar>
class Playa::Vector< Scalar >

User-level vector class.

Vector creation

Ordinarily, you will never construct a Vector directly from a derived type. Rather, the createMember() method of VectorSpace is used to build a vector of the appropriate type, for example,

 VectorType<double> vecType = new EpetraVectorType();
 int dimension = 100;
 VectorSpace<double> space = vecType.createSpace(dimension);
 Vector<double> x = space.createMember();
 Vector<double> y = space.createMember();
This hides from you all the ugly details of creating a particular concrete type.

You will frequently create an empty vector to be filled in later, for example,

 Vector<double> y;
Note that this vector isn't just empty, it's null. Not only does it have no values assigned, it does not have a concrete type. An call a method on a null vector will result in an error. What you <it>can</it> do with a null vector is

Definition at line 63 of file PlayaVectorDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar>
Playa::Vector< Scalar >::Vector (  )  [inline]

Empty ctor

template<class Scalar>
Playa::Vector< Scalar >::Vector ( Playa::Handleable< VectorBase< Scalar > > *  rawPtr  )  [inline]

Construct a # Vector<Scalar> with a raw pointer to a # VectorBase<Scalar>

template<class Scalar>
Playa::Vector< Scalar >::Vector ( const Teuchos::RCP< VectorBase< Scalar > > &  smartPtr  )  [inline]

Construct a # Vector<Scalar> with a smart pointer to a # VectorBase<Scalar>

template<class Scalar>
template<int N>
Playa::Vector< Scalar >::Vector ( const LCN< Scalar, N > &  x  )  [inline]

Construct a vector from an N-term LC.

Definition at line 38 of file PlayaLinearCombinationImpl.hpp.


Member Function Documentation

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator= ( const LCN< Scalar, 1 > &  x  )  [inline]

Assign a one-term LC to this vector.

Definition at line 49 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator= ( const LCN< Scalar, 2 > &  x  )  [inline]

Assign a two-term LC to this vector.

Definition at line 83 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator= ( const LCN< Scalar, 3 > &  x  )  [inline]

Assign a three-term LC to this vector.

Definition at line 117 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
template<int N>
Vector< Scalar > & Playa::Vector< Scalar >::operator= ( const LCN< Scalar, N > &  x  )  [inline]

Assign an N-term LC to this vector.

Definition at line 158 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator+= ( const Vector< Scalar > &  other  )  [inline]

Add a vector into this vector

Definition at line 46 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator+= ( const LCN< Scalar, 1 > &  x  )  [inline]

Add a one-term LC into this vector

Definition at line 174 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator+= ( const LCN< Scalar, 2 > &  x  )  [inline]

Add a two-term LC into this vector

Definition at line 192 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
template<int N>
Vector< Scalar > & Playa::Vector< Scalar >::operator+= ( const LCN< Scalar, N > &  x  )  [inline]

Add an N-term LC into this vector

Definition at line 213 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator-= ( const Vector< Scalar > &  other  )  [inline]

Subtract a vector from this vector

Definition at line 55 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator-= ( const LCN< Scalar, 1 > &  x  )  [inline]

Subtract a one-term LC from this vector

Definition at line 229 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator-= ( const LCN< Scalar, 2 > &  x  )  [inline]

Subtract a two-term LC from this vector

Definition at line 247 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
template<int N>
Vector< Scalar > & Playa::Vector< Scalar >::operator-= ( const LCN< Scalar, N > &  x  )  [inline]

Subtract an N-term LC from this vector

Definition at line 269 of file PlayaLinearCombinationImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator*= ( const Scalar &  a  )  [inline]

Scale by a constant

Definition at line 63 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::operator/= ( const Scalar &  a  )  [inline]

Divide by a constant

Definition at line 70 of file PlayaVectorImpl.hpp.

template<class Scalar>
VectorSpace<Scalar> Playa::Vector< Scalar >::space (  )  const [inline]

My space.

Definition at line 128 of file PlayaVectorDecl.hpp.

template<class Scalar>
const MPIComm& Playa::Vector< Scalar >::comm (  )  const [inline]

My communicator.

Definition at line 132 of file PlayaVectorDecl.hpp.

template<class Scalar>
int Playa::Vector< Scalar >::dim (  )  const [inline]

My dimension.

Definition at line 136 of file PlayaVectorDecl.hpp.

template<class Scalar >
int Playa::Vector< Scalar >::numBlocks (  )  const [inline]

get number of blocks

Definition at line 78 of file PlayaVectorImpl.hpp.

template<class Scalar>
void Playa::Vector< Scalar >::setBlock ( int  i,
const Vector< Scalar > &  v 
) [inline]

set the i-th block

Definition at line 86 of file PlayaVectorImpl.hpp.

template<class Scalar >
const Vector< Scalar > & Playa::Vector< Scalar >::getBlock ( int  i  )  const [inline]

get the i-th block

Definition at line 98 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > Playa::Vector< Scalar >::getNonConstBlock ( int  i  )  [inline]

get the i-th block

Definition at line 111 of file PlayaVectorImpl.hpp.

template<class Scalar>
const Vector< Scalar > & Playa::Vector< Scalar >::getBlock ( const BlockIterator< Scalar > &  b  )  const [inline]

get the i-th block

Definition at line 126 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > Playa::Vector< Scalar >::getNonConstBlock ( const BlockIterator< Scalar > &  b  )  [inline]

get the i-th block

Definition at line 140 of file PlayaVectorImpl.hpp.

template<class Scalar >
ConstDataChunk< Scalar > Playa::Vector< Scalar >::nextConstChunk (  )  const [inline]

Get the next chunk of values for read-only access.

Definition at line 192 of file PlayaVectorImpl.hpp.

template<class Scalar >
NonConstDataChunk< Scalar > Playa::Vector< Scalar >::nextChunk (  )  [inline]

Get the next chunk of values for read-write access.

Definition at line 199 of file PlayaVectorImpl.hpp.

template<class Scalar >
bool Playa::Vector< Scalar >::hasMoreChunks (  )  const [inline]

Tell whether there are more chunks remaining to be accessed.

Definition at line 207 of file PlayaVectorImpl.hpp.

template<class Scalar >
void Playa::Vector< Scalar >::rewind (  )  const [inline]

Reset the data stream back to a state where all chunks are considered unread.

Definition at line 214 of file PlayaVectorImpl.hpp.

template<class Scalar >
const Scalar & Playa::Vector< Scalar >::operator[] ( int  localIndex  )  const [inline]

const bracket operator for read-only random access to local elements as specified by a flat index that runs from 0 to space().numLocalElements(). If the vector does not consist of a single contiguous data chunk, this might be slow (worst case would be O(N), if every element is stored in its own chunk of length 1).

Definition at line 799 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar & Playa::Vector< Scalar >::operator[] ( int  localIndex  )  [inline]

non-const bracket operator for read-write random access to local elements as specified by a flat index that runs from 0 to space().numLocalElements(). If the vector does not consist of a single contiguous data chunk, this might be slow (worst case would be O(N), if every element is stored in its own chunk of length 1).

Definition at line 837 of file PlayaVectorImpl.hpp.

template<class Scalar>
const Scalar & Playa::Vector< Scalar >::operator() ( const BlockIterator< Scalar > &  b,
int  localIndexWithinBlock 
) const [inline]

parentheses operator for read-only random access to local elements as specified by a block iterator and a flat index indicating the element's location within that block.

Definition at line 875 of file PlayaVectorImpl.hpp.

template<class Scalar>
Scalar & Playa::Vector< Scalar >::operator() ( const BlockIterator< Scalar > &  b,
int  localIndexWithinBlock 
) [inline]

parentheses operator for read-write random access to local elements as specified by a block iterator and a flat index indicating the element's location within that block.

Definition at line 885 of file PlayaVectorImpl.hpp.

template<class Scalar >
std::string Playa::Vector< Scalar >::description (  )  const [inline]

Return a short string description of the vector.

Reimplemented from Playa::Handle< VectorBase< Scalar > >.

Definition at line 290 of file PlayaVectorImpl.hpp.

template<class Scalar >
void Playa::Vector< Scalar >::print ( std::ostream &  os  )  const [inline]

Print the vector in some detail.

Reimplemented from Playa::Handle< VectorBase< Scalar > >.

Definition at line 224 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::scale ( const Scalar &  alpha  )  [inline]

Multiply this vector by a constant scalar factor.

 this = alpha * this;

Definition at line 549 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::update ( const Scalar &  alpha,
const Vector< Scalar > &  x,
const Scalar &  gamma = 1.0 
) [inline]

Add a scaled vector to this vector times a constant: $ this=\alpha x + \gamma \,this. $.

Definition at line 580 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::update ( const Scalar &  alpha,
const Vector< Scalar > &  x,
const Scalar &  beta,
const Vector< Scalar > &  y,
const Scalar &  gamma 
) [inline]

Add two scaled vectors to this vector times a constant: $ this=\alpha x + \beta y + \gamma \, this. $.

Definition at line 673 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::update ( const Scalar &  alpha,
const Vector< Scalar > &  x,
const Scalar &  beta,
const Vector< Scalar > &  y,
const Scalar &  gamma,
const Vector< Scalar > &  z,
const Scalar &  delta 
) [inline]

Add three scaled vectors to this vector times a constant: $ this=\alpha x + \beta y + \gamma x + \delta \, this. $.

Definition at line 686 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::acceptCopyOf ( const Vector< Scalar > &  x  )  [inline]

Copy the values of another vector into this vector.

 this = x

Definition at line 590 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > Playa::Vector< Scalar >::copy (  )  const [inline]

Create a new vector that is a copy of this vector.

Definition at line 600 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::selfDotStar ( const Vector< Scalar > &  other  )  [inline]

In-place element-by-element product (Matlab dot-star operator).

Definition at line 611 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > & Playa::Vector< Scalar >::selfDotSlash ( const Vector< Scalar > &  other  )  [inline]

In-place element-by-element division (Matlab dot-slash operator).

Definition at line 618 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > Playa::Vector< Scalar >::dotStar ( const Vector< Scalar > &  other  )  const [inline]

Element-by-element product (Matlab dot-star operator).

Definition at line 626 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > Playa::Vector< Scalar >::dotSlash ( const Vector< Scalar > &  other  )  const [inline]

Element-by-element division (Matlab dot-slash operator).

Definition at line 636 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > Playa::Vector< Scalar >::reciprocal (  )  const [inline]

Return element-by-element reciprocal as a new vector.

Definition at line 661 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > Playa::Vector< Scalar >::abs (  )  const [inline]

Return element-by-element absolute value as a new vector.

Definition at line 647 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > & Playa::Vector< Scalar >::selfReciprocal (  )  [inline]

Overwrite self with element-by-element reciprocal.

Definition at line 556 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > & Playa::Vector< Scalar >::selfAbs (  )  [inline]

Overwrite self with element-by-element absolute value.

Definition at line 564 of file PlayaVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > & Playa::Vector< Scalar >::randomize (  )  [inline]

Overwrite self with random values.

Definition at line 572 of file PlayaVectorImpl.hpp.

template<class Scalar>
void Playa::Vector< Scalar >::setToConstant ( const Scalar &  alpha  )  [inline]

Set all elements to a constant value.

Definition at line 774 of file PlayaVectorImpl.hpp.

template<class Scalar>
Scalar Playa::Vector< Scalar >::dot ( const Vector< Scalar > &  other  )  const [inline]

Take dot product with another vector.

Definition at line 703 of file PlayaVectorImpl.hpp.

template<class Scalar>
Scalar Playa::Vector< Scalar >::operator* ( const Vector< Scalar > &  other  )  const [inline]

Overloaded operator for dot product.

Definition at line 712 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar Playa::Vector< Scalar >::norm1 (  )  const [inline]

Compute the 1-norm of this vector.

Definition at line 723 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar Playa::Vector< Scalar >::norm2 (  )  const [inline]

Compute the 2-norm of this vector.

Definition at line 733 of file PlayaVectorImpl.hpp.

template<class Scalar>
Scalar Playa::Vector< Scalar >::norm2 ( const Vector< Scalar > &  weights  )  const [inline]

Compute the weighted 2-norm of this vector.

Definition at line 743 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar Playa::Vector< Scalar >::normInf (  )  const [inline]

Compute the infinity-norm of this vector.

Definition at line 754 of file PlayaVectorImpl.hpp.

template<class Scalar >
void Playa::Vector< Scalar >::zero (  )  [inline]

Set all elements to zero.

Definition at line 764 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar Playa::Vector< Scalar >::max (  )  const [inline]

Return the max element.

Definition at line 782 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar Playa::Vector< Scalar >::min (  )  const [inline]

Return the min element.

Definition at line 790 of file PlayaVectorImpl.hpp.

template<class Scalar>
static RCP<Time>& Playa::Vector< Scalar >::opTimer (  )  [inline, static]

Get a stopwtach for timing vector operations.

Definition at line 375 of file PlayaVectorDecl.hpp.

template<class Scalar >
template<class UF >
Vector< Scalar > & Playa::Vector< Scalar >::applyUnaryFunctor ( const UF &  functor  )  [inline]

Apply a unary functor, overwriting this vector with the results.

Definition at line 307 of file PlayaVectorImpl.hpp.

template<class Scalar>
template<class UF >
Vector< Scalar > & Playa::Vector< Scalar >::acceptUnaryFunctor ( const UF &  functor,
const Vector< Scalar > &  other 
) [inline]

Apply a unary functor to another vector, writing the results into this vector. The other vector is unchanged.

Definition at line 341 of file PlayaVectorImpl.hpp.

template<class Scalar>
template<class VF >
Vector< Scalar > & Playa::Vector< Scalar >::applyBinaryFunctor ( const VF &  functor,
const Vector< Scalar > &  other 
) [inline]

Apply a binary functor to this vector and another vector, writing the results into this vector. The other vector is unchanged.

Definition at line 385 of file PlayaVectorImpl.hpp.

template<class Scalar>
template<class VF >
Vector< Scalar > & Playa::Vector< Scalar >::applyTernaryFunctor ( const VF &  functor,
const Vector< Scalar > &  x,
const Vector< Scalar > &  y 
) [inline]

Apply a ternary functor to this vector and two other vectors, writing the results into this vector. The other vectors are unchanged.

Definition at line 428 of file PlayaVectorImpl.hpp.

template<class Scalar >
template<class RF >
PlayaFunctors::VectorFunctorTraits< Scalar, RF >::ReturnType Playa::Vector< Scalar >::applyUnaryReductionFunctor ( const RF &  functor  )  const [inline]

Apply a unary reduction functor.

Definition at line 482 of file PlayaVectorImpl.hpp.

template<class Scalar>
template<class RF >
PlayaFunctors::VectorFunctorTraits< Scalar, RF >::ReturnType Playa::Vector< Scalar >::applyBinaryReductionFunctor ( const RF &  functor,
const Vector< Scalar > &  other 
) const [inline]

Apply a binary reduction functor.

Definition at line 512 of file PlayaVectorImpl.hpp.

template<class Scalar>
const Vector< Scalar > & Playa::Vector< Scalar >::getBlock ( const std::deque< int > &  iter  )  const [inline, protected]

get a subblock as specified by a deque of indices

Definition at line 153 of file PlayaVectorImpl.hpp.

template<class Scalar>
Vector< Scalar > Playa::Vector< Scalar >::getNonConstBlock ( const std::deque< int > &  iter  )  [inline, protected]

get a non-const subblock as specified by a deque of indices

Definition at line 173 of file PlayaVectorImpl.hpp.


Friends And Related Function Documentation

template<class Scalar >
Vector< Scalar > blockVector ( const Vector< Scalar > &  v1  )  [related]

Definition at line 83 of file PlayaDefaultBlockVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > blockVector ( const Vector< Scalar > &  v1,
const Vector< Scalar > &  v2 
) [related]

Definition at line 94 of file PlayaDefaultBlockVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > blockVector ( const Vector< Scalar > &  v1,
const Vector< Scalar > &  v2,
const Vector< Scalar > &  v3 
) [related]

Definition at line 106 of file PlayaDefaultBlockVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > blockVector ( const Vector< Scalar > &  v1,
const Vector< Scalar > &  v2,
const Vector< Scalar > &  v3,
const Vector< Scalar > &  v4 
) [related]

Definition at line 120 of file PlayaDefaultBlockVectorImpl.hpp.

template<class Scalar >
Vector< Scalar > blockVector ( const Array< Vector< Scalar > > &  x  )  [related]

Definition at line 136 of file PlayaDefaultBlockVectorImpl.hpp.

template<class Scalar >
LoadableVector< Scalar > * loadable ( Vector< Scalar >  vec  )  [related]

Dynamic cast a Vector's underlying pointer to a LoadableVector.

Definition at line 918 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar * dataPtr ( Vector< Scalar >  vec  )  [related]

Return a pointer to the beginning of the vector's single data chunk. If the underlying VectorBase is not a SingleChunkVector an exception will be thrown.

Definition at line 895 of file PlayaVectorImpl.hpp.

template<class Scalar >
const Scalar * dataPtr ( const Vector< Scalar > &  vec  )  [related]

Return a pointer to the beginning of the vector's single data chunk. If the underlying VectorBase is not a SingleChunkVector an exception will be thrown.

Definition at line 907 of file PlayaVectorImpl.hpp.

template<class Scalar >
Scalar minloc ( const Vector< Scalar > &  x,
int &  gni 
) [related]

Return minimum element and its location.

Definition at line 34 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar maxloc ( const Vector< Scalar > &  x,
int &  gni 
) [related]

Return maximum element and its location.

Definition at line 41 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar minlocWithBound ( const Scalar &  lowerBound,
const Vector< Scalar > &  x,
int &  gni 
) [related]

Return minimum element greater than a specified bound, and its location.

Definition at line 48 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar maxlocWithBound ( const Scalar &  upperBound,
const Vector< Scalar > &  x,
int &  gni 
) [related]

Return maximum element less than a specified bound, and its location.

Definition at line 59 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar norm2 ( const Vector< Scalar > &  x  )  [related]

Compute the Euclidean norm of a vector.

Definition at line 95 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar norm1 ( const Vector< Scalar > &  x  )  [related]

Compute the one-norm of a vector.

Definition at line 99 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar normInf ( const Vector< Scalar > &  x  )  [related]

Compute the infinity norm of a vector.

Definition at line 103 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar norm2Dist ( const Vector< Scalar > &  x,
const Vector< Scalar > &  y 
) [related]

Compute the Euclidean distance between two vectors.

Definition at line 71 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar norm1Dist ( const Vector< Scalar > &  x,
const Vector< Scalar > &  y 
) [related]

Compute the one-norm distance between two vectors.

Definition at line 79 of file PlayaVectorOpsImpl.hpp.

template<class Scalar >
Scalar normInfDist ( const Vector< Scalar > &  x,
const Vector< Scalar > &  y 
) [related]

Compute the infinity-norm distance between two vectors.

Definition at line 87 of file PlayaVectorOpsImpl.hpp.


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

doxygen