46#ifdef HAVE_EPETRA_TEUCHOS
53 Epetra_View_(Source.Epetra_View_),
54 Copy_Created_(Source.Copy_Created_) {
55 Oski_View_ = oski_CopyVecView(Source.
Oski_View_);
60 Epetra_View_(&Source),
61 Copy_Created_(false) {
67 Aptr =
new double*[1];
69 if(Source.ExtractView(Aptr, LDAptr))
70 std::cerr <<
"Extract view failed\n";
72 Oski_View_ = oski_CreateMultiVecView(*Aptr, Source.MyLength(), Source.NumVectors(), LAYOUT_COLMAJ, *LDAptr);
76 LDA = Source.MyLength();
77 A = new double[LDA*Source.NumVectors()];
78 if(Source.ExtractCopy(A, LDA))
79 std::cerr <<
"Extract copy failed\n";
81 Oski_View_ = oski_CreateMultiVecView(A, Source.MyLength(), Source.NumVectors(), LAYOUT_COLMAJ, LDA);
89 std::cerr <<
"Vector destroy failed\n";
Epetra_MultiVector: A class for constructing and using dense multi-vectors, vectors and matrices in p...
int NumVectors() const
Returns the number of vectors in the multi-vector.
bool ConstantStride() const
Returns true if this multi-vector has constant stride between vectors.
Epetra_OskiMultiVector: A class for constructing and using dense Oski multi-vectors on a single proce...
bool Copy_Created() const
Returns true if a deep copy of the multi-vector was created by the constructor.
virtual ~Epetra_OskiMultiVector()
Destructor.
Epetra_OskiMultiVector(const Epetra_OskiMultiVector &Source)
Copy constructor.
oski_vecview_t Oski_View() const
Returns the Oski portion of the Multi-Vector.
Epetra_OskiMultiVector & operator=(const Epetra_OskiMultiVector &Source)
Sets this equal to Source.
oski_vecview_t Oski_View_
const Epetra_MultiVector * Epetra_View_
const Epetra_MultiVector * Epetra_View() const
Returns the Epetra portion of the Multi-Vector.