
Boost : 
From: David Abrahams (dave_at_[hidden])
Date: 20060830 15:20:33
Janek Kozicki <janek_listy_at_[hidden]> writes:
> Hello,
>
> Not so long ago you have mentioned that you are working on a linear
> algebra library. I'm very interested in this topic, because I'm using
> such library in my project.
I'm sorry I've been so quiet...
> I have looked into the vault but couldn't find this library. Can we have
> a sneak peek?
I'm sorry, not yet. We have lots of code, but nothing worth showing
at the linear algebra level.
> Questions:
>
> 1. will your library provide functions useful when working with small
> vectors like: cross_product(), dot_product(), normalize() (scale vector
> so its length()==1), norm() (returns squared length), length(), etc... ?
Yes, and it will minimize the amount of temporary storage used, so it
should be very fast.
> 2. will your library allow Boost.Quaternions to be extended in a way that
> those two libraries together will be useful for geometrical rotations?
Probably. Welldesigned generic libraries usually use concepts that
are not dependent on member functions, so it should be possible to
write the traits and other components that make that work.
> 3. will your library provide a way to solve equation Ax=b (A is matrix,
> b and x are vectors, and x is the unknown).
Yes.
> The background for question 2 above:
>
> Author of Boost.Quaternions tried to extend the library with code
> that would allow geomtetrical rotations, but at that time only
> Boost.Ublas library was available. After some investigation he
> discovered that matrices and vectors from ublas are unsuitable for
> the task, and finally he gave up.
>
> Following functions would be needed:
>
> operator*(vector<3,T1>,quaternion<T2>) // most important
Is that an inner product, outer product, or pointwise multiplication?
> from_rotation_matrix(matrix<3,3,T>)
returning what?
> to_rotation_matrix()
Where's the argument? Is this supposed to be a member function? See
my 4th paragraph above.
> from_axis_angle(vector<3,T1> axis, T2 angle)
returning what?
> to_axis_angle()
Where's the argument?
> to_euler_angles()
Where's the argument?
> and few others. Similar functionality is already in boost vault:
> directory "Math  Numerics", file Quaternion.h
>
> Without quaternion rotations this linear algebra library would be
> pretty useless for me, so I hope it'll be there :)
OK.
 Dave Abrahams Boost Consulting www.boostconsulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk