Honeycomb  0.1
Component-Model Framework
Classes | Functions
honey::matrix::priv Namespace Reference

Matrix implementation details. More...

Classes

struct  BlockTraits
 
struct  Storage
 Chooses storage based on traits. More...
 
class  StorageAuto
 Automatic (stack-compatible) dense storage. More...
 
struct  StorageAutoArray
 
struct  StorageAutoArray< Real, Size, 16 >
 
class  StorageBlock
 Block wrapper around any constant matrix with auto / dynamic dense storage type. Fully recursive, a block can wrap a block. More...
 
struct  StorageDense
 
class  StorageDynamic
 dynamic (heap) dense storage More...
 
struct  Traits
 
struct  Traits< Block< MatrixP, Rows, Cols > >
 
struct  Traits< Block< Vec, 1, 1 > >
 1x1 block traits More...
 
struct  Traits< Block< Vec, 1, Cols > >
 Column vector block traits. More...
 
struct  Traits< Block< Vec, Rows, 1 > >
 Row vector block traits. More...
 
struct  Traits< Matrix< Rows, Cols, Real_, Options, Alloc_ > >
 (m x n)-dimensional matrix traits More...
 
struct  Traits< Vec< 1, Real, Options > >
 
struct  Traits< Vec< 2, Real, Options > >
 
struct  Traits< Vec< 3, Real, Options > >
 
struct  Traits< Vec< 4, Real, Options > >
 
struct  Traits< Vec< Dim, Real, Options, Alloc > >
 
struct  Traits< VecSwizCon< Dim, Real, Options > >
 
struct  Traits< VecSwizRef< Dim, Real, Options > >
 

Functions

template<class Src , class Dst >
void storageRowCopy (const StorageDense< Src > &src, StorageDense< Dst > &dst)
 Copy by row between dense storages. More...
 
template<class Src , class Dst >
void storageCopy (const StorageBlock< Src > &src, StorageBlock< Dst > &dst)
 Copy between block and dense storages. More...
 
template<class Src , class Dst >
void storageCopy (const StorageBlock< Src > &src, StorageDense< Dst > &dst)
 
template<class Src , class Dst >
void storageCopy (const StorageDense< Src > &src, StorageBlock< Dst > &dst)
 
template<class Dst >
void storageCopy (const typename StorageBlock< Dst >::Real *src, StorageBlock< Dst > &dst)
 Copy between array and block storage. More...
 
template<class Src >
void storageCopy (const StorageBlock< Src > &src, typename StorageBlock< Src >::Real *dst)
 
template<class Src , class Dst , class Func >
void storageRowTransform (const StorageDense< Src > &src, StorageDense< Dst > &dst, const Func &f)
 Tranform by row between dense storages. More...
 
template<class Src , class Dst , class Func >
void storageTransform (const StorageBlock< Src > &src, StorageBlock< Dst > &dst, Func &&f)
 Transform between block and dense storages. More...
 
template<class Src , class Dst , class Func >
void storageTransform (const StorageBlock< Src > &src, StorageDense< Dst > &dst, Func &&f)
 
template<class Src , class Dst , class Func >
void storageTransform (const StorageDense< Src > &src, StorageBlock< Dst > &dst, Func &&f)
 
template<class T >
void storageFill (StorageBlock< T > &store, typename StorageBlock< T >::Real f)
 Fill block storage with scalar. More...
 
template<class T >
void storageFillZero (StorageBlock< T > &store)
 Fill block storage with zeros. More...
 
template<class T , class T2 >
bool storageRowEqual (const StorageDense< T > &lhs, const StorageDense< T2 > &rhs)
 Test by row between dense storages. More...
 
template<class T , class T2 >
bool storageEqual (const StorageBlock< T > &lhs, const StorageBlock< T2 > &rhs)
 Test between block storages. More...
 
template<class T , class T2 >
bool storageEqual (const StorageBlock< T > &lhs, const StorageDense< T2 > &rhs)
 Test between block and dense storages. More...
 
template<class T , class T2 >
bool storageEqual (const StorageDense< T > &lhs, const StorageBlock< T2 > &rhs)
 
template<class Src , class Dst >
void storageCopy (const StorageDense< Src > &src, StorageDense< Dst > &dst)
 Copy between dense storages. More...
 
template<class Dst >
void storageCopy (const typename StorageDense< Dst >::Real *src, StorageDense< Dst > &dst)
 Copy between array and dense storage. More...
 
template<class Src >
void storageCopy (const StorageDense< Src > &src, typename StorageDense< Src >::Real *dst)
 
template<class Src , class Dst , class Func >
void storageTransform (const StorageDense< Src > &src, StorageDense< Dst > &dst, Func &&f)
 Transform between dense storages. More...
 
template<class T >
void storageFill (StorageDense< T > &store, typename StorageDense< T >::Real f)
 Fill dense storage with scalar. More...
 
template<class T >
void storageFillZero (StorageDense< T > &store)
 Fill dense storage with zeros. More...
 
template<class T , class T2 >
bool storageEqual (const StorageDense< T > &lhs, const StorageDense< T2 > &rhs)
 Test between dense storages. More...
 
template<class R , int O>
void storageCopy (const R *a, Vec< 1, R, O > &v)
 
template<class R , int O>
void storageCopy (const Vec< 1, R, O > &v, R *a)
 
template<class R , int O>
void storageFill (Vec< 1, R, O > &v, R f)
 
template<class R , int O>
void storageFillZero (Vec< 1, R, O > &v)
 
template<class R , int O>
bool storageEqual (const Vec< 1, R, O > &lhs, const Vec< 1, R, O > &rhs)
 
template<class R , int O>
void storageCopy (const R *a, Vec< 2, R, O > &v)
 
template<class R , int O>
void storageCopy (const Vec< 2, R, O > &v, R *a)
 
template<class R , int O>
void storageFill (Vec< 2, R, O > &v, R f)
 
template<class R , int O>
void storageFillZero (Vec< 2, R, O > &v)
 
template<class R , int O>
bool storageEqual (const Vec< 2, R, O > &lhs, const Vec< 2, R, O > &rhs)
 
template<class R , int O>
void storageCopy (const R *a, Vec< 3, R, O > &v)
 
template<class R , int O>
void storageCopy (const Vec< 3, R, O > &v, R *a)
 
template<class R , int O>
void storageFill (Vec< 3, R, O > &v, R f)
 
template<class R , int O>
void storageFillZero (Vec< 3, R, O > &v)
 
template<class R , int O>
bool storageEqual (const Vec< 3, R, O > &lhs, const Vec< 3, R, O > &rhs)
 
template<class R , int O>
void storageCopy (const R *a, Vec< 4, R, O > &v)
 
template<class R , int O>
void storageCopy (const Vec< 4, R, O > &v, R *a)
 
template<class R , int O>
void storageFill (Vec< 4, R, O > &v, R f)
 
template<class R , int O>
void storageFillZero (Vec< 4, R, O > &v)
 
template<class R , int O>
bool storageEqual (const Vec< 4, R, O > &lhs, const Vec< 4, R, O > &rhs)
 

Detailed Description

Matrix implementation details.

Function Documentation

template<class R , int O>
void honey::matrix::priv::storageCopy ( const R *  a,
Vec< 1, R, O > &  v 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const R *  a,
Vec< 2, R, O > &  v 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const R *  a,
Vec< 3, R, O > &  v 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const Vec< 1, R, O > &  v,
R *  a 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const Vec< 2, R, O > &  v,
R *  a 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const Vec< 3, R, O > &  v,
R *  a 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const R *  a,
Vec< 4, R, O > &  v 
)
template<class R , int O>
void honey::matrix::priv::storageCopy ( const Vec< 4, R, O > &  v,
R *  a 
)
template<class Src , class Dst >
void honey::matrix::priv::storageCopy ( const StorageDense< Src > &  src,
StorageDense< Dst > &  dst 
)

Copy between dense storages.

template<class Dst >
void honey::matrix::priv::storageCopy ( const typename StorageDense< Dst >::Real src,
StorageDense< Dst > &  dst 
)

Copy between array and dense storage.

template<class Src >
void honey::matrix::priv::storageCopy ( const StorageDense< Src > &  src,
typename StorageDense< Src >::Real dst 
)
template<class Src , class Dst >
void honey::matrix::priv::storageCopy ( const StorageBlock< Src > &  src,
StorageBlock< Dst > &  dst 
)

Copy between block and dense storages.

template<class Src , class Dst >
void honey::matrix::priv::storageCopy ( const StorageBlock< Src > &  src,
StorageDense< Dst > &  dst 
)
template<class Src , class Dst >
void honey::matrix::priv::storageCopy ( const StorageDense< Src > &  src,
StorageBlock< Dst > &  dst 
)
template<class Dst >
void honey::matrix::priv::storageCopy ( const typename StorageBlock< Dst >::Real src,
StorageBlock< Dst > &  dst 
)

Copy between array and block storage.

template<class Src >
void honey::matrix::priv::storageCopy ( const StorageBlock< Src > &  src,
typename StorageBlock< Src >::Real dst 
)
template<class R , int O>
bool honey::matrix::priv::storageEqual ( const Vec< 1, R, O > &  lhs,
const Vec< 1, R, O > &  rhs 
)
template<class R , int O>
bool honey::matrix::priv::storageEqual ( const Vec< 2, R, O > &  lhs,
const Vec< 2, R, O > &  rhs 
)
template<class R , int O>
bool honey::matrix::priv::storageEqual ( const Vec< 3, R, O > &  lhs,
const Vec< 3, R, O > &  rhs 
)
template<class R , int O>
bool honey::matrix::priv::storageEqual ( const Vec< 4, R, O > &  lhs,
const Vec< 4, R, O > &  rhs 
)
template<class T , class T2 >
bool honey::matrix::priv::storageEqual ( const StorageDense< T > &  lhs,
const StorageDense< T2 > &  rhs 
)

Test between dense storages.

template<class T , class T2 >
bool honey::matrix::priv::storageEqual ( const StorageBlock< T > &  lhs,
const StorageBlock< T2 > &  rhs 
)

Test between block storages.

template<class T , class T2 >
bool honey::matrix::priv::storageEqual ( const StorageBlock< T > &  lhs,
const StorageDense< T2 > &  rhs 
)

Test between block and dense storages.

template<class T , class T2 >
bool honey::matrix::priv::storageEqual ( const StorageDense< T > &  lhs,
const StorageBlock< T2 > &  rhs 
)
template<class R , int O>
void honey::matrix::priv::storageFill ( Vec< 1, R, O > &  v,
f 
)
template<class R , int O>
void honey::matrix::priv::storageFill ( Vec< 2, R, O > &  v,
f 
)
template<class R , int O>
void honey::matrix::priv::storageFill ( Vec< 3, R, O > &  v,
f 
)
template<class R , int O>
void honey::matrix::priv::storageFill ( Vec< 4, R, O > &  v,
f 
)
template<class T >
void honey::matrix::priv::storageFill ( StorageDense< T > &  store,
typename StorageDense< T >::Real  f 
)

Fill dense storage with scalar.

template<class T >
void honey::matrix::priv::storageFill ( StorageBlock< T > &  store,
typename StorageBlock< T >::Real  f 
)

Fill block storage with scalar.

template<class R , int O>
void honey::matrix::priv::storageFillZero ( Vec< 1, R, O > &  v)
template<class R , int O>
void honey::matrix::priv::storageFillZero ( Vec< 2, R, O > &  v)
template<class R , int O>
void honey::matrix::priv::storageFillZero ( Vec< 3, R, O > &  v)
template<class R , int O>
void honey::matrix::priv::storageFillZero ( Vec< 4, R, O > &  v)
template<class T >
void honey::matrix::priv::storageFillZero ( StorageDense< T > &  store)

Fill dense storage with zeros.

template<class T >
void honey::matrix::priv::storageFillZero ( StorageBlock< T > &  store)

Fill block storage with zeros.

template<class Src , class Dst >
void honey::matrix::priv::storageRowCopy ( const StorageDense< Src > &  src,
StorageDense< Dst > &  dst 
)

Copy by row between dense storages.

template<class T , class T2 >
bool honey::matrix::priv::storageRowEqual ( const StorageDense< T > &  lhs,
const StorageDense< T2 > &  rhs 
)

Test by row between dense storages.

template<class Src , class Dst , class Func >
void honey::matrix::priv::storageRowTransform ( const StorageDense< Src > &  src,
StorageDense< Dst > &  dst,
const Func &  f 
)

Tranform by row between dense storages.

template<class Src , class Dst , class Func >
void honey::matrix::priv::storageTransform ( const StorageDense< Src > &  src,
StorageDense< Dst > &  dst,
Func &&  f 
)

Transform between dense storages.

template<class Src , class Dst , class Func >
void honey::matrix::priv::storageTransform ( const StorageBlock< Src > &  src,
StorageBlock< Dst > &  dst,
Func &&  f 
)

Transform between block and dense storages.

template<class Src , class Dst , class Func >
void honey::matrix::priv::storageTransform ( const StorageBlock< Src > &  src,
StorageDense< Dst > &  dst,
Func &&  f 
)
template<class Src , class Dst , class Func >
void honey::matrix::priv::storageTransform ( const StorageDense< Src > &  src,
StorageBlock< Dst > &  dst,
Func &&  f 
)