$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: David Abrahams (dave_at_[hidden])
Date: 2005-03-10 09:12:37
Jason Hise <chaos_at_[hidden]> writes:
> I saw that boost already has a pretty impressive linear algebra suite, 
> with many specialized types of matrices.  Though these are all very 
> useful, I was wondering if there might be room for one more type of 
> matrix: one which makes each size of matrix a unique type  (I did not 
> see such a matrix in the docs, but please correct me if I overlooked it 
> and it does already exist).  Using such matrices, it would be possible 
> to validate the legality of certain operations at compile time (for 
> instance, only matrices of compatible sizes can be multiplied).  A very 
> stripped down version of the class might look like this:
>
> template < typename T, unsigned int X, unsigned int Y >
> class matrix
> {
>    // maintains Y rows, each containing X Ts internally
> };
>
> template < typename T, unsigned int X, unsigned int Y, unsigned int Z >
> matrix < T, Z, Y > operator * ( const Matrix < T, X, Y > & lhs, const 
> Matrix < T, Z, X > & rhs );
> // multiplication defined only for compatible matrices
>
> Is there any interest in such a class?
The MTL project will certainly include a fixed-size matrix.
http://www.boost-consulting.com/projects/mtl
-- Dave Abrahams Boost Consulting www.boost-consulting.com