For coding simplicity I expanded this minimal set. Each derived vector class must define the following functions.

**clone**- Make a copy of both the space the vector resides in and the vector values.
**clone_space**- Make a copy of just the space the vector resides in.
**zero**- Fill the vector values with zeros.
**random**- Fill the vector values with random numbers.
**scale**- Scale the vector by a number.
**add**- Add the vector to another vector.
**scale_add**- Add the vector to another vector multiplied by a scalar.
**scale_addscale**- Scale the vector and add it to another vector scaled by some scalar.
**dot**- Return the dot product of the vector with another vector.
**load**- Given a vector space, read/or create the vector values.
**size**- A rudimentary method to check vector space similarity.
**clean**- Remove all remnants of the vector.

In addition to the
`SEP.vector.vector` described above, an additional arbitrary
class is necessary. This class, `SEP.vector.super`,
is collection of vectors. Take for example
a regularized inversion problem,

(1) | ||

10/23/2004