COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
MatrixSubscript< GrammarT, IntegersT >::impl< ExprT, StateT, DataT > Struct Template Reference

#include <EigenTransforms.hpp>

Inherits transform_impl< ExprT, StateT, DataT >.

Classes

struct  MatrixRef
 
struct  MatrixRef< Eigen::Transpose< MatrixT > >
 

Public Types

typedef boost::proto::result_of::left< ExprT >::type LeftExprT
 
typedef boost::remove_reference< typename boost::result_of< GrammarT(LeftExprT, StateT, DataT)>::type >::type LeftT
 
typedef boost::proto::result_of::right< ExprT >::type IdxExprT
 
typedef boost::proto::matches< IdxExprT, boost::proto::terminal< IndexTag< boost::proto::_ > > > IsLoopingIdxT
 
typedef boost::mpl::if_< typename boost::is_const< LeftT >::type, Real, Real & >::type ScalarTypeT
 
typedef boost::mpl::if_c< is_vector, ScalarTypeT, typename LeftT::ConstRowXpr >::type subscript_result_type
 
typedef boost::mpl::and_< IsLoopingIdxT, boost::mpl::bool_< boost::remove_reference< DataT >::type::dimension==1 &&(LeftT::MaxRowsAtCompileTime > 1||LeftT::MaxColsAtCompileTime > 1)> >::type IgnoreLoopingT
 
typedef boost::mpl::if_< IgnoreLoopingT, typename boost::result_of< GrammarT(LeftExprT, StateT, DataT)>::type, subscript_result_type >::type result_type
 

Public Member Functions

template<typename MatrixT , typename IndexT >
ScalarTypeT do_eval (boost::mpl::true_, typename MatrixRef< MatrixT >::type matrix, const IndexT idx) const
 Static dispatch through 2 versions of do_eval, in order to avoid compile errors. More...
 
template<typename MatrixT , typename IndexT >
LeftT::ConstRowXpr do_eval (boost::mpl::false_, typename MatrixRef< MatrixT >::type matrix, const IndexT idx) const
 
template<typename MatrixT , typename IndexT >
result_type apply (boost::mpl::false_, typename MatrixRef< MatrixT >::type matrix, const IndexT idx) const
 
template<typename MatrixT , typename IndexT >
result_type apply (boost::mpl::true_, typename MatrixRef< MatrixT >::type matrix, const IndexT idx) const
 
result_type operator() (typename impl::expr_param expr, typename impl::state_param state, typename impl::data_param data) const
 

Static Public Attributes

static const bool is_vector = LeftT::IsVectorAtCompileTime
 

Detailed Description

template<typename GrammarT, typename IntegersT>
template<typename ExprT, typename StateT, typename DataT>
struct cf3::solver::actions::Proto::MatrixSubscript< GrammarT, IntegersT >::impl< ExprT, StateT, DataT >

Definition at line 341 of file EigenTransforms.hpp.

Member Typedef Documentation

typedef boost::proto::result_of::right<ExprT>::type IdxExprT

Definition at line 345 of file EigenTransforms.hpp.

typedef boost::mpl::and_<IsLoopingIdxT, boost::mpl::bool_<boost::remove_reference<DataT>::type::dimension == 1 && (LeftT::MaxRowsAtCompileTime > 1 || LeftT::MaxColsAtCompileTime > 1)> >::type IgnoreLoopingT

Definition at line 353 of file EigenTransforms.hpp.

typedef boost::proto::matches< IdxExprT, boost::proto::terminal< IndexTag<boost::proto::_> > > IsLoopingIdxT

Definition at line 348 of file EigenTransforms.hpp.

typedef boost::proto::result_of::left<ExprT>::type LeftExprT

Definition at line 343 of file EigenTransforms.hpp.

typedef boost::remove_reference<typename boost::result_of<GrammarT(LeftExprT, StateT, DataT)>::type>::type LeftT

Definition at line 344 of file EigenTransforms.hpp.

typedef boost::mpl::if_< IgnoreLoopingT, typename boost::result_of<GrammarT(LeftExprT, StateT, DataT)>::type, subscript_result_type >::type result_type

Definition at line 359 of file EigenTransforms.hpp.

typedef boost::mpl::if_<typename boost::is_const<LeftT>::type, Real, Real&>::type ScalarTypeT

Definition at line 351 of file EigenTransforms.hpp.

typedef boost::mpl::if_c<is_vector, ScalarTypeT, typename LeftT::ConstRowXpr>::type subscript_result_type

Definition at line 352 of file EigenTransforms.hpp.

Member Function Documentation

result_type apply ( boost::mpl::false_  ,
typename MatrixRef< MatrixT >::type  matrix,
const IndexT  idx 
) const
inline

Definition at line 387 of file EigenTransforms.hpp.

result_type apply ( boost::mpl::true_  ,
typename MatrixRef< MatrixT >::type  matrix,
const IndexT  idx 
) const
inline

Definition at line 393 of file EigenTransforms.hpp.

ScalarTypeT do_eval ( boost::mpl::true_  ,
typename MatrixRef< MatrixT >::type  matrix,
const IndexT  idx 
) const
inline

Static dispatch through 2 versions of do_eval, in order to avoid compile errors.

Definition at line 375 of file EigenTransforms.hpp.

LeftT::ConstRowXpr do_eval ( boost::mpl::false_  ,
typename MatrixRef< MatrixT >::type  matrix,
const IndexT  idx 
) const
inline

Definition at line 381 of file EigenTransforms.hpp.

result_type operator() ( typename impl< ExprT, StateT, DataT >::expr_param  expr,
typename impl< ExprT, StateT, DataT >::state_param  state,
typename impl< ExprT, StateT, DataT >::data_param  data 
) const
inline

Definition at line 398 of file EigenTransforms.hpp.

Member Data Documentation

const bool is_vector = LeftT::IsVectorAtCompileTime
static

Definition at line 350 of file EigenTransforms.hpp.


The documentation for this struct was generated from the following file:
Send comments to:
COOLFluiD Web Admin