exmat Namespace Reference
[Binary Operators]

Namespace which wrap the whole library. More...


Classes

class  AlignedStack
 An aligned stack. StackSize is in bytes. More...
struct  ASSIGN_ANALYSIS
 Defines types of assignment analysis. More...
class  CommaInitializer
 The CommaInitializer class. More...
class  out_of_bound_error
 The out_of_bound_error class. More...
class  compatibility_error
 The compatibility_error class. More...
class  mem_align_error
 The mem_align_error class. More...
struct  EmptyErrorChecker
 The EmptyErrorChecker class. More...
struct  DefaultErrorChecker
 The DefaultErrorChecker class. More...
struct  FullErrorChecker
 The FullErrorChecker class. More...
struct  ResultantChecker
 The ResultantChecker class. More...
struct  ExpMat
 The ExpMat class. More...
struct  ExpRow
 The ExpRow class. More...
struct  OperandTypeChooser
struct  BinViewValueTypeChooser
struct  GetBinExpTmpType
struct  UnaExp
 The UnaExp class. More...
struct  BinExp
 The BinExp class. More...
struct  LinearBinExpSize
 The LinearExpSize class. More...
struct  LinBinExp
 The LinBinExp class. More...
struct  MulBinExpSize
 The MulBinExpSize class. More...
struct  MulBinExp
 The MulBinExp class. More...
class  AddExp
 The AddExp class. More...
class  SubExp
 The SubExp class. More...
class  MulExp
 The MulExp class. More...
class  ScalarMulExp
 The ScalarMulExp class. More...
class  ScalarDivExp
 The ScalarDivExp class. More...
struct  TmpListEntry
 The TmpListEntry class. More...
struct  GetTmp
 The GetTmp class. More...
class  ReleaseTmpAt
 The ReleaseTmpAt class. More...
struct  DynamicTmpList
 The DynamicTmpList class. More...
struct  TmpInstance
 The TmpInstance class. More...
struct  TmpAnalyserUnaNode
 The TmpAnalyserUnaNode class. More...
struct  TmpAnalyserBinNode
 The TmpAnalyserBinNode class. More...
struct  LeafeNode
 The LeafeNode class. More...
struct  ViewNode
 The ViewNode class. More...
class  stride_iterator
class  mat_iterator
class  const_mat_iterator
 Const version of mat_iterator. More...
class  mat_ctg_iterator
class  const_mat_ctg_iterator
struct  ConstErrChkedRow
 The ConstErrChkedRow class. More...
struct  ErrChkedRow
 The ErrChkedRow class. More...
class  Mat
 The Mat matrix class. More...
class  Vec
 The Vec vector class. More...
struct  Int2Type
 The Int2Type class. More...
struct  Type2Type
 The Type2Type class. More...
struct  EnableIf_c
 The enable_if class family. More...
class  IsDerivedFrom
 The IsDerivedFrom class. More...
struct  ISSAMETYPE
 The ISSAMETYPE class. More...
struct  EQUAL
 Implements the == operation for int. More...
struct  NOT_EQUAL
 Implements the != operation for int. More...
struct  GREATER
 Implements the > operation for int. More...
struct  GREATER_EQUAL
 Implements the >= operation for int. More...
struct  LESS
 Implements the < operation for int. More...
struct  LESS_EQUAL
 Implements the <= operation for int. More...
struct  AND_bool
 Implements the && operation for bool. More...
struct  OR_bool
 Implements the || operation for bool. More...
struct  XOR_bool
 Implements the ^ operation for bool. More...
class  IF
 The IF class. More...
struct  WHILE
 While loop. More...
class  DO
 Do - while loop. More...
struct  EWHILE
 While loop (exec). More...
struct  EWHILE1
 While loop (exec). More...
class  MIN
 Static minimum of 2 int values. More...
class  MAX
 Static maximum of 2 int values. More...
struct  SQRT
 Square root of an int. More...
class  POW
 Raising a static variable m, to the power of a static number n. More...
class  IsPowOf2
struct  CompileTimeChecker
 The CompileTimeChecker class. More...
struct  CompileTimeChecker< false >
 The CompileTimeChecker<false> total specialization. More...
struct  Tag2UnaExp
 Expression tag to expression object. More...
struct  HasTagOf
 The class HasTagOf. More...
struct  NullTag
 NullTag. More...
struct  LinearMemTag
 LinearMemTag. More...
struct  DenseTag
 DenseTag. More...
struct  ScalarTag
 ScalarTag. More...
struct  SIMDTag
 SIMDTag. More...
struct  SSETag
 SSETag. More...
struct  SSE2Tag
 SSE2Tag. More...
struct  RowMajorTag
 RowMajorTag. More...
struct  ColMajorTag
 ColMajorTag. More...
struct  UnaExpTag
 UnaExpTag. More...
struct  BinExpTag
 BinExpTag. More...
struct  AddExpTag
 AddExpTag. More...
struct  SubExpTag
 SubExpTag. More...
struct  MulExpTag
 MulExpTag. More...
struct  ScalarMulExpTag
 ScalarMulExpTag. More...
struct  ScalarDivExpTag
 ScalarDivExpTag. More...
struct  ViewTag
 ViewTag. More...
struct  TransposeViewTag
 TransposeViewTag. More...
struct  DummyViewTag
 DummyViewTag. More...
struct  StaticSubVecViewTag
 StaticSubVecViewTag. More...
struct  DynSubVecViewTag
 DynSubVecViewTag. More...
struct  StaticSubMatViewTag
 StaticSubMatViewTag. More...
struct  DynSubMatViewTag
 DynSubMatViewTag. More...
struct  ReverseVecViewTag
 ReverseVecViewTag. More...
struct  ColViewTag
 ColViewTag. More...
struct  RowViewTag
 RowViewTag. More...
struct  StaticMinorViewTag
 StaticMinorViewTag. More...
struct  DynMinorViewTag
 DynMinorViewTag. More...
struct  CofactorsViewTag
 CofactorsViewTag. More...
struct  HMergeViewTag
 HMergeViewTag. More...
struct  TParamINT2
 TParamInt2 store 2 integer. More...
struct  TParamINT4
 TParamInt4 store 4 integer. More...
class  DummyView
 The DummyView class. More...
class  ConstDummyView
 The ConstDummyView class. More...
class  ReverseVecView
 The ReverseVecView class. More...
class  ConstReverseVecView
 The ConstReverseVecView class. More...
class  TransView
 The TransView class. More...
class  ConstTransView
 The ConstTransView class. More...
class  RowView
 The RowView class. More...
class  ConstRowView
 The ConstRowView class. More...
class  ColView
 The ColView class. More...
class  ConstColView
 The ConstColView class. More...
class  StaticSubVecView
 The StaticSubVecView class. More...
class  StaticConstSubVecView
 The StaticConstSubVecView class. More...
class  DynSubVecView
 The DynSubVecView class. More...
class  DynConstSubVecView
 The DynSubVecView class. More...
class  StaticSubMatView
 The StaticSubMatView class. More...
class  StaticConstSubMatView
 The StaticConstSubMatView class. More...
class  DynSubMatView
 The DynSubMatView class. More...
class  DynConstSubMatView
 The DynSubMatView class. More...
class  StaticMinorView
 The StaticMinorView class. More...
class  StaticConstMinorView
 The StaticConstMinorView class. More...
class  DynMinorView
 The DynMinorView class. More...
class  DynConstMinorView
 The DynMinorView class. More...
class  ConstCofactorsView
 The ConstCofactorsView class. More...
struct  RowReMapTag
 RowReMapTag. More...
class  RowReMapView
 The TransView class. More...
class  HMergeView
 The horizontal matrix merge view class. More...
class  ConstHMergeView
 The horizontal matrix merge view class. More...
class  UniformRand
 The uniform randomizer, using rand() in stdlib. More...

Namespaces

namespace  Math
 Namespace for math constants, mathematical and utility functions.
namespace  PNS
 Private namespace to hide the details from the user.
namespace  SIMD
 Namespace for SIMD related class, function etc...

Dispatcher functions for parseExp

template<class Exp, class Con, class ErrChk1, class ErrChk2, class ForceUseTmp>
static void parseExp_inner (Mat< Con, ErrChk1 > &mat, const Mat< Exp, ErrChk2 > &exp, Int2Type< 1+2 *0 >, ForceUseTmp)
 Unary root node specialization.
template<class Exp, class Con, class ErrChk1, class ErrChk2, class ForceUseTmp>
static void parseExp_inner (Mat< Con, ErrChk1 > &mat, const Mat< Exp, ErrChk2 > &exp, Int2Type< 0+2 *1 >, ForceUseTmp)
 Binary root node specialization.
template<class Exp, class Con, class ErrChk1, class ErrChk2, class ForceUseTmp>
static void parseExp_inner (Mat< Con, ErrChk1 > &mat, const Mat< Exp, ErrChk2 > &exp, Int2Type< 0+2 *0 >, ForceUseTmp)
 This function perform no analysis at all.

Vector functions

template<class L, class R, class ErrChk1, class ErrChk2>
static TypeTraits< typename
L::value_type, typename R::value_type
>::HigherValue 
dot (const Vec< L, ErrChk1 > &lv, const Vec< R, ErrChk2 > &rv)
 Compute the dot/inner product.
template<class Rep, class ErrChk>
static Rep::value_type norm (const Vec< Rep, ErrChk > &v)
 Vector norm function.
template<class Rep, class ErrChk>
static Rep::value_type norm2 (const Vec< Rep, ErrChk > &v)
 Squared norm.
template<class L, class R, class LErrChk, class RErrChk>
static const Vec< DenseColVecCon<
typename TypeTraits< typename
L::value_type, typename R::value_type
>::HigherValue, 3 >, typename
ResultantChecker< LErrChk,
RErrChk >::RET > 
cross (const Vec< L, LErrChk > &A, const Vec< R, RErrChk > &B)
 Vector cross product.

Enumerations

enum  { MAX_UROLLROW_NOP = 15, MAX_FULLUROLL_NOP = 200, MAX_MULDOTUROLL_ENOP = 12 }
 Level/condition for loop unrolling. More...

Functions

static void * AlignedMalloc (size_t size, size_t align)
 Memory allocation, aligned.
static void AlignedFree (void *p)
 Free the memory returned from AlignedMalloc.
static void * aligned_stack_allocate (size_t size)
 Allocate memory from the aligned stack.
static void aligned_stack_free ()
 Free memory from the aligned stack.
template<class Exp, class Con, class ErrChk1, class ErrChk2>
static void parseExp (Mat< Con, ErrChk1 > &mat, const Mat< Exp, ErrChk2 > &exp)
 The function that will preform assignment with temporary analysis.
template<class Rep, class ErrChecker>
static const Mat< ExpMat<
SubExp< ScalarCon< typename
Rep::value_type >, Rep > >,
ErrChecker > 
operator- (const Mat< Rep, ErrChecker > &mat)
 Negate operator.
template<class Rep, class ErrChecker>
static const Vec< ExpMat<
SubExp< ScalarCon< typename
Rep::value_type >, typename
Rep::rep_type > >, ErrChecker > 
operator- (const Vec< Rep, ErrChecker > &vec)
 Negate operator.
