#include #include #include #include using std::vector; InProd::InProd () : ScalarFunc ("inprod", 2) { } double InProd::eval (vector const &args) const { double const *arg1 = args[0]->value (); double const *arg2 = args[1]->value (); long len = args[0]->length (); double svalue = 0; for (long i = 0; i < len; i++) { svalue += arg1[i] * arg2[i]; } return svalue; } bool InProd::checkParameterDim (vector const &args) const { return (args[0]->dim(true) == args[1]->dim(true)); } bool InProd::isDiscreteValued(std::vector const &args) const { return (args[0]->isDiscreteValued() && args[1]->isDiscreteValued()); }