Glas :Re: [glas] vector space, banach space and hilbert space concepts |
From: Karl Meerbergen (Karl.Meerbergen_at_[hidden])
Date: 2005-03-29 10:32:56
Mike,
I suggest to keep the large number of concepts and merge them if possible. If it appears that values always match the concept field, it does not make sense to have a group concept. However, if we need a group concept, it makes sense to have AdditiveGroup and MultiplicativeGroup since the operations are different, i.e. operator+() and operator*(). If the concepts become too complicated, we should simplify, merge or remove some.
I also believe it is not a good idea to have constructors that use size or dimensions in the VectorSpace concept. A matrix row also satisfies the VectorSpace concept if the underlying matrix does, but does not allow creation from dimensions.
I'd rather develop a concept that deals with the creation of objects using dimensional or size information, e.g. DimensionConstructible, which is orthogonal to the VectorSpace, Group, etc concepts. The latter merely describe mathematical properties, while the former describes the construction of a new vector or matrix from its dimensional data. This could be the matrix size, a fixed sparse structure, data about how to distribute the data over a network, etc.
For example, an iterative method that does not require the creation of new vectors (or matrices), may require the objects to be models of HilbertSpace. A method as BiCGStab needs auxiliary vectors, for which the creation of new vectors (or matrices) is needed. Such vectors should be models of DimensionConstructible and HilbertSpace.
I have modified the concept proposal to this idea and wonder whether this fits better your ideas about the VectorSpace concept. I think the name vectorSpace should be reserved for the algebraic structure and its operations.
It is available on www.freefield.easynet.be/glas/glas.tar.gz
I have been thinking about your suggestion of making a list of requirements. At this stage, the requirements in the charter do not have much detail. The concepts, however, have much more detail. Their development has created additional (detailed) requirements. So, it is perhaps not a bad idea to continue with the creation of concepts. My experience with the mailing list is that requirements are made when something concrete is being discussed. What do you think?
I think it is quite important that we agree the way we proceed. If we need another round of requirements, it should be done.
Have a nice day,
Karl