Boost logo

Glas :

Re: [glas] norms and inner products for vectors of matrices

From: Karl Meerbergen (Karl.Meerbergen_at_[hidden])
Date: 2006-01-09 11:22:27


I suggest we first agree what we mean by vector< matrix<T> > ? Why do we
need it? What do we want to use it for?

I do not interpret vector<matrix<T> > as a matrix, but a vector with
matrix<T> as value_type.
Strictly algebraically speaking, vector<matrix<T> > is an unusual
concept, so I would avoid its use if possible.

One possibility is to consider vector<matrix> as a matrix, but which is
its size? Suppose v[0] is a 2x3 matrix and v[1] a 4x1 matrix, which is
the number of columns of v?

An argument in favour of vector<matrix> is the possibility for blocking
in algorithms. But I think there is a better way than vector<matrix> for
doing this.

Perhaps we could introduce the notion of grid, where a matrix (or a
vector) can be mapped onto this grid for performing blocking operations.
For example, a matrix mapped onto a (1x10) grid still is a matrix and
not a vector<matrix>. The algorithms use the grid for computational
purposes or for accessing the data. To the outside world, the matrix
behaves like a matrix, while the algorithmic internals use the blocking
information.

The grid_type could be a template argument of vector and matrix.

Karl

Andrew Lumsdaine wrote:

>I think the definition of the norm for a vector of matrices depends
>on what is meant mathematically by a vector of matrices. If the
>vector of matrices is a block row (or block column) sliced out of a
>block matrix, then the definitions shown would not be the expected
>norms for that portion of the matrix without the blocking. And I
>think, at least in some cases, one would want those norms to be the
>same.
>
>
>