
Rutger ter Borg wrote:
in the second case you say to use the upper triangular part, and make that pos def. in my work for writing a python translator from LAPACK's Fortran source base to C++ bindings code, I've come across the specializations available in LAPACK, that might give a clue for an exhaustive list and write down a good set of orthogonal concepts (e.g., storage traits, structure traits, math properties, etc.).
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 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. -- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35