The Vector class is for n-dimensional vectors where n is known at
compile time. The VectorN classes derive from Vector and add
constructors for the specific dimension N as well as specialized
operations for that dimension. GVector is for n-dimensional vectors
where n is known only at run time. The arithmetic and geometric
operations are defined outside the class members. This allows
instantiating the classes with scalar types other than floating-point
types; for example, you can instantiate vectors of exact arithmetic
types which do not support square root operations that are inherent in
length computations.
|
The Matrix class is for n-by-m matrices where n and m are known at
compile time. The MatrixNxN classes derive from Matrix and add
constructors for square matrices of the specified size as well as
specialized operations for that size. GMatrix is for n-by-m matrices
where n and m are known only at run time. The arithmetic and geometric
operations are defined outside the class members. This allows
instantiating the classes with scalar types other than floating-point
types; for example, you can instantiate matrices of exact arithmetic
types which do not support square root operations that are inherent in
length computations. BandedMatrix represents matrices whose entries are
all zero outside a band of diagonal-subdiagonal entries. The typical
example is a tridiagonal matrix.
|
A rotation can be represented by an axis-angle pair, by Euler angles
with a specified order of coordinate-axis rotations, by unit-length
quaternions, or by rotation matrices. The class Rotation supports
conversions between the representations. The axis-angle and rotation
matrix representations can be 3D or embedded in 4D.
|
Linear and affine change of bases to convert points and transformations
from one coordinate system to another. This provides a solution to the
classic question about how to convert between left-handed and right-handed
coordinates. The implementation for converting transformations takes note
of the matrix-vector multiplcation convention that you specify: vector-on-the-right,
meaning the transformation M is applied to a vector V as M*V; or vector-on-the-left,
meaning the application is VT*M.
|
Matrix transformations that involve rotation, translation and scaling. This
is used in the scene graph management applications.
|
Representation of polynomials of 1 variable. Support for arithmetic operations
between polynomials, evaluation of polynomials, derivative and inversion, and
the Euclidean algorithm for factoring p(x) = q(x)*d(x) + r(t), where d(x) is the
divisor, q(x) is the quotient, and r(x) is the remainder.
|