
joel wrote:
Missed this part. NT2 has the following concepts as matrix settings.
storage mode : conventional (aka dense) and packed (as LAPACK packed) shape : full diagonal, tridiagonal, upper/lower_triangular etc... Note that you can have a diagonal matrix with no packed representation. memory allocation : dynamic or static, dynamic use NRC allocation at runtime, static use NRC allcoation of boost::array dimension : 2D,...,nD
Packed Hessenberg? (vector+triangular, or different?) How are banded matrices dealt with?
Other settings: indexing : numerical value of base idnex. 1 by default to mimic FORTRAN can be set to any signed value (0 = C indexing)
All those things are usable as policy types and are checked for non-sensical combination at compile-time.
We pondered adding mathematical traits but we foudn no way to enforce them properly without sacrifying performances.
I would say these are not part of a matrix, rather of the expression? Like unitary and orthogonal? Cheers, Rutger