]> Dogcows Code - chaz/yoink/blob - src/Moof/cml/cml.h
bugfix: win32 packaging script temp directories
[chaz/yoink] / src / Moof / cml / cml.h
1 /* -*- C++ -*- ------------------------------------------------------------
2
3 Copyright (c) 2007 Jesse Anders and Demian Nave http://cmldev.net/
4
5 The Configurable Math Library (CML) is distributed under the terms of the
6 Boost Software License, v1.0 (see cml/LICENSE for details).
7
8 *-----------------------------------------------------------------------*/
9 /** @file
10 * @brief Main CML header to include all CML functionality.
11 *
12 * @todo load vectors, matrices, and quaternions from a stream.
13 *
14 * @todo Move common vector and matrix class ops to a base class (requires
15 * SCOOP-like programming, see below).
16 *
17 * @todo Implement matrix<>::orthogonalize().
18 *
19 * @todo Add is_square<>, is_rectangular<>, etc. to make it easier to
20 * detect specific matrix types.
21 *
22 * @todo Implement dedicated square matrix classes to get rid of duplicated
23 * code in the specialized matrix classes.
24 *
25 * @todo Implement automatic temporary generation, along with expression
26 * node return types for mat-vec and mat-mat operators.
27 *
28 * @todo switch to ssize_t instead of size_t to avoid having to explicitly
29 * deal with wrap-arounds to 2^32-1 when a size_t is subtracted from.
30 *
31 * @todo Finish tests for mat-vec multiply.
32 *
33 * @todo Differentiate between references used for function arguments, and
34 * those used for variable types. In particular, GCC 3.4 requires const T &
35 * function arguments to ensure complete unrolling/inlining of expressions.
36 *
37 * @todo Specialize matrix multiplication based upon the size type (fixed or
38 * dynamic). This makes a difference for at least GCC 3.4.
39 *
40 * @todo need a build system for the tests/ and examples/ directories.
41 *
42 * @todo clean up the testing infrastructure, and make it easier to add new
43 * tests
44 *
45 * @todo figure out if scalars should be passed by value or reference, or
46 * if it should be determined by traits
47 *
48 * @todo change use of typename and class to be like Alexandrescu book
49 *
50 * @todo figure out if it makes sense to unroll assignment if either the
51 * source expression or the target vector/matrix has a fixed size (right
52 * now, unrolling happens only if the target has a fixed size)
53 *
54 * @todo Allow addition of new types, a la glommable ETs (but simpler).
55 * Can use ideas from "SCOOP" method: Nicolas Burrus, Alexandre Duret-Lutz,
56 * Thierry Géraud, David Lesage and Raphaël Poss. A Static C++
57 * Object-Oriented Programming (SCOOP) Paradigm Mixing Benefits of
58 * Traditional OOP and Generic Programming. In the Proceedings of the
59 * Workshop on Multiple Paradigm with OO Languages (MPOOL'03) Anaheim, CA,
60 * USA Oct. 2003
61 */
62
63 #ifndef cml_h
64 #define cml_h
65
66 #include <cml/vector.h>
67 #include <cml/matrix.h>
68 #include <cml/quaternion.h>
69 #include <cml/util.h>
70 #include <cml/mathlib/mathlib.h>
71
72 #endif
73
74 // -------------------------------------------------------------------------
75 // vim:ft=cpp
This page took 0.035974 seconds and 4 git commands to generate.