FreePOOMA  2.4.1
Public Member Functions | Static Public Member Functions | Public Attributes
ScalarCode< Function > Struct Template Reference

ScalarCode is a Stencil like operation that allows for more than one field to be operated on. More...

#include <ScalarCode.h>

List of all members.

Public Member Functions

 ScalarCode ()
 ScalarCode (const Function &function)
template<class LHS >
 ScalarCode (const ScalarCode< Function > &sc, const LHS &)
 Constructor to allow ScalarCode being used as RelationFunctor.
Evaluators

Evaluate the ScalarCode functor on the fields f1 to fN using the specified evaluation domain.

Note that views of the evaluation domain are taken of every field, so domains of the fields should be strictly conforming (in fact, passing views to these operators is a bug unless you really know what you are doing).

The evaluation domain defaults to the physical domain of the first field which should usually be (on of) the left hand side(s). If you want the functor to operate on a different domain use the operators with the explicit specified evaluation domain.

template<class F1 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom) const
template<class F1 >
void operator() (const F1 &f1) const
template<class F1 , class F2 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom, const F2 &f2) const
template<class F1 , class F2 >
void operator() (const F1 &f1, const F2 &f2) const
template<class F1 , class F2 , class F3 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom, const F2 &f2, const F3 &f3) const
template<class F1 , class F2 , class F3 >
void operator() (const F1 &f1, const F2 &f2, const F3 &f3) const
template<class F1 , class F2 , class F3 , class F4 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom, const F2 &f2, const F3 &f3, const F4 &f4) const
template<class F1 , class F2 , class F3 , class F4 >
void operator() (const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4) const
template<class F1 , class F2 , class F3 , class F4 , class F5 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5) const
template<class F1 , class F2 , class F3 , class F4 , class F5 >
void operator() (const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5) const
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6) const
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 >
void operator() (const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6) const
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 , class F7 >
void operator() (const F1 &f1, const Interval< F1::dimensions > &evalDom, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7) const
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 , class F7 >
void operator() (const F1 &f1, const F2 &f2, const F3 &f3, const F4 &f4, const F5 &f5, const F6 &f6, const F7 &f7) const

Static Public Member Functions

template<class F >
static bool checkValidity (const F &f, WrappedInt< false >)
template<class F >
static bool checkValidity (const F &f, WrappedInt< true >)

Public Attributes

Function function_m

Detailed Description

template<class Function>
struct ScalarCode< Function >

ScalarCode is a Stencil like operation that allows for more than one field to be operated on.

Generally the functor is a local (set of) function(s) which could be described as

(f1..fM) = op(fM+1..fN)

where fM+1 to fN are input fields read from and f1 to fM are output fields written to (this distinction nor its ordering is strictly required, but both will result in the least possible surprises).


Constructor & Destructor Documentation

template<class Function>
ScalarCode< Function >::ScalarCode ( ) [inline]
template<class Function>
ScalarCode< Function >::ScalarCode ( const Function &  function) [inline]
template<class Function>
template<class LHS >
ScalarCode< Function >::ScalarCode ( const ScalarCode< Function > &  sc,
const LHS &   
) [inline]

Constructor to allow ScalarCode being used as RelationFunctor.


Member Function Documentation

template<class Function>
template<class F >
static bool ScalarCode< Function >::checkValidity ( const F &  f,
WrappedInt< false >   
) [inline, static]
template<class Function>
template<class F >
static bool ScalarCode< Function >::checkValidity ( const F &  f,
WrappedInt< true >   
) [inline, static]
template<class Function>
template<class F1 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom 
) const [inline]
template<class Function>
template<class F1 >
void ScalarCode< Function >::operator() ( const F1 &  f1) const [inline]
template<class Function>
template<class F1 , class F2 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom,
const F2 &  f2 
) const [inline]
template<class Function>
template<class F1 , class F2 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const F2 &  f2 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom,
const F2 &  f2,
const F3 &  f3 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const F2 &  f2,
const F3 &  f3 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 , class F5 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 , class F5 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 , class F7 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const Interval< F1::dimensions > &  evalDom,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7 
) const [inline]
template<class Function>
template<class F1 , class F2 , class F3 , class F4 , class F5 , class F6 , class F7 >
void ScalarCode< Function >::operator() ( const F1 &  f1,
const F2 &  f2,
const F3 &  f3,
const F4 &  f4,
const F5 &  f5,
const F6 &  f6,
const F7 &  f7 
) const [inline]

Member Data Documentation

template<class Function>
Function ScalarCode< Function >::function_m

The documentation for this struct was generated from the following file: