|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2006-08-30 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. Well-designed 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.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk