cml.h File Reference
Main CML header to include all CML functionality.
More...
#include <cml/vector.h>
#include <cml/matrix.h>
#include <cml/quaternion.h>
#include <cml/util.h>
#include <cml/mathlib/mathlib.h>
Go to the source code of this file.
Detailed Description
Main CML header to include all CML functionality.
- Todo:
- load vectors, matrices, and quaternions from a stream.
- Todo:
- Move common vector and matrix class ops to a base class (requires SCOOP-like programming, see below).
- Todo:
- Implement matrix<>::orthogonalize().
- Todo:
- Add is_square<>, is_rectangular<>, etc. to make it easier to detect specific matrix types.
- Todo:
- Implement dedicated square matrix classes to get rid of duplicated code in the specialized matrix classes.
- Todo:
- Implement automatic temporary generation, along with expression node return types for mat-vec and mat-mat operators.
- Todo:
- switch to ssize_t instead of size_t to avoid having to explicitly deal with wrap-arounds to 2^32-1 when a size_t is subtracted from.
- Todo:
- Finish tests for mat-vec multiply.
- Todo:
- Differentiate between references used for function arguments, and those used for variable types. In particular, GCC 3.4 requires const T & function arguments to ensure complete unrolling/inlining of expressions.
- Todo:
- Specialize matrix multiplication based upon the size type (fixed or dynamic). This makes a difference for at least GCC 3.4.
- Todo:
- need a build system for the tests/ and examples/ directories.
- Todo:
- clean up the testing infrastructure, and make it easier to add new tests
- Todo:
- figure out if scalars should be passed by value or reference, or if it should be determined by traits
- Todo:
- change use of typename and class to be like Alexandrescu book
- Todo:
- figure out if it makes sense to unroll assignment if either the source expression or the target vector/matrix has a fixed size (right now, unrolling happens only if the target has a fixed size)
- Todo:
- Allow addition of new types, a la glommable ETs (but simpler). Can use ideas from "SCOOP" method: Nicolas Burrus, Alexandre Duret-Lutz, Thierry Géraud, David Lesage and Raphaël Poss. A Static C++ Object-Oriented Programming (SCOOP) Paradigm Mixing Benefits of Traditional OOP and Generic Programming. In the Proceedings of the Workshop on Multiple Paradigm with OO Languages (MPOOL'03) Anaheim, CA, USA Oct. 2003
Definition in file cml.h.