Boost logo

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
 


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk