Playa::Vector< Scalar > Class Template Reference

Inheritance diagram for Playa::Vector< Scalar >:

Playa::Handle< VectorBase< Scalar > >

List of all members.

Public Member Functions

Constructors, Destructors, and Assignment Operators


 Vector ()
 Vector (Handleable< VectorBase< Scalar > > *rawPtr)
 Vector (const RefCountPtr< 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 ( 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 RefCountPtr< 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.

References Playa::LCN< Scalar, N >::eval(), and Playa::Handle< VectorBase< Scalar > >::ptr().


Member Function Documentation

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.

References Playa::Vector< Scalar >::acceptCopyOf(), Playa::Vector< Scalar >::selfAbs(), and Playa::Vector< Scalar >::space().

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

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

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

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

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

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

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

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

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

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

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

My dimension.

Definition at line 136 of file PlayaVectorDecl.hpp.

Referenced by Playa::Vector< Scalar >::description().

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

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.

References Playa::Vector< Scalar >::acceptCopyOf(), Playa::Vector< Scalar >::selfDotSlash(), and Playa::Vector< Scalar >::space().

Referenced by Playa::VectorTester< Scalar >::dotSlashTest().

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

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>
const Vector< Scalar > & Playa::Vector< Scalar >::getBlock ( const BlockIterator< Scalar > &  b  )  const [inline]

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

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.

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

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

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

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

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

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

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

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

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.

References Playa::Vector< Scalar >::applyBinaryReductionFunctor(), and Playa::Vector< Scalar >::comm().

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

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

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

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.

References Playa::Vector< Scalar >::getNonConstBlock().

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.

References Playa::Vector< Scalar >::getBlock().

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.

References PLAYA_CHECK_SPACES, Playa::Handle< VectorBase< Scalar > >::ptr(), and Playa::Vector< Scalar >::space().

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.

References Playa::Vector< Scalar >::scale().

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.

References Playa::LCN< Scalar, N >::eval().

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

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

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.

References Playa::Vector< Scalar >::update().

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.

References Playa::LCN< Scalar, N >::eval().

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

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

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.

References Playa::Vector< Scalar >::update().

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.

References Playa::Vector< Scalar >::scale().

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

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

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

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

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.

References Playa::SingleChunkVector< Scalar >::chunkSize(), Playa::SingleChunkVector< Scalar >::dataPtr(), Playa::Vector< Scalar >::hasMoreChunks(), Playa::Vector< Scalar >::nextChunk(), Playa::Debug::on, PLAYA_BOUNDSCHECK, Playa::Handle< VectorBase< Scalar > >::ptr(), Playa::NonConstDataChunk< Scalar >::size(), and Playa::NonConstDataChunk< Scalar >::values().

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.

References Playa::SingleChunkVector< Scalar >::chunkSize(), Playa::SingleChunkVector< Scalar >::dataPtr(), Playa::Vector< Scalar >::hasMoreChunks(), Playa::Vector< Scalar >::nextConstChunk(), Playa::Debug::on, PLAYA_BOUNDSCHECK, Playa::Handle< VectorBase< Scalar > >::ptr(), Playa::ConstDataChunk< Scalar >::size(), and Playa::ConstDataChunk< Scalar >::values().

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

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

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

Overwrite self with random values.

Definition at line 572 of file PlayaVectorImpl.hpp.

References Playa::Vector< Scalar >::applyUnaryFunctor().

Referenced by Playa::TesterBase< Scalar >::randomizeVec().

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.

References Playa::Vector< Scalar >::acceptCopyOf(), Playa::Vector< Scalar >::selfReciprocal(), and Playa::Vector< Scalar >::space().

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

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

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.

References Playa::Vector< Scalar >::applyUnaryFunctor().

Referenced by Playa::Vector< Scalar >::abs(), and NOX::NOXPlaya::Vector::abs().

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.

References Playa::Vector< Scalar >::applyBinaryFunctor().

Referenced by Playa::Vector< Scalar >::dotSlash().

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.

References Playa::Vector< Scalar >::applyBinaryFunctor().

Referenced by Playa::Vector< Scalar >::dotStar(), and NOX::NOXPlaya::Vector::scale().

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.

References Playa::Vector< Scalar >::applyUnaryFunctor().

Referenced by Playa::Vector< Scalar >::reciprocal(), and NOX::NOXPlaya::Vector::reciprocal().

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

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

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

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.

References Playa::Handle< VectorBase< Scalar > >::ptr().

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.

References Playa::Handle< VectorBase< Scalar > >::ptr().

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

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


Friends And Related Function Documentation

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

Definition at line 136 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 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 
) [related]

Definition at line 94 of file PlayaDefaultBlockVectorImpl.hpp.

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

Definition at line 83 of file PlayaDefaultBlockVectorImpl.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 * 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 >
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 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 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 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 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 norm1 ( const Vector< Scalar > &  x  )  [related]

Compute the one-norm of a vector.

Definition at line 99 of file PlayaVectorOpsImpl.hpp.

References Playa::Vector< Scalar >::norm1().

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 norm2 ( const Vector< Scalar > &  x  )  [related]

Compute the Euclidean norm of a vector.

Definition at line 95 of file PlayaVectorOpsImpl.hpp.

References Playa::Vector< Scalar >::norm2().

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 normInf ( const Vector< Scalar > &  x  )  [related]

Compute the infinity norm of a vector.

Definition at line 103 of file PlayaVectorOpsImpl.hpp.

References Playa::Vector< Scalar >::normInf().

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.

Site Contact