Kokkos::MultiVector< OrdinalType, ScalarType > Class Template Reference

Kokkos::MultiVector: Kokkos multivector base class, used by Kokkos operator classes. More...

#include <Kokkos_MultiVector.hpp>

Inheritance diagram for Kokkos::MultiVector< OrdinalType, ScalarType >:

[legend]
List of all members.

Public Member Functions

Constructors/Destructor.
virtual ~MultiVector ()
 MultiVector Destructor.
Multivector entry access methods.
virtual ScalarType ** getValues () const =0
 Returns an array of pointers such that the ith pointer points to an array of values in the ith column of the multivector.
virtual ScalarType * getValues (OrdinalType i) const =0
 Returns a pointer to an array of values in the ith column of the multivector.
MultiVector Attribute access methods.
virtual OrdinalType getNumRows () const =0
 Number of rows.
virtual OrdinalType getNumCols () const =0
 Number of columns.
virtual bool getIsStrided () const =0
 Indicates whether or not array is strided.
virtual OrdinalType getRowInc () const =0
 Increment between entries in a row of the multivector, normally = numRows().
virtual OrdinalType getColInc () const =0
 Increment between entries in a column of the multivector, normally = 1.

Detailed Description

template<typename OrdinalType, typename ScalarType>
class Kokkos::MultiVector< OrdinalType, ScalarType >

Kokkos::MultiVector: Kokkos multivector base class, used by Kokkos operator classes.

The Kokkos::MultiVector specifies the interface that any multivector interfacing to the Kokkos Operators classes must implement.

At this time, the primary function provided by Kokkos::MultiVector is access to multivector entries. Two basic categories of data structures are supported:

  1. MultiVector is described by an array of pointers: In this situation, the ith entry of this array of pointers is the starting address of a contiguous array of values for the ith vector in the multivector. The storage mode will be assumed if the getIsStrided() method returns false.
  2. MultiVector is a regular strided two-dimensional array of values: In this situation, the increment between elements in the row and column dimensions is specified by the getRowInc() and getColInc() methods. This is a very general mechanism for describing strided access. Typical situations include: However, this mechanism also allows extraction of array subsections, real or imaginary parts from complex-valued arrays.

    This storage mode will be assumed if getIsStrided() returns true. The base address for the 2D array will be obtain by call getValues() with the argument equal to 0.


Member Function Documentation

template<typename OrdinalType, typename ScalarType>
virtual ScalarType* Kokkos::MultiVector< OrdinalType, ScalarType >::getValues OrdinalType  i  )  const [pure virtual]
 

Returns a pointer to an array of values in the ith column of the multivector.

Extract a pointer to the values in the ith column of the multivector. Note that the values are not copied by this method. Memory allocation is handled by the multivector object itself. Also, if the getIsStrided() method returns true, then the getColInc() should be used to access values in the ith column of the multivector, especially if getColInc() != 1.

Parameters:
i (In) The column that should be returned.

Implemented in Kokkos::DenseMultiVector< OrdinalType, ScalarType >.

template<typename OrdinalType, typename ScalarType>
virtual ScalarType** Kokkos::MultiVector< OrdinalType, ScalarType >::getValues  )  const [pure virtual]
 

Returns an array of pointers such that the ith pointer points to an array of values in the ith column of the multivector.

Extract an array of pointers such that the ith pointer points to the values in the ith column of the multivector. Note that the values are not copied by this method. Memory allocation is handled by the multivector object itself.

Implemented in Kokkos::DenseMultiVector< OrdinalType, ScalarType >.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:39:56 2008 for Kokkos by doxygen 1.3.9.1