X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2Fcml%2Fvector.h;fp=src%2FMoof%2Fcml%2Fvector.h;h=58c3c912ec70f64ed81d97311d6f65f57496915c;hp=0000000000000000000000000000000000000000;hb=c2321281bf12a7efaedde930422c7ddbc92080d4;hpb=87bc17e55b0c1dc73ecc66df856d3f08fd7a7724 diff --git a/src/Moof/cml/vector.h b/src/Moof/cml/vector.h new file mode 100644 index 0000000..58c3c91 --- /dev/null +++ b/src/Moof/cml/vector.h @@ -0,0 +1,62 @@ +/* -*- C++ -*- ------------------------------------------------------------ + +Copyright (c) 2007 Jesse Anders and Demian Nave http://cmldev.net/ + +The Configurable Math Library (CML) is distributed under the terms of the +Boost Software License, v1.0 (see cml/LICENSE for details). + + *-----------------------------------------------------------------------*/ +/** @file + * @brief + * + * The configurable vector<> class. + */ + +#ifndef cml_vector_h +#define cml_vector_h + +#include + +namespace cml { + +/** A configurable vector type. + * + * This class encapsulates the notion of a vector. The ArrayType template + * argument can be used to select the type of array to be used as internal + * storage for a list of type Element. The vector orientation determines + * how vectors are used arithmetically in expressions; i.e. a*b, when a is + * a row vector and b is a column vector, is the dot (inner) product, while + * a*b, when a is a column vector and b is a row vector, is the matrix + * (outer) product of a and b. + * + * @internal Unlike the previous version, this uses specializations to + * better enable varied array and vector types. For example, with the + * rebind method, it's difficult to support external<> vector types that + * should not be assigned to. + * + * @internal All assignments to the vector should go through UnrollAssignment, + * which ensures that the source expression and the destination vector have + * the same size. This is particularly important for dynamically-sized + * vectors. + */ +template class vector; + +} // namespace cml + +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#endif + +// ------------------------------------------------------------------------- +// vim:ft=cpp