MultiArg.h File Reference

The MultiArg1. More...

#include "Pooma/View.h"

Include dependency graph for MultiArg.h:

This graph shows which files directly or indirectly include this file:


Classes

struct  MultiArgView1< A1, Dom >
struct  MultiArgView2< A1, A2, Dom >
struct  MultiArgView3< A1, A2, A3, Dom >
struct  MultiArgView4< A1, A2, A3, A4, Dom >
struct  MultiArgView5< A1, A2, A3, A4, A5, Dom >
struct  MultiArgView6< A1, A2, A3, A4, A5, A6, Dom >
struct  MultiArgView7< A1, A2, A3, A4, A5, A6, A7, Dom >
struct  View1< MultiArg1< A1 >, Dom >
struct  View1< MultiArg2< A1, A2 >, Dom >
struct  View1< MultiArg3< A1, A2, A3 >, Dom >
struct  View1< MultiArg4< A1, A2, A3, A4 >, Dom >
struct  View1< MultiArg5< A1, A2, A3, A4, A5 >, Dom >
struct  View1< MultiArg6< A1, A2, A3, A4, A5, A6 >, Dom >
struct  View1< MultiArg7< A1, A2, A3, A4, A5, A6, A7 >, Dom >
struct  MultiArg1< A1 >
struct  MultiArg2< A1, A2 >
struct  MultiArg3< A1, A2, A3 >
struct  MultiArg4< A1, A2, A3, A4 >
struct  MultiArg5< A1, A2, A3, A4, A5 >
struct  MultiArg6< A1, A2, A3, A4, A5, A6 >
struct  MultiArg7< A1, A2, A3, A4, A5, A6, A7 >

Functions

template<class A1 , class Function >
void applyMultiArg (const MultiArg1< A1 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class Function >
void applyMultiArg (const MultiArg2< A1, A2 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class Function >
void applyMultiArg (const MultiArg3< A1, A2, A3 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class Function >
void applyMultiArg (const MultiArg4< A1, A2, A3, A4 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class Function >
void applyMultiArg (const MultiArg5< A1, A2, A3, A4, A5 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class Function >
void applyMultiArg (const MultiArg6< A1, A2, A3, A4, A5, A6 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class A7 , class Function >
void applyMultiArg (const MultiArg7< A1, A2, A3, A4, A5, A6, A7 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class Function >
void applyMultiArg (const MultiArg1< A1 > &node, const Function &f)
template<class A1 , class A2 , class Function >
void applyMultiArg (const MultiArg2< A1, A2 > &node, const Function &f)
template<class A1 , class A2 , class A3 , class Function >
void applyMultiArg (const MultiArg3< A1, A2, A3 > &node, const Function &f)
template<class A1 , class A2 , class A3 , class A4 , class Function >
void applyMultiArg (const MultiArg4< A1, A2, A3, A4 > &node, const Function &f)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class Function >
void applyMultiArg (const MultiArg5< A1, A2, A3, A4, A5 > &node, const Function &f)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class Function >
void applyMultiArg (const MultiArg6< A1, A2, A3, A4, A5, A6 > &node, const Function &f)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class A7 , class Function >
void applyMultiArg (const MultiArg7< A1, A2, A3, A4, A5, A6, A7 > &node, const Function &f)
template<class A1 , class Function >
void applyMultiArgIf (const MultiArg1< A1 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class Function >
void applyMultiArgIf (const MultiArg2< A1, A2 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class Function >
void applyMultiArgIf (const MultiArg3< A1, A2, A3 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class Function >
void applyMultiArgIf (const MultiArg4< A1, A2, A3, A4 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class Function >
void applyMultiArgIf (const MultiArg5< A1, A2, A3, A4, A5 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class Function >
void applyMultiArgIf (const MultiArg6< A1, A2, A3, A4, A5, A6 > &node, const Function &f, const std::vector< bool > &condition)
template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class A7 , class Function >
void applyMultiArgIf (const MultiArg7< A1, A2, A3, A4, A5, A6, A7 > &node, const Function &f, const std::vector< bool > &condition)

Detailed Description

The MultiArg1.

..N classes are intended to be used to wrap multiple arrays, fields, or particles where a common set of operations need to be performed on the set.

Typical operations would be: taking views, getting locks, performing intersections.

It would be nicer in some sense to have an inhomogenous container with common interfaces through a base class. That approach would avoid the following huge number of MultiArg classes. The difficulty arises in extracting the arrays at the end and handing them off to a function. To extract the arrays requires knowing their types, requiring you to know the complete signature of the function you are calling. At that point, you've already accumulated all the type information in something at least as complicated as the MultiArg<> classes here.


Function Documentation

template<class A1 , class Function >
void applyMultiArg ( const MultiArg1< A1 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class Function >
void applyMultiArg ( const MultiArg2< A1, A2 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class Function >
void applyMultiArg ( const MultiArg3< A1, A2, A3 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class Function >
void applyMultiArg ( const MultiArg4< A1, A2, A3, A4 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class Function >
void applyMultiArg ( const MultiArg5< A1, A2, A3, A4, A5 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class Function >
void applyMultiArg ( const MultiArg6< A1, A2, A3, A4, A5, A6 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class A7 , class Function >
void applyMultiArg ( const MultiArg7< A1, A2, A3, A4, A5, A6, A7 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class Function >
void applyMultiArg ( const MultiArg1< A1 > &  node,
const Function &  f 
) [inline]

References MultiArg1< A1 >::a1_m.

template<class A1 , class A2 , class Function >
void applyMultiArg ( const MultiArg2< A1, A2 > &  node,
const Function &  f 
) [inline]

template<class A1 , class A2 , class A3 , class Function >
void applyMultiArg ( const MultiArg3< A1, A2, A3 > &  node,
const Function &  f 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class Function >
void applyMultiArg ( const MultiArg4< A1, A2, A3, A4 > &  node,
const Function &  f 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class Function >
void applyMultiArg ( const MultiArg5< A1, A2, A3, A4, A5 > &  node,
const Function &  f 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class Function >
void applyMultiArg ( const MultiArg6< A1, A2, A3, A4, A5, A6 > &  node,
const Function &  f 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class A7 , class Function >
void applyMultiArg ( const MultiArg7< A1, A2, A3, A4, A5, A6, A7 > &  node,
const Function &  f 
) [inline]

template<class A1 , class Function >
void applyMultiArgIf ( const MultiArg1< A1 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class Function >
void applyMultiArgIf ( const MultiArg2< A1, A2 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class Function >
void applyMultiArgIf ( const MultiArg3< A1, A2, A3 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class Function >
void applyMultiArgIf ( const MultiArg4< A1, A2, A3, A4 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class Function >
void applyMultiArgIf ( const MultiArg5< A1, A2, A3, A4, A5 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class Function >
void applyMultiArgIf ( const MultiArg6< A1, A2, A3, A4, A5, A6 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]

template<class A1 , class A2 , class A3 , class A4 , class A5 , class A6 , class A7 , class Function >
void applyMultiArgIf ( const MultiArg7< A1, A2, A3, A4, A5, A6, A7 > &  node,
const Function &  f,
const std::vector< bool > &  condition 
) [inline]


Generated on Wed Mar 16 06:18:03 2011 for FreePOOMA by  doxygen 1.5.9