Warning, file /include/CLHEP/GenericFunctions/SymToArgAdaptor.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #ifndef _SYMTOARGADAPTOR_
0024 #define _SYMTOARGADAPTOR_
0025 #include <functional>
0026 #include <iostream>
0027 #include <string>
0028 #include "CLHEP/GenericFunctions/Parameter.hh"
0029 #include "CLHEP/GenericFunctions/AbsFunction.hh"
0030
0031 namespace Genfun {
0032
0033 template <class F>
0034 class SymToArgAdaptor : public AbsFunction {
0035
0036 FUNCTION_OBJECT_DEF(SymToArgAdaptor)
0037
0038 public:
0039
0040
0041 typedef Parameter & (F::*ScopedMethodPtr) ();
0042
0043
0044 SymToArgAdaptor( F & function,
0045 const AbsFunction & f_expression,
0046 ScopedMethodPtr parameterFetchMethod,
0047 const AbsFunction * p_expression);
0048
0049
0050 SymToArgAdaptor(const SymToArgAdaptor &right);
0051
0052
0053 virtual ~SymToArgAdaptor();
0054
0055
0056 virtual double operator ()(double argument) const override;
0057 virtual double operator ()(const Argument & a) const override;
0058
0059
0060 virtual unsigned int dimensionality() const override;
0061
0062 private:
0063
0064
0065 const SymToArgAdaptor & operator=(const SymToArgAdaptor &right);
0066
0067
0068 F *_function;
0069
0070
0071 const AbsFunction *_f_expression;
0072
0073
0074 std::mem_fun_ref_t<Parameter &, F> _parameterFetchMethod;
0075
0076
0077 const AbsFunction *_p_expression;
0078
0079 };
0080 }
0081 #include "CLHEP/GenericFunctions/SymToArgAdaptor.icc"
0082 #endif
0083