
Janek Kozicki <janek_listy@wp.pl> 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