12 _m(arg1->dimensionality()),
13 _n(arg2->dimensionality())
18 _arg1(right._arg1->clone()),
19 _arg2(right._arg2->clone()),
39 <<
"Warning: Direct product function/argument dimension mismatch"
44 for (
unsigned int i = 0; i<_m;i++) {
47 for (
unsigned int j = 0;j<_n;j++) {
50 return (*_arg1)(x1) * (*_arg2)(x2);
60 <<
"Warning. direct product called with scalar argument"
69 assert (index<(_m+_n));
FunctionDirectProduct(const AbsFunction *arg1, const AbsFunction *arg2)
virtual double operator()(double argument) const
virtual unsigned int dimensionality() const
virtual Derivative partial(unsigned int) const
virtual ~FunctionDirectProduct()
Derivative partial(unsigned int) const
unsigned int dimension() const
#define FUNCTION_OBJECT_IMP(classname)