<ol>
- <li> <p>Fixed: The <code
- class="class">FullMatrix::print</code> would yield a link error
+ <li> <p>Improved: <code class="class">PointerMatrixAux</code> now has a
+ default constructor and a function for setting the <code
+ class="class">VectorMemory</code> object.
+ <br>
+ (GK 2006/06/14)
+ </p>
+
+ <li> <p>Fixed: <code
+ class="member">FullMatrix::print</code> would yield a link error
when used with <code>std::ofstream</code> since an explicit
instantiation was missing. The function has now been moved to
the header file and made inline so that it is always visible,
* If <tt>M</tt> is zero, no
* matrix is stored.
*/
- PointerMatrixAux (VectorMemory<VECTOR>* mem,
+ PointerMatrixAux (VectorMemory<VECTOR>* mem = 0,
const MATRIX* M=0);
/**
* empty.
*/
bool empty () const;
+
+ /**
+ * Assign a new VectorMemory
+ object for getting auxiliary vectors.
+ */
+ void set_memory(VectorMemory<VECTOR>* mem);
/**
* Assign a new matrix
}
+template<class MATRIX, class VECTOR>
+inline void
+PointerMatrixAux<MATRIX, VECTOR>::set_memory(VectorMemory<VECTOR>* M)
+{
+ mem = M;
+}
+
+
template<class MATRIX, class VECTOR>
inline bool
PointerMatrixAux<MATRIX, VECTOR>::empty () const
PointerMatrixAux<MATRIX, VECTOR>::vmult (VECTOR& dst,
const VECTOR& src) const
{
+ Assert (mem != 0, ExcNotInitialized());
Assert (m != 0, ExcNotInitialized());
m->vmult (dst, src);
}
PointerMatrixAux<MATRIX, VECTOR>::Tvmult (VECTOR& dst,
const VECTOR& src) const
{
+ Assert (mem != 0, ExcNotInitialized());
Assert (m != 0, ExcNotInitialized());
m->Tvmult (dst, src);
}
PointerMatrixAux<MATRIX, VECTOR>::vmult_add (VECTOR& dst,
const VECTOR& src) const
{
+ Assert (mem != 0, ExcNotInitialized());
Assert (m != 0, ExcNotInitialized());
VECTOR* v = mem->alloc();
v->reinit(dst);
PointerMatrixAux<MATRIX, VECTOR>::Tvmult_add (VECTOR& dst,
const VECTOR& src) const
{
+ Assert (mem != 0, ExcNotInitialized());
Assert (m != 0, ExcNotInitialized());
VECTOR* v = mem->alloc();
v->reinit(dst);