# Boost :

From: jhrwalter (walter_at_[hidden])
Date: 2002-01-19 10:24:29

--- In boost_at_y..., Toon Knapen <toon.knapen_at_s...> wrote:
> jhrwalter wrote:
>
> >>>as I know multiplication with a scalar is mathematically always
> >>>defined as left multiplication for vectors and matrices.
> >>>
> >>
> >>theoretically scalar-matrix multiplication is commutative and
thus
> >>
> > a * M
> >
> >>== M * a.
> >>
> >
> > Hm. I'm not sure, if the rhs is defined at all.
>
> check out
> boost/libs/numeric/doc/LinearAlgebraConcepts.html#VEctorSpace
> for instance.

The 'Teubner Taschenbuch der Mathematik' defines a vector space and a
linear operator in the following way:

Vector space

F is a field. G is a additive Abelian group. * is a function: (F, G) -
> G. The following laws hold:
a) distributive
For all alpha in F, a, b in G: alpha * (a + b) = alpha * a + alpha * b
For all alpha, beta in F, a in G: (alpha + beta) * a = alpha * a +
beta * a
b) associative
For all alpha, beta in F, a in G: (alpha * beta) * a = alpha * (beta
* a)
c) identity
For all a in G: 1 * a = a

Linear Operator

V, W are vector spaces over F. A is a function: D (A) in V ->W.
A is a linear operator, iff
a) D(A) is a linear subspace of V
b) For all alpha, beta in F, a, b in D (A):
A (alpha * a + beta * b) = alpha * A (a) + beta * A (b)

Sorry, I do not see any right multiplication with a scalar here.

> >
> > Division is another topic. We once discussed to introduce such a
> > division operator for accuracy reasons, although it's usually not
> > defined mathematically, too.
> >
>
>
> what's the diff between M * ( 1 / a ) and M / a * 1

Multiplication with the reciprocal could have an greater rounding
error then division. OTOH the whole Fortran BLAS doesn't bother with
it.

Regards

Joerg