Boost logo

Glas :

Re: [glas] vector space, banach space and hilbert space concept

From: Karl Meerbergen (Karl.Meerbergen_at_[hidden])
Date: 2005-03-25 14:52:32

On Friday 25 March 2005 19:21, Michael A Heroux wrote:
> Karl,
> Thanks for your reply. Here are some responses.

I answer your other comments later. I agree with many of them.

Which concepts would you want to remove from the proposal?

> > This is very useful information. We have similar objects in
> > our code. I wonder whether vectorspace is the correct name
> > for this concept. Should it not be something related to
> > dimensions or sizes? For example, VectorSize,
> > VectorSpaceSize. I do not want to use the name dimension,
> > because this corresponds to the dimension of the vectorspace
> > which is not necessarily the same as the size of a vector/matrix.
> Perhaps I am wrong, but I have always considered dimensionality of a vector
> space (at least a finite dimensional vector space, which is the only kind
> we can handle with today's memory limits :>) the same as the length of a
> member vector. N-dimensional Euclidean space is the most common example of
> a vector space. It seems reasonable to me that 3-dimensional Euclidean
> space is different that 4-dimensional Euclidean space. If this is true
> then I think it is also reasonable to have a two vector spaces associated
> with a linear operator. For example, a 3-by-4 matrix would have the
> previous two spaces. However, maybe I am missing your point.
> Best regards,
> Mike

The space of NxN diagonal matrices is a vector space of dimension N, not N^2.
A similar argument holds for sparse vectors with a fixed sparse structure.
That is the subtle difference between dimension and size. (i.e. dimension is
for VectorSpace, size for Vector and Matrix)

Do you want to restrict the VectorSpace concept to Vector?

Suppose we have an implementation of conjugate gradients that uses objects
that satisfy a HilbertSpace concept. In this case, we can use this code as a
multiple right-hand side linear solver (perhaps not the most efficient one,
ok), by passing matrices as VectorSpace argument.

Also, you assume that a matrix is a transformation from the one space to the
other. That is a very strict interpretation of a matrix, but useful for
defining a MatrixVectorProduct concept, and a MatrixMatrixProduct concept.
So, let us keep that in mind.

Recall that I was not very enthousiastic for using notions from algebra, such
as VectorSpace, HilbertSpace, Group etc, because vectors and matrices have a
richer structure. I wanted to use linear algebra notions, because these are
application independent. I have changed my mind because this was not what the
mailing list wanted. So, it appears that this is a requirement, although
never said explicitly. And if we want to use algebraic concepts, I suggest we
are correct and complete. And ... I appear to like it: it is very rigorous.