Geant4 Cross Reference |
1 // -*- C++ -*- 1 // -*- C++ -*- >> 2 // $Id:$ 2 // ------------------------------------------- 3 // ---------------------------------------------------------------------- 3 4 4 #include "CLHEP/Evaluator/Evaluator.h" 5 #include "CLHEP/Evaluator/Evaluator.h" 5 6 6 #include <cmath> // for sqrt and pow 7 #include <cmath> // for sqrt and pow 7 8 >> 9 using namespace std; >> 10 8 static double eval_abs (double a) { 11 static double eval_abs (double a) { return (a < 0) ? -a : a; } 9 static double eval_min (double a, double b) { 12 static double eval_min (double a, double b) { return (a < b) ? a : b; } 10 static double eval_max (double a, double b) { 13 static double eval_max (double a, double b) { return (a > b) ? a : b; } 11 static double eval_sqrt (double a) { << 14 static double eval_sqrt (double a) { return sqrt(a); } 12 static double eval_pow (double a, double b) { << 15 static double eval_pow (double a, double b) { return pow(a,b); } 13 static double eval_sin (double a) { << 16 static double eval_sin (double a) { return sin(a); } 14 static double eval_cos (double a) { << 17 static double eval_cos (double a) { return cos(a); } 15 static double eval_tan (double a) { << 18 static double eval_tan (double a) { return tan(a); } 16 static double eval_asin (double a) { << 19 static double eval_asin (double a) { return asin(a); } 17 static double eval_acos (double a) { << 20 static double eval_acos (double a) { return acos(a); } 18 static double eval_atan (double a) { << 21 static double eval_atan (double a) { return atan(a); } 19 static double eval_atan2(double a, double b) { << 22 static double eval_atan2(double a, double b) { return atan2(a,b); } 20 static double eval_sinh (double a) { << 23 static double eval_sinh (double a) { return sinh(a); } 21 static double eval_cosh (double a) { << 24 static double eval_cosh (double a) { return cosh(a); } 22 static double eval_tanh (double a) { << 25 static double eval_tanh (double a) { return tanh(a); } 23 static double eval_exp (double a) { << 26 static double eval_exp (double a) { return exp(a); } 24 static double eval_log (double a) { << 27 static double eval_log (double a) { return log(a); } 25 static double eval_log10(double a) { << 28 static double eval_log10(double a) { return log10(a); } 26 29 27 namespace HepTool { 30 namespace HepTool { 28 31 29 void Evaluator::setStdMath() { 32 void Evaluator::setStdMath() { 30 33 31 // S E T S T A N D A R D C O N S T A N 34 // S E T S T A N D A R D C O N S T A N T S 32 35 33 setVariable("pi", 3.14159265358979323846 36 setVariable("pi", 3.14159265358979323846); 34 setVariable("e", 2.7182818284590452354) 37 setVariable("e", 2.7182818284590452354); 35 setVariable("gamma", 0.577215664901532861); 38 setVariable("gamma", 0.577215664901532861); 36 setVariable("radian", 1.0); 39 setVariable("radian", 1.0); 37 setVariable("rad", 1.0); 40 setVariable("rad", 1.0); 38 setVariable("degree", 3.14159265358979323846 41 setVariable("degree", 3.14159265358979323846/180.); 39 setVariable("deg", 3.14159265358979323846 42 setVariable("deg", 3.14159265358979323846/180.); 40 43 41 // S E T S T A N D A R D F U N C T I O 44 // S E T S T A N D A R D F U N C T I O N S 42 45 43 setFunction("abs", eval_abs); 46 setFunction("abs", eval_abs); 44 setFunction("min", eval_min); 47 setFunction("min", eval_min); 45 setFunction("max", eval_max); 48 setFunction("max", eval_max); 46 setFunction("sqrt", eval_sqrt); 49 setFunction("sqrt", eval_sqrt); 47 setFunction("pow", eval_pow); 50 setFunction("pow", eval_pow); 48 setFunction("sin", eval_sin); 51 setFunction("sin", eval_sin); 49 setFunction("cos", eval_cos); 52 setFunction("cos", eval_cos); 50 setFunction("tan", eval_tan); 53 setFunction("tan", eval_tan); 51 setFunction("asin", eval_asin); 54 setFunction("asin", eval_asin); 52 setFunction("acos", eval_acos); 55 setFunction("acos", eval_acos); 53 setFunction("atan", eval_atan); 56 setFunction("atan", eval_atan); 54 setFunction("atan2", eval_atan2); 57 setFunction("atan2", eval_atan2); 55 setFunction("sinh", eval_sinh); 58 setFunction("sinh", eval_sinh); 56 setFunction("cosh", eval_cosh); 59 setFunction("cosh", eval_cosh); 57 setFunction("tanh", eval_tanh); 60 setFunction("tanh", eval_tanh); 58 setFunction("exp", eval_exp); 61 setFunction("exp", eval_exp); 59 setFunction("log", eval_log); 62 setFunction("log", eval_log); 60 setFunction("log10", eval_log10); 63 setFunction("log10", eval_log10); 61 } 64 } 62 65 63 } // namespace HepTool 66 } // namespace HepTool 64 67