32 #ifndef TOON_INCLUDE_TOON_H
33 #define TOON_INCLUDE_TOON_H
45 #if defined TOON_NDEBUG || defined NDEBUG
46 #define TOON_NDEBUG_MISMATCH
47 #define TOON_NDEBUG_SLICE
48 #define TOON_NDEBUG_SIZE
49 #define TOON_NDEBUG_FILL
52 #ifdef TOON_INITIALIZE_RANDOM
56 #ifdef TOON_USE_LAPACK
57 #ifndef TOON_DETERMINANT_LAPACK
58 #define TOON_DETERMINANT_LAPACK 35
65 #ifdef TOON_TEST_INTERNALS
70 struct StaticSliceError{};
71 struct SizeMismatch{};
72 struct StaticSizeMismatch{};
73 struct VectorOverfill{};
74 struct StaticVectorOverfill{};
75 struct MatrixOverfill{};
76 struct StaticMatrixOverfill{};
81 using std::numeric_limits;
103 static const int value = numeric_limits<C>::is_specialized;
108 static const int value = numeric_limits<C>::is_specialized;
134 template<
int RowStr
ide,
int ColStr
ide>
struct Slice;
135 template<
int Size,
typename Precision,
int Str
ide,
typename Mem>
struct GenericVBase;
138 template<
int Size,
class Precision,
class Base>
struct Vector;
139 template<
int Rows,
int Cols,
class Precision,
class Base>
struct Matrix;
140 template<
int Size,
class Precision,
class Base>
struct DiagonalMatrix;
143 #ifdef DOXYGEN_INCLUDE_ONLY_FOR_DOCS
144 template<
typename T>
struct Operator{
177 int num_rows()
const;
179 int num_cols()
const;
187 template<
int Size,
class Precision,
class Base>
191 template <
int Size,
typename P1,
typename B1>
195 template <
int Size,
typename P1,
typename B1>
200 template <
int Size,
typename P1,
typename B1>
204 template <
int Size,
typename P1,
typename B1>
208 template <
int Size,
typename P1,
typename B1>
217 template<
int R,
int C,
class P,
class B>
222 template <
int Rows,
int Cols,
typename P1,
typename B1>
227 template <
int Rows,
int Cols,
typename P1,
typename B1>
231 template <
int Rows,
int Cols,
typename P1,
typename B1>
235 template <
int Rows,
int Cols,
typename P1,
typename B1>
239 template <
int Rows,
int Cols,
typename P1,
typename B1>
252 Operator<T> operator()(
int num_rows,
int num_cols)
const;
268 template<
typename T>
struct Operator;
288 template<
int i,
int j=i>
struct Sizer{
300 #ifndef TOON_DEFAULT_PRECISION
static const int value
Is C a field?
Everything lives inside this namespace.
static const int Dynamic
Template size value used to indicate dynamically sized vectors and matrices.
double DefaultPrecision
All TooN classes default to using this precision for computations and storage.
static const int Resizable
static const unsigned int max_bytes_on_stack