]> Dogcows Code - chaz/yoink/blob - src/cml/vector.h
now using cml for vectors and math stuff
[chaz/yoink] / src / cml / vector.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
11 *
12 * The configurable vector<> class.
13 */
14
15 #ifndef cml_vector_h
16 #define cml_vector_h
17
18 #include <cml/core/common.h>
19
20 namespace cml {
21
22 /** A configurable vector type.
23 *
24 * This class encapsulates the notion of a vector. The ArrayType template
25 * argument can be used to select the type of array to be used as internal
26 * storage for a list of type Element. The vector orientation determines
27 * how vectors are used arithmetically in expressions; i.e. a*b, when a is
28 * a row vector and b is a column vector, is the dot (inner) product, while
29 * a*b, when a is a column vector and b is a row vector, is the matrix
30 * (outer) product of a and b.
31 *
32 * @internal Unlike the previous version, this uses specializations to
33 * better enable varied array and vector types. For example, with the
34 * rebind method, it's difficult to support external<> vector types that
35 * should not be assigned to.
36 *
37 * @internal All assignments to the vector should go through UnrollAssignment,
38 * which ensures that the source expression and the destination vector have
39 * the same size. This is particularly important for dynamically-sized
40 * vectors.
41 */
42 template<typename Element, class ArrayType> class vector;
43
44 } // namespace cml
45
46 #include <cml/core/common.h>
47 #include <cml/util.h>
48
49 #include <cml/vector/vector_ops.h>
50 #include <cml/vector/vector_products.h>
51 #include <cml/vector/vector_functions.h>
52 #include <cml/vector/vector_comparison.h>
53 #include <cml/vector/vector_print.h>
54
55 #include <cml/vector/fixed.h>
56 #include <cml/vector/dynamic.h>
57 #include <cml/vector/external.h>
58
59 #endif
60
61 // -------------------------------------------------------------------------
62 // vim:ft=cpp
This page took 0.033007 seconds and 4 git commands to generate.