|
template<typename G > |
| AnalyticalConcatenation (AnalyticalF< D, T, S > &f, G g, unsigned targetDim=1) |
| concatenate functor f and some lambda expression g.
|
|
| AnalyticalConcatenation (AnalyticalF< D, T, S > &f, U(*g)(T)) |
| concatenate functor f and some function g.
|
|
template<typename wrapped_U > |
| AnalyticalConcatenation (AnalyticalF< D, T, S > &f, wrapped_U(*g)(T *), unsigned targetDim=1) |
| concatenate functor f and some function g.
|
|
template<typename wrapped_U > |
| AnalyticalConcatenation (AnalyticalF< D, T, S > &f, wrapped_U(*g)(const T *), unsigned targetDim=1) |
| concatenate functor f and some function g.
|
|
bool | operator() (U output[], const S x[]) override |
|
AnalyticalF< D, U, S > & | operator- (AnalyticalF< D, U, S > &rhs) |
|
AnalyticalF< D, U, S > & | operator+ (AnalyticalF< D, U, S > &rhs) |
|
AnalyticalF< D, U, S > & | operator* (AnalyticalF< D, U, S > &rhs) |
|
AnalyticalF< D, U, S > & | operator/ (AnalyticalF< D, U, S > &rhs) |
|
virtual | ~GenericF ()=default |
|
int | getSourceDim () const |
| read only access to member variable _m
|
|
int | getTargetDim () const |
| read only access to member variable _n
|
|
std::string & | getName () |
| read and write access to name
|
|
std::string const & | getName () const |
| read only access to name
|
|
virtual bool | operator() (T output[], const S input[])=0 |
| has to be implemented for 'every' derived class
|
|
bool | operator() (T output[]) |
| wrapper that call the pure virtual operator() (T output[], const S input[]) from above
|
|
bool | operator() (T output[], S input0) |
|
bool | operator() (T output[], S input0, S input1) |
|
bool | operator() (T output[], S input0, S input1, S input2) |
|
bool | operator() (T output[], S input0, S input1, S input2, S input3) |
|
template<unsigned D, typename U, typename T, typename S, bool ComponentWise, bool ReturnArray>
class olb::AnalyticalConcatenation< D, U, T, S, ComponentWise, ReturnArray >
Definition at line 262 of file analyticalF.h.
template<unsigned D, typename U , typename T , typename S , bool ComponentWise, bool ReturnArray>
concatenate functor f and some function g.
g maps value to value (no pointer) and is applied component-wise
Definition at line 283 of file analyticalF.h.
284 : AnalyticalF<D,U,S>(f.getTargetDim()),
_f(f),
_g(g) {
285 static_assert(ComponentWise);
286 static_assert(! std::is_pointer_v<U>);
287 }
template<unsigned D, typename U , typename T , typename S , bool ComponentWise, bool ReturnArray>
template<typename wrapped_U >
concatenate functor f and some function g.
targetDim needs to be specified if g is vector (array)-valued
Definition at line 294 of file analyticalF.h.
296 : AnalyticalF<D,U,S>(targetDim),
298 static_assert(! ComponentWise);
299 }
template<unsigned D, typename U , typename T , typename S , bool ComponentWise, bool ReturnArray>
template<typename wrapped_U >
concatenate functor f and some function g.
targetDim needs to be specified if g is vector (array)-valued
Definition at line 306 of file analyticalF.h.
308 : AnalyticalF<D,U,S>(targetDim),
310 static_assert(! ComponentWise);
311 }
template<unsigned D, typename U , typename T , typename S , bool ComponentWise, bool ReturnArray>
Definition at line 313 of file analyticalF.h.
313 {
314 T outputTmp[
_f.getTargetDim()];
316 if constexpr (ComponentWise) {
317 for (
int i = 0; i <
_f.getTargetDim(); ++i) {
318 output[i] =
_g(outputTmp[i]);
319 }
320 } else {
321 if constexpr (ReturnArray) {
323 const auto* outputTmp2 =
_g(outputTmp);
324 output[i] = outputTmp2[i];
325 }
326 } else {
327 output[0] =
_g(outputTmp);
328 }
329 }
330 return true;
331 }
int getTargetDim() const
read only access to member variable _n
References olb::AnalyticalConcatenation< D, U, T, S, ComponentWise, ReturnArray >::_f, olb::AnalyticalConcatenation< D, U, T, S, ComponentWise, ReturnArray >::_g, and olb::GenericF< T, S >::getTargetDim().