41 #define TOON_ALIGN8 __attribute__ ((aligned(8))) 
   62 template<
int Size, 
class Precision, 
bool heap> 
class StackOrHeap;
 
   64 template<
int Size, 
class Precision> 
class StackOrHeap<Size,Precision,0>
 
   71     Precision my_data[Size];
 
   85 template<
int Size, 
class Precision> 
class StackOrHeap<Size, Precision, 1>
 
   89         :my_data(new Precision[Size])
 
  103         :my_data(new Precision[Size])
 
  105             for(
int i=0; i < Size; i++)
 
  106                 my_data[i] = from.my_data[i];
 
  183     :my_data(new Precision[v.my_size]), my_size(v.my_size)
 
  185         for(
int i=0; i < my_size; i++)
 
  186             my_data[i] = v.my_data[i];
 
  190     :my_data(new Precision[s]), my_size(s)
 
  197     : my_data(new Precision[op.
size()]), my_size(op.
size()) 
 
  269             return numbers.size();
 
  295         template<
int S> 
struct SFINAE_dummy{
typedef void type;};
 
  319             numbers.resize(newsize);
 
  327             int old_size = 
size();
 
  339 template<
int S, 
class Precision, 
class PtrType=Precision*, 
class ConstPtrType=const Precision*, 
class RefType=Precision&, 
class ConstRefType=const Precision&> 
struct VectorSlice 
  385 template<
class Precision, 
class PtrType, 
class ConstPtrType, 
class RefType, 
class ConstRefType> 
struct VectorSlice<
Dynamic, Precision, PtrType, ConstPtrType, RefType, ConstRefType>
 
  391     :my_data(d), my_size(s)
 
  484     template<
typename Op>
 
  510     template<
typename Op>
 
  519 template<
int R, 
int C, 
class Precision, 
bool FullyStatic=(R>=0 && C>=0)> 
 
  554 template<
int R, 
int C, 
class Precision> 
struct MatrixAlloc<R, C, Precision, false>
 
  569         for(
int i=0; i < size; i++) {
 
  570             my_data[i] = m.my_data[i];
 
const Precision * data() const 
VectorAlloc(const Operator< Op > &)
Construction from an Operator. See Operator::size(). 
MatrixSlice(Precision *p)
VectorAlloc(const Operator< Op > &op)
int size() const 
Return the size of the vector. 
const Precision * get_data_ptr() const 
Precision * get_data_ptr()
SizeHolder(int)
Construct from an int and discard it. 
Precision & ReferenceType
int size() const 
Simply return the statcally known size. 
VectorAlloc()
Default constructor (only for statically sized vectors) 
const Precision * get_data_ptr() const 
const Precision * ConstPointerType
VectorSlice(const Operator< Op > &op)
const Precision * get_data_ptr() const 
MatrixAlloc(const Operator< Op > &)
ColSizeHolder(const Operator< Op > &op)
void try_destructive_resize(int newsize)
Everything lives inside this namespace. 
SFINAE_dummy< sizeof(&Operator< Op >::size)>::type try_destructive_resize(const Operator< Op > &op)
std::vector< Precision > numbers
static const int Dynamic
Template size value used to indicate dynamically sized vectors and matrices. 
void try_destructive_resize(int)
ColStrideHolder(const Operator< Op > &op)
ConstPtrType data() const 
static void debug_initialize(P *, int)
MatrixAlloc(const MatrixAlloc &m)
VectorSlice(PtrType d, int s)
StrideHolder(const Operator< Op > &op)
void try_destructive_resize(const Operator< Op > &)
void try_destructive_resize(int)
MatrixSlice(Precision *p, int r, int c)
Precision * get_data_ptr()
void try_destructive_resize(const Op &)
Precision * get_data_ptr()
ConstPtrType data() const 
void try_destructive_resize(const Operator< Op > &)
const Precision * get_data_ptr() const 
VectorAlloc(const Operator< Op > &op)
void try_destructive_resize(const Operator< Op > &)
MatrixSlice(const Operator< Op > &op)
VectorSlice(PtrType p, int)
const Precision * get_data_ptr() const 
Precision * get_data_ptr()
ConstPtrType ConstPointerType
const Precision * data() const 
VectorSlice(const Operator< Op > &op)
SizeHolder()
Default constrution. 
void try_destructive_resize(int)
VectorAlloc(int)
Construction from a size (required by damic vectors, ignored otherwise). 
static const int Resizable
void try_destructive_resize(int)
const Precision & ConstReferenceType
MatrixAlloc(int r, int c)
ConstRefType ConstReferenceType
RowSizeHolder(const Operator< Op > &op)
Precision * get_data_ptr()
const Precision * data() const 
double my_data[Size] TOON_ALIGN8
ConstPtrType ConstPointerType
void try_destructive_resize(const Operator< Op > &)
StackOrHeap(const StackOrHeap &from)
VectorAlloc(const VectorAlloc &v)
StrideHolder(const Operator< Op > &)
int num_rows() const 
Return the number of rows. 
int num_cols() const 
Return the number of columns. 
RowStrideHolder(const Operator< Op > &op)
MatrixAlloc(const Operator< Op > &op)
ConstRefType ConstReferenceType