exmat::TmpAnalyserUnaNode< Exp_, TmpList, TarConType, ForceUseTmp, IsRootNode, NeedTmp_ > Struct Template Reference

The TmpAnalyserUnaNode class. More...

#include <ExpTmp.h>

List of all members.

Public Types

typedef IF< IsRootNode==int(true), TarConType, typename
Exp::temp_type >::RET 
temp_type
 The container type of this temporary.
typedef IF< IsCLeaf, LeafeNode<
typename Exp::super_type >,
typename IF< IsCUna, TmpAnalyserUnaNode<
typename Exp::super_type,
TmpList, TarConType, ForceUseTmp >,
TmpAnalyserBinNode< typename
Exp::super_type, TmpList,
TarConType, ForceUseTmp
> >::RET >::RET 
child
 The child node.
typedef IF< NeedTmp_, temp_type,
Mat< typename RefillUnaExp<
typename Exp::rep_type, typename
child::node_exp::rep_type,
typename Exp::extra_param_type
>::RET, EmptyErrorChecker
> >::RET 
node_exp
typedef IF< NeedTmp_, CRed_list,
cTL >::RET 
tmp_list
 The temporary list computed down to this node from the root.
enum  {
  IsCBin = IsDerivedFrom<typename Exp::super_type , IsCUna = IsDerivedFrom<typename Exp::super_type , IsCLeaf = (!IsCBin && !IsCUna), CNeedTmp = false,
  IsDynamicTmp = (Exp::ROWS == 0) || (Exp::COLS == 0)
}

Static Public Member Functions

template<class Tag>
static void print (Tag)
 Print information, static debugging.
template<class TInst, class TargetCon, class TarConIndex>
static void ass_root (const Exp &exp, TInst &tmpInst, TargetCon &tCon, TarConIndex)
 The root function that will called directly from parseExp_inner.
getNodeObj
Create a node object

template<class TInst, class TargetCon, class TarConIndex>
static const node_expgetNodeObj (const Exp &exp, TInst &tmpInst, TargetCon &tCon, Int2Type< 0+2 *1 >, TarConIndex)
 Create an unary tmp node.
template<class TInst, class TargetCon, class TarConIndex>
static const node_exp getNodeObj (const Exp &exp, TInst &tmpInst, TargetCon &tCon, Int2Type< 0+2 *0 >, TarConIndex)
 Create an unary tmp node.


Detailed Description

template<class Exp_, class TmpList, class TarConType, class ForceUseTmp, int IsRootNode, bool NeedTmp_>
struct exmat::TmpAnalyserUnaNode< Exp_, TmpList, TarConType, ForceUseTmp, IsRootNode, NeedTmp_ >

The TmpAnalyserUnaNode class.

TmpAnalyserUnaNode is the main class that do the temporary analysis on an expression. It represent a unary node in the expression tree.


Member Typedef Documentation

template<class Exp_, class TmpList, class TarConType, class ForceUseTmp, int IsRootNode, bool NeedTmp_>
typedef IF< NeedTmp_, temp_type, Mat< typename RefillUnaExp< typename Exp::rep_type, typename child::node_exp::rep_type, typename Exp::extra_param_type >::RET, EmptyErrorChecker > >::RET exmat::TmpAnalyserUnaNode< Exp_, TmpList, TarConType, ForceUseTmp, IsRootNode, NeedTmp_ >::node_exp
 

The expression type of this node after analysis

Note:
Not applicable on leaf nodes


Member Enumeration Documentation

template<class Exp_, class TmpList, class TarConType, class ForceUseTmp, int IsRootNode, bool NeedTmp_>
anonymous enum
 

Enumerator:
IsCBin  Indicate the child node is a binary node.
IsCUna  Indicate the child node is an unary node.
IsCLeaf  Check the child node is a leaf node or not.
CNeedTmp  Compute child node need temporary or not.
IsDynamicTmp  Is the temp of this node dynamic?


The documentation for this struct was generated from the following file:
Generated on Sat May 6 23:12:04 2006 for Exmat by  doxygen 1.4.6-NO