30 #ifndef TOON_INCLUDE_TOON_H 31 #define TOON_INCLUDE_TOON_H 38 #include <initializer_list> 40 #include <TooN/internal/config.hh> 42 #if defined TOON_NDEBUG || defined NDEBUG 43 #define TOON_NDEBUG_MISMATCH 44 #define TOON_NDEBUG_SLICE 45 #define TOON_NDEBUG_SIZE 46 #define TOON_NDEBUG_FILL 49 #ifdef TOON_INITIALIZE_RANDOM 53 #ifdef TOON_USE_LAPACK 54 #ifndef TOON_DETERMINANT_LAPACK 55 #define TOON_DETERMINANT_LAPACK 35 62 #ifdef TOON_TEST_INTERNALS 67 struct StaticSliceError{};
68 struct SizeMismatch{};
69 struct StaticSizeMismatch{};
70 struct VectorOverfill{};
71 struct StaticVectorOverfill{};
72 struct MatrixOverfill{};
73 struct StaticMatrixOverfill{};
78 using std::numeric_limits;
115 static const int value = numeric_limits<C>::is_specialized;
120 static const int value = numeric_limits<C>::is_specialized;
141 static const unsigned int max_bytes_on_stack=1000;
146 template<
int RowStr
ide,
int ColStr
ide>
struct Slice;
147 template<
int Size,
typename Precision,
int Str
ide,
typename Mem>
struct GenericVBase;
150 template<
int Size,
class Precision,
class Base>
struct Vector;
151 template<
int Rows,
int Cols,
class Precision,
class Base>
struct Matrix;
152 template<
int Size,
class Precision,
class Base>
struct DiagonalMatrix;
155 #ifdef DOXYGEN_INCLUDE_ONLY_FOR_DOCS 156 template<
typename T>
struct Operator{
189 int num_rows()
const;
191 int num_cols()
const;
199 template<
int Size,
class Precision,
class Base>
203 template <
int Size,
typename P1,
typename B1>
207 template <
int Size,
typename P1,
typename B1>
212 template <
int Size,
typename P1,
typename B1>
216 template <
int Size,
typename P1,
typename B1>
220 template <
int Size,
typename P1,
typename B1>
229 template<
int R,
int C,
class P,
class B>
234 template <
int Rows,
int Cols,
typename P1,
typename B1>
239 template <
int Rows,
int Cols,
typename P1,
typename B1>
243 template <
int Rows,
int Cols,
typename P1,
typename B1>
247 template <
int Rows,
int Cols,
typename P1,
typename B1>
251 template <
int Rows,
int Cols,
typename P1,
typename B1>
264 Operator<T> operator()(
int num_rows,
int num_cols)
const;
280 template<
typename T>
struct Operator;
284 static const int Dynamic = -1;
285 static const int Resizable = -0x7fffffff;
289 template<
int i,
int j>
struct SimpleSizer{
static const int size=i;};
290 template<
int i>
struct SimpleSizer<Dynamic, i>{
static const int size=i;};
291 template<
int i>
struct SimpleSizer<i, Dynamic>{
static const int size=i;};
292 template<>
struct SimpleSizer<Dynamic, Dynamic> {
static const int size=-1;};
296 static const bool is = (i!=Dynamic && i != Resizable);
300 template<
int i,
int j=i>
struct Sizer{
312 #if defined TOON_DEFAULT_PRECISION_TYPE 318 #if defined TOON_FORTRAN_INTEGER && defined TOON_CLAPACK 319 #error Error: both TOON_FORTRAN_INTEGER and TOON_CLAPACK defined 320 #elif defined TOON_CLAPACK 321 typedef long FortranInteger;
322 #elif defined TOON_FORTRAN_INTEGER 323 typedef TOON_FORTRAN_INTEGER FortranInteger;
325 typedef int FortranInteger;
330 #include <TooN/internal/size_mismatch.hh> 331 #include <TooN/internal/debug.hh> 333 #include <TooN/internal/introspection.hh> 336 #include <TooN/internal/dchecktest.hh> 337 #include <TooN/internal/allocator.hh> 339 #include <TooN/internal/overfill_error.hh> 340 #include <TooN/internal/slice_error.hh> 342 #include <TooN/internal/comma.hh> 344 #include <TooN/internal/vbase.hh> 345 #include <TooN/internal/vector.hh> 347 #include <TooN/internal/mbase.hh> 348 #include <TooN/internal/matrix.hh> 349 #include <TooN/internal/reference.hh> 351 #include <TooN/internal/make_vector.hh> 352 #include <TooN/internal/operators.hh> 354 #include <TooN/internal/objects.h> 356 #include <TooN/internal/diagmatrix.h> 358 #include <TooN/internal/data.hh> 359 #include <TooN/internal/data_functions.hh> 361 #include <TooN/helpers.h> 362 #include <TooN/determinant.h>
Pretty generic SFINAE introspection generator.
Definition: vec_test.cc:21
A vector.
Definition: vector.hh:126
Is a number a field? i.e., +, -, *, / defined.
Definition: TooN.h:113
A matrix.
Definition: matrix.hh:105
A diagonal matrix.
Definition: diagmatrix.h:108
Definition: operators.hh:119
double DefaultPrecision
All TooN classes default to using this precision for computations and storage.
Definition: TooN.h:315