OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
RNGAssignDefs.h
Go to the documentation of this file.
1// -*- C++ -*-
2/***************************************************************************
3 *
4 * The IPPL Framework
5 *
6 *
7 * Visit http://people.web.psi.ch/adelmann/ for more details
8 *
9 ***************************************************************************/
10
11#ifndef RNG_ASSIGN_DEFS_H
12#define RNG_ASSIGN_DEFS_H
13
14// include files
16#include "Field/AssignTags.h"
17
18
19// interactions for basic tags
20
22//
23// Evaluation functor.
24//
26
27template<class GT>
28inline typename SequenceGen<GT>::Return_t
30{
31 return p();
32}
33
35//
36// Count the elements in an expression.
37//
39
40template<class GT, class C>
41inline int
43{
44 // just return a code value
45 return -1;
46}
47
49//
50// Increment the pointers in an expression.
51//
53
54template<class GT, class C>
55inline int
57{
58 // just return (increment happens automatically after evaluation!)
59 return 0;
60}
61
62
63// Field-specific tag interactions
64
65
67//
68// Go to beginning of LField
69//
71
72template<class GT, class C>
73inline int
75{
76 // just return
77 return 0;
78}
79
81//
82// Go on to the next LField
83//
85
86template<class GT, class C>
87inline int
89{
90 // just return
91 return 0;
92}
93
94//
95// If there is an RNG in the expr, it can't have the same ID.
96//
97template<class GT, class C>
98inline bool
100{
101 return false;
102}
103
104//
105// for plugbase, just return true for RNG
106//
107template <unsigned D> struct PlugBase;
108
109template<class GT, class C, unsigned D>
110inline bool
112{
113 return true;
114}
115
116//
117// RNG objects are not compressed!
118//
119template<class GT, class C>
120inline bool
122{
123 return false;
124}
125
127//
128// Evaluation functors with arguments
129//
131
132template<class GT>
133inline typename SequenceGen<GT>::Return_t
135{
136 return p();
137}
138
139template<class GT>
140inline typename SequenceGen<GT>::Return_t
142{
143 return p();
144}
145
146template<class GT>
147inline typename SequenceGen<GT>::Return_t
149{
150 return p();
151}
152
153//
154// Does it have unit stride?
155// Not really a sensible question, but it is safe to say it does.
156//
157
158template<class GT, class C>
159inline bool
161{
162 return true;
163}
164
165//
166// RNG ignores step functor
167//
168template<class GT, class C>
169inline int
171{
172 return 0;
173}
174
175//
176// RNG ignores rewind functor
177//
178template<class GT, class C>
179inline int
181{
182 return 0;
183}
184
185// RNG ignores filling guard cells question
186template<class GT, class C, unsigned int D, class T1>
187inline int
190{
191 return 0;
192}
193
194
195#endif // RNG_ASSIGN_DEFS_H
196
197/***************************************************************************
198 * $RCSfile: RNGAssignDefs.h,v $ $Author: adelmann $
199 * $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:33 $
200 * IPPL_VERSION_ID: $Id: RNGAssignDefs.h,v 1.1.1.1 2003/01/23 07:40:33 adelmann Exp $
201 ***************************************************************************/
202
SequenceGen< GT >::Return_t for_each(const SequenceGen< GT > &p, EvalFunctor_0)
Definition: RNGAssignDefs.h:29
GT::Return_t Return_t
Definition: SequenceGen.h:89