Template the following classes (with hardcoded "double" in the rest of the code):
Template functions so that they can support both double and float:
Extend classes to "float" - OMM:
Extend functions to "float" - OMM:
Write test functions:
Requires addition of the corresponding float functions from BLAS/LAPACK:
Notes:
Prioritize getting a working single-precision implementation with a hierarchical LU test-case. Other test cases can be added later and the limitations described below should only be addressed if there is an actual need for their functionality.
Initialization from Kernel-Functions is still considerably restricted. The following limitations apply:
- Geometry information can only be
- Random number generators can only be
- Seed for the random number generators can not be set
- Admissibility can not be passed as a function
- Only pre-defined kernel-functions are available
There are also some shortcomings in arithmetics:
- Addition operator += is defined for all matrix types while operator + is only defined for dense
- Subtraction operator -= is not defined
- Multiplication (Scalar) is only defined for double (restrict? allow for mixed precision?)
- Multiplication (Scalar) operator * is not defined
Investigate how a MatrixProxy is conerted into a Matrix (i.e. is that template safe?)
Automatic template deduction does not work for return type, in some cases old C style might be better (include return type as argument)
Shall we change the return value of functions that return a double to float?
Template the following classes (with hardcoded "double" in the rest of the code):
Template functions so that they can support both double and float:
Extend classes to "float" - OMM:
Extend functions to "float" - OMM:
Write test functions:
Requires addition of the corresponding float functions from BLAS/LAPACK:
Notes:
Prioritize getting a working single-precision implementation with a hierarchical LU test-case. Other test cases can be added later and the limitations described below should only be addressed if there is an actual need for their functionality.
Initialization from Kernel-Functions is still considerably restricted. The following limitations apply:
There are also some shortcomings in arithmetics:
Investigate how a MatrixProxy is conerted into a Matrix (i.e. is that template safe?)
Automatic template deduction does not work for return type, in some cases old C style might be better (include return type as argument)
Shall we change the return value of functions that return a double to float?