template<class R> struct MatrStr<R>;

Structured matrices are two-dimensional arrays which can be represented by values, where is the size of the matrix. This class provides classical arithmetic operations such as addition, substraction, multiplication by scalars, vectors, matrices . . . The product of two structured matrices is usually not a structured matrices (at least of the same type) and therefore is not implemented. The product of a structured matrices by a vector can usually be performed in almost linear time, ie. in (or according to the field), using FFT.

An implementation of such data-structure is available as

template<class C> linalg::toeplitz<C>;

**See also:**`synaps/linalg/toeplitz.h`

An implementation of such data-structure is available as

template<class C> linalg::hankel<C>;

**See also:**`synaps/linalg/hankel.h`

#include <synaps/linalg/MatrStr.H> #include <synaps/linalg/hankel.H> typedef MatrStr<linalg::hankel<double> > mstr_t; int main(int argc, char** argv) { double v[]={1,2,1,1,3,4,2,2,5,5,5,5,-2, 1,2,3,1, -2.8,-2.4,1,.2,5.8}; mstr_t A(4,4,v); std::cout << A << std::endl;

}

**See also:**`synaps/linalg/MatrStr.h`