00001
00002
00003
00004
00005 #include "CLHEP/Evaluator/Evaluator.h"
00006
00007 #include <cmath>
00008
00009 static double eval_abs (double a) { return (a < 0) ? -a : a; }
00010 static double eval_min (double a, double b) { return (a < b) ? a : b; }
00011 static double eval_max (double a, double b) { return (a > b) ? a : b; }
00012 static double eval_sqrt (double a) { return std::sqrt(a); }
00013 static double eval_pow (double a, double b) { return std::pow(a,b); }
00014 static double eval_sin (double a) { return std::sin(a); }
00015 static double eval_cos (double a) { return std::cos(a); }
00016 static double eval_tan (double a) { return std::tan(a); }
00017 static double eval_asin (double a) { return std::asin(a); }
00018 static double eval_acos (double a) { return std::acos(a); }
00019 static double eval_atan (double a) { return std::atan(a); }
00020 static double eval_atan2(double a, double b) { return std::atan2(a,b); }
00021 static double eval_sinh (double a) { return std::sinh(a); }
00022 static double eval_cosh (double a) { return std::cosh(a); }
00023 static double eval_tanh (double a) { return std::tanh(a); }
00024 static double eval_exp (double a) { return std::exp(a); }
00025 static double eval_log (double a) { return std::log(a); }
00026 static double eval_log10(double a) { return std::log10(a); }
00027
00028 namespace HepTool {
00029
00030 void Evaluator::setStdMath() {
00031
00032
00033
00034 setVariable("pi", 3.14159265358979323846);
00035 setVariable("e", 2.7182818284590452354);
00036 setVariable("gamma", 0.577215664901532861);
00037 setVariable("radian", 1.0);
00038 setVariable("rad", 1.0);
00039 setVariable("degree", 3.14159265358979323846/180.);
00040 setVariable("deg", 3.14159265358979323846/180.);
00041
00042
00043
00044 setFunction("abs", eval_abs);
00045 setFunction("min", eval_min);
00046 setFunction("max", eval_max);
00047 setFunction("sqrt", eval_sqrt);
00048 setFunction("pow", eval_pow);
00049 setFunction("sin", eval_sin);
00050 setFunction("cos", eval_cos);
00051 setFunction("tan", eval_tan);
00052 setFunction("asin", eval_asin);
00053 setFunction("acos", eval_acos);
00054 setFunction("atan", eval_atan);
00055 setFunction("atan2", eval_atan2);
00056 setFunction("sinh", eval_sinh);
00057 setFunction("cosh", eval_cosh);
00058 setFunction("tanh", eval_tanh);
00059 setFunction("exp", eval_exp);
00060 setFunction("log", eval_log);
00061 setFunction("log10", eval_log10);
00062 }
00063
00064 }