Boost logo

Boost :

From: Hubert.Holin_at_[hidden]
Date: 2001-01-09 05:45:54


Paris (U.E.), le 09/01/2001

--- In boost_at_[hidden], Jens Maurer <Jens.Maurer_at_g...> wrote:
>
> Dean Calver wrote:
> > I think quaternions would be a good library to add to Boost. I (like
> > everybody else it seems) have my own (well several actually).
>
> I also support adding more numerics to boost. We already have
> rational numbers for a start.
>
> - This is the first time I hear about quarternions and octonions. You
> may consider that a defect in my education. Anyhow, any such submission

        I would not say so, these beasts are not *that* frequent, after
all.

> should include some not too formal introduction telling what they are.
> For example, for complex numbers, I would expect at least
>
> z = a + b*i is a complex number for some reals a and b; treat "i" as
> any variable and apply usual arithmetic rules except that i*i = -1.
>
> (You may want to elaborate on sqrt and ln and exp as well.)

        I'll do that (I guess I will write a short documentation by the
end of the week).

> - In general, I prefer simple, platform-independent implementations
> over overly complex ones, even though these may have better performance.
> For example, a boost "bigint" library should use the obvious algorithms
> and possibly optionally provide an interface to the GNU MP library for
> those who need serious performance.

        The implementation I provided was built with simplicity in mind.
However, the need for speed is not a trivial request, and should be
accomodated somehow (any suggestion, how to implement options?).

> - All math classes should work together seamlessly: quarternions of
> rationals of bigint's should be no problem.

        I believe this is unfortunately not really possible. The
implementation provided is of "floating point" type, like the standard
complexes are. It should accomodate a "fixed point" type as its
template parameter, but should not use an "integer" type parameter.

        The reason I believe this is necessary is because the properties
one are after are different when we look at floating (or fixed) point
entities, which are only known to within some precision, and integer
(including rational) entities which must be exact.

        Uses are also different: engineering versus cryptography, for
instance.

        For quaternions (or octonions) of integers (big integers,
rationals,...), I have another class cooking which should be better
suited.

        As an additional point, I would like to know if there is an
interest for a class doing fixed point computation (including
variations on some transcendental functions). As I did some research on
these during my thesis, I could present one with not too much work.

> > I also am wondering about numeric classes being added to Boost, I have
> > numerous times written vector (mathematical) and matrix templates classes
> > and they would seem to be obvious additions (I mean relatively simple matrix
> > classes rather than blitz++ complexity) ideally we would want a generic
> > tensor class. In almost all mathematically complex fields (personally I've
> > needed them for graphics, physics, combinatrics, numerical analysis and even
> > quantum computing) the need for the more complex (no pun intended) maths
> > classes often occur.
>
> The STL valarray specification seems to require some surgery (read: bug-fixing)
> as well. I would be pleased if any effort regarding boost vector/matrix
> classes could have an eye on that (or state that valarray is completely
> obsoleted by the vector/matrix classes).
>
> Jens Maurer

        Geometry classes are needed. I believe they should work in concert
with valarrays, but not that they should superseed them (uses are
overlaping but distinct).

                Hubert Holin
                Hubert.Holin_at_[hidden]

P.S.: I updated the quaternions and uploaded the octonions today; I
will now work to adhere to the guidelines and write the doc.


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