1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#include <BALL/MATHS/parsedFunction.h>
namespace BALL
{
StringHashMap<double*> *ParsedFunctionConstants;
StringHashMap<double(*)(double)> *ParsedFunctionFunctions;
template <>
double ParsedFunction<float>::operator () (float argument)
{
double arg = argument;
constants_["X"] = &arg;
ParsedFunctionConstants = &constants_;
ParsedFunctionFunctions = &functions_;
ParsedFunction_initBuffer(expression_.c_str());
ParsedFunctionparse();
ParsedFunction_delBuffer();
return ParsedFunctionResult;
}
template <>
double ParsedFunction<double>::operator () (double argument)
{
double arg = argument;
constants_["X"] = &arg;
ParsedFunctionConstants = &constants_;
ParsedFunctionFunctions = &functions_;
ParsedFunction_initBuffer(expression_.c_str());
ParsedFunctionparse();
ParsedFunction_delBuffer();
return ParsedFunctionResult;
}
}
|