10#ifndef THYRA_DEFAULT_MULTI_VECTOR_PRODUCT_VECTOR_SPACE_DEF_HPP 
   11#define THYRA_DEFAULT_MULTI_VECTOR_PRODUCT_VECTOR_SPACE_DEF_HPP 
   14#include "Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp" 
   15#include "Thyra_DefaultMultiVectorProductVector.hpp" 
   41  numColumns_ = numColumns;
 
   42  defaultProdVecSpc_ = productVectorSpace(space,numColumns);
 
 
   82    return numColumns_ * space_->dim();
 
 
   94  if ( multiVecProdVecSpc != 0 ) {
 
   96      ( numColumns_ == multiVecProdVecSpc->numColumns_ )
 
   98      ( space_->isCompatible(*multiVecProdVecSpc->space_) )
 
 
  105template<
class Scalar>
 
  109  return multiVectorProductVector<Scalar>(
 
 
  115template<
class Scalar>
 
  121  return defaultProdVecSpc_->scalarProd(x_in,y_in);
 
 
  126template<
class Scalar>
 
  133  defaultProdVecSpc_->scalarProds(X_in, Y_in, scalarProds_out);
 
 
  138template<
class Scalar>
 
  143  return defaultProdVecSpc_->hasInCoreView(rng_in,viewType,strideType);
 
 
  146template<
class Scalar>
 
  150  if (!is_null(space_))
 
  151    return space_->smallVecSpcFcty();
 
 
  155template<
class Scalar>
 
  165template<
class Scalar>
 
  174  mvpvs->numColumns_ = numColumns_;
 
  175  mvpvs->space_ = space_;
 
  176  mvpvs->defaultProdVecSpc_ = defaultProdVecSpc_;
 
 
  184template<
class Scalar>
 
  187  std::ostringstream oss;
 
  190    << 
"dim="<<this->dim()
 
  191    << 
", numBlocks="<<numColumns_
 
 
  197template<
class Scalar>
 
  211      *out << this->description() << std::endl;
 
  218        << this->description() << std::endl;
 
  219      if (nonnull(space_)) {
 
  222          <<  
"Constituent vector space 'space' is the same for all spaces V[0],V[1],,,V[numBlocks-1]:\n";
 
  224        *out << 
"space = " << Teuchos::describe(*space_,verbLevel);
 
 
virtual std::string description() const
 
Standard concrete implementation of a product vector space that creates product vectors fromed implic...
 
RCP< const VectorSpaceBase< Scalar > > clone() const
Clones the object as promised.
 
DefaultMultiVectorProductVectorSpace()
Construct to an uninitialized state.
 
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
Returns a DefaultColumnwiseMultiVector object.
 
RCP< const VectorSpaceFactoryBase< Scalar > > smallVecSpcFcty() const
Returns getBlock(0)->smallVecSpcFcty().
 
void initialize(const RCP< const VectorSpaceBase< Scalar > > &space, const int numColumns)
Initialize with a list of constituent vector spaces.
 
bool isCompatible(const VectorSpaceBase< Scalar > &vecSpc) const
 
std::string description() const
Prints just the name DefaultMultiVectorProductVectorSpace along with the overall dimension and the nu...
 
void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
Returns the sum of the scalar products of each of the columns of the constituent multi-vectors.
 
RCP< VectorBase< Scalar > > createMember() const
Returns a DefaultMultiVectorProductVector object.
 
bool hasInCoreView(const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
Returns true if all of the constituent vector spaces return true.
 
Scalar scalarProd(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
Returns the sum of the scalar products of the constituent vectors.
 
void uninitialize(RCP< const VectorSpaceBase< Scalar > > *space=0, int *numColumns=0)
Uninitialize.
 
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
Prints the details about the constituent vector space.
 
RCP< const VectorSpaceBase< Scalar > > getBlock(const int k) const
 
Interface for a collection of column vectors called a multi-vector.
 
Abstract interface for finite-dimensional dense vectors.
 
Abstract interface for objects that represent a space for vectors.
 
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
 
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
 
EStrideType
Determine if data is unit stride or non-unit stride.
 
EViewType
Determines if a view is a direct view of data or a detached copy of data.
 
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
 
T_To & dyn_cast(T_From &from)
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)