template<class Rep, class ErrChk>
static Mat< ExpMat< DummyView<
typename Rep::rep_type > >,
ErrChk > 
dummy (Mat< Rep, ErrChk > &mat)
template<class Rep, class ErrChk>
static Vec< ExpMat< DummyView<
typename Rep::rep_type > >,
ErrChk > 
dummy (Vec< Rep, ErrChk > &vec)
template<class Rep, class ErrChk, template< class Rep, class ErrChk > class RepT, template< class RepT > class MathClass>
static MathClass< RepT< ExpMat<
ConstDummyView< Rep > >,
ErrChk > > 
dummy (MathClass< RepT< Rep, ErrChk > > &vec)
template<class Rep, class ErrChk>
static const Mat< ExpMat<
ConstDummyView< typename
Rep::rep_type > >, ErrChk > 
dummy (const Mat< Rep, ErrChk > &mat)
template<class Rep, class ErrChk>
static const Vec< ExpMat<
ConstDummyView< typename
Rep::rep_type > >, ErrChk > 
dummy (const Vec< Rep, ErrChk > &vec)
template<class Rep, class ErrChk, template< class Rep, class ErrChk > class RepT, template< class RepT > class MathClass>
static const MathClass< RepT<
ExpMat< ConstDummyView< Rep > >,
ErrChk > > 
dummy (const MathClass< RepT< Rep, ErrChk > > &vec)
template<class Rep, class ErrChk>
static Vec< ExpMat< ReverseVecView<
typename Rep::rep_type > >,
ErrChk > 
reverse (Vec< Rep, ErrChk > &vec)
template<class Rep, class ErrChk>
static const Vec< ExpMat<
ConstReverseVecView< typename
Rep::rep_type > >, ErrChk > 
reverse (const Vec< Rep, ErrChk > &vec)
template<class Rep, class ErrChk>
static Mat< ExpMat< TransView<
typename Rep::rep_type > >,
ErrChk > 
trans (Mat< Rep, ErrChk > &mat)
template<class Rep, class ErrChk>
static Vec< ExpMat< TransView<
typename Rep::rep_type > >,
ErrChk > 
trans (Vec< Rep, ErrChk > &vec)
template<class Rep, class ErrChk, template< class Rep, class ErrChk > class RepT, template< class RepT > class MathClass>
static MathClass< RepT< ExpMat<
ConstTransView< Rep > >,
ErrChk > > 
trans (MathClass< RepT< Rep, ErrChk > > &vec)
template<class Rep, class ErrChk>
static const Mat< ExpMat<
ConstTransView< typename
Rep::rep_type > >, ErrChk > 
trans (const Mat< Rep, ErrChk > &mat)
template<class Rep, class ErrChk>
static const Vec< ExpMat<
ConstTransView< typename
Rep::rep_type > >, ErrChk > 
trans (const Vec< Rep, ErrChk > &vec)
template<class Rep, class ErrChk, template< class Rep, class ErrChk > class RepT, template< class RepT > class MathClass>
static const MathClass< RepT<
ExpMat< ConstTransView< Rep > >,
ErrChk > > 
trans (const MathClass< RepT< Rep, ErrChk > > &vec)
template<class Rep, class ErrChk>
static Vec< ExpMat< RowView<
typename Rep::rep_type > >,
ErrChk > 
row (Mat< Rep, ErrChk > &mat, typename Mat< Rep, ErrChk >::index_type row)
template<class Rep, class ErrChk>
static const Vec< ExpMat<
ConstRowView< typename Rep::rep_type > >,
ErrChk > 
row (const Mat< Rep, ErrChk > &mat, typename Mat< Rep, ErrChk >::index_type row)
template<class Rep, class ErrChk>
static Vec< ExpMat< ColView<
typename Rep::rep_type > >,
ErrChk > 
col (Mat< Rep, ErrChk > &mat, typename Mat< Rep, ErrChk >::index_type col)
template<class Rep, class ErrChk>
static const Vec< ExpMat<
ConstColView< typename Rep::rep_type > >,
ErrChk > 
col (const Mat< Rep, ErrChk > &mat, typename Mat< Rep, ErrChk >::index_type col)
template<class Rep, class ErrChk, int BEGIN, int SIZE>
static Vec< ExpMat< StaticSubVecView<
Rep, TParamINT2< BEGIN, SIZE > > >,
ErrChk > 
subVec (Vec< Rep, ErrChk > &vec, Int2Type< BEGIN >, Int2Type< SIZE >)
template<class Rep, class ErrChk, int BEGIN, int SIZE>
static const Vec< ExpMat<
StaticConstSubVecView< Rep,
TParamINT2< BEGIN, SIZE > > >,
ErrChk > 
subVec (const Vec< Rep, ErrChk > &vec, Int2Type< BEGIN >, Int2Type< SIZE >)
template<class Rep, class ErrChk>
static Vec< ExpMat< DynSubVecView<
Rep > >, ErrChk > 
subVec (Vec< Rep, ErrChk > &vec, size_t begin, size_t size)
template<class Rep, class ErrChk>
static const Vec< ExpMat<
DynConstSubVecView< Rep > >,
ErrChk > 
subVec (const Vec< Rep, ErrChk > &vec, size_t begin, size_t size)
template<class Rep, class ErrChk, int TOP, int LEFT, int RS, int CS>
static Mat< ExpMat< StaticSubMatView<
Rep, TParamINT4< TOP, LEFT,
RS, CS > > >, ErrChk > 
subMat (Mat< Rep, ErrChk > &mat, Int2Type< TOP >, Int2Type< LEFT >, Int2Type< RS >, Int2Type< CS >)
template<class Rep, class ErrChk, int TOP, int LEFT, int RS, int CS>
static const Mat< ExpMat<
StaticConstSubMatView< Rep,
TParamINT4< TOP, LEFT, RS,
CS > > >, ErrChk > 
subMat (const Mat< Rep, ErrChk > &mat, Int2Type< TOP >, Int2Type< LEFT >, Int2Type< RS >, Int2Type< CS >)
template<class Rep, class ErrChk>
static Mat< ExpMat< DynSubMatView<
Rep > >, ErrChk > 
subMat (Mat< Rep, ErrChk > &mat, size_t top, size_t left, size_t rs, size_t cs)
template<class Rep, class ErrChk>
static const Mat< ExpMat<
DynConstSubMatView< Rep > >,
ErrChk > 
subMat (const Mat< Rep, ErrChk > &mat, size_t top, size_t left, size_t rs, size_t cs)
template<class Rep, class ErrChk, int MI, int MJ>
static Mat< ExpMat< StaticMinorView<
Rep, TParamINT2< MI, MJ > > >,
ErrChk > 
minor (Mat< Rep, ErrChk > &mat, Int2Type< MI >, Int2Type< MJ >)
template<class Rep, class ErrChk, int MI, int MJ>
static const Mat< ExpMat<
StaticConstMinorView< Rep,
TParamINT2< MI, MJ > > >,
ErrChk > 
minor (const Mat< Rep, ErrChk > &mat, Int2Type< MI >, Int2Type< MJ >)
template<class Rep, class ErrChk>
static Mat< ExpMat< DynMinorView<
Rep > >, ErrChk > 
minor (Mat< Rep, ErrChk > &mat, size_t i, size_t j)
template<class Rep, class ErrChk>
static const Mat< ExpMat<
DynConstMinorView< Rep > >,
ErrChk > 
minor (const Mat< Rep, ErrChk > &mat, size_t i, size_t j)
template<class Rep, class ErrChk>
static const Mat< ExpMat<
ConstCofactorsView< Rep > >,
ErrChk > 
cofactors (const Mat< Rep, ErrChk > &mat)
template<class Rep, class ErrChk>
static const Mat< ExpMat<
ConstTransView< ConstCofactorsView<
typename Rep::rep_type > > >,
ErrChk > 
adjoint (const Mat< Rep, ErrChk > &mat)
template<class Rep1, class ErrChk1, class Rep2, class ErrChk2>
static Mat< ExpMat< HMergeView<
typename Rep1::rep_type,
typename Rep2::rep_type > >,
DefaultErrorChecker
hMerge (Mat< Rep1, ErrChk1 > &mat1, Mat< Rep2, ErrChk2 > &mat2)
template<class Rep1, class ErrChk1, class Rep2, class ErrChk2>
static const Mat< ExpMat<
ConstHMergeView< typename
Rep1::rep_type, typename Rep2::rep_type > >,
DefaultErrorChecker
hMerge (const Mat< Rep1, ErrChk1 > &mat1, const Mat< Rep2, ErrChk2 > &mat2)
template<class Rep, class ErrChk>
static EXMAT_INLINE2 Rep::value_type determinant (const Mat< Rep, ErrChk > &m)
template<class Rep, class ErrChk, class RAN>
void randomize (Mat< Rep, ErrChk > &mat, const RAN &ran)
 Randomize the elements inside the matrix using a random number generator class having a cast operator.


Detailed Description

Namespace which wrap the whole library.

Enumeration Type Documentation

anonymous enum
 

Level/condition for loop unrolling.

Enumerator:
MAX_UROLLROW_NOP  No. of floating point operations to be allowed when unrolling a row.
MAX_FULLUROLL_NOP  No. of floating point operations to be allowed when unrolling the whole matrix.
MAX_MULDOTUROLL_ENOP  No. of floating point operations to be allowed when unrolling vector dot operation in mat mul


Generated on Sat May 6 23:12:04 2006 for Exmat by  doxygen 1.4.6-NO