#include <lac/sparsematrix.h>
-#include <lac/fullmatrix.h>
-#include <vector.h>
+#include <lac/forward-declarations.h>
+
+#include <vector>
+
+
+
/**
* Block sparse matrix.
* The block matrix assumes the matrix consisting of blocks on
* the diagonal. These diagonal blocks and the elements
* (of arbitray structure) below the
- * diagonal blocks are used in the #precondition_BlockSOR#.
+ * diagonal blocks are used in the #precondition_BlockSOR# function.
*
* This block matrix structure is given e.g. for the DG method
* for the transport equation and a downstream numbering.
* matrix having blocks each of the same block size. Varying
* block sizes within the matrix must still be implemented if needed.
*
- * The first template parameter denotes the type of the matrix, the second
- * denotes the type of data in which the inverse diagonal block
+ * The first template parameter denotes the type of number representation in
+ * the sparse matrix, the second denotes the type of number representation in
+ * which the inverse diagonal block
* matrices are stored by #invert_diagblocks()#.
*
* @author Ralf Hartmann, 1999
//#include <lac/vector.h>
-template <typename number, typename blocknumber>
-bool datatype_compatible ();
-
// explicit instantiations for "float" BlockSparseMatrix
template class BlockSparseMatrix<float, float>;
Vector<double> &, const Vector<double> &, float) const;
// the instantiation for class BlockSparseMatrix<float, double> is skipped
-// because it does not make sence to have inverse block matrices with
+// because it does not make sense to have inverse block matrices with
// higher precision than the matrix itself
// explicit instantiations for "double" BlockSparseMatrix