CLHEP VERSION Reference Documentation
CLHEP Home Page CLHEP Documentation CLHEP Bug Reports |
00001 // -*- C++ -*- 00002 // $Id: setStdMath.cc,v 1.2 2003/08/13 20:00:10 garren Exp $ 00003 // ---------------------------------------------------------------------- 00004 00005 #include "CLHEP/Evaluator/defs.h" 00006 #include "CLHEP/Evaluator/Evaluator.h" 00007 00008 #include <cmath> // for sqrt and pow 00009 00010 static double eval_abs (double a) { return (a < 0) ? -a : a; } 00011 static double eval_min (double a, double b) { return (a < b) ? a : b; } 00012 static double eval_max (double a, double b) { return (a > b) ? a : b; } 00013 static double eval_sqrt (double a) { return std::sqrt(a); } 00014 static double eval_pow (double a, double b) { return std::pow(a,b); } 00015 static double eval_sin (double a) { return std::sin(a); } 00016 static double eval_cos (double a) { return std::cos(a); } 00017 static double eval_tan (double a) { return std::tan(a); } 00018 static double eval_asin (double a) { return std::asin(a); } 00019 static double eval_acos (double a) { return std::acos(a); } 00020 static double eval_atan (double a) { return std::atan(a); } 00021 static double eval_atan2(double a, double b) { return std::atan2(a,b); } 00022 static double eval_sinh (double a) { return std::sinh(a); } 00023 static double eval_cosh (double a) { return std::cosh(a); } 00024 static double eval_tanh (double a) { return std::tanh(a); } 00025 static double eval_exp (double a) { return std::exp(a); } 00026 static double eval_log (double a) { return std::log(a); } 00027 static double eval_log10(double a) { return std::log10(a); } 00028 00029 namespace HepTool { 00030 00031 void Evaluator::setStdMath() { 00032 00033 // S E T S T A N D A R D C O N S T A N T S 00034 00035 setVariable("pi", 3.14159265358979323846); 00036 setVariable("e", 2.7182818284590452354); 00037 setVariable("gamma", 0.577215664901532861); 00038 setVariable("radian", 1.0); 00039 setVariable("rad", 1.0); 00040 setVariable("degree", 3.14159265358979323846/180.); 00041 setVariable("deg", 3.14159265358979323846/180.); 00042 00043 // S E T S T A N D A R D F U N C T I O N S 00044 00045 setFunction("abs", eval_abs); 00046 setFunction("min", eval_min); 00047 setFunction("max", eval_max); 00048 setFunction("sqrt", eval_sqrt); 00049 setFunction("pow", eval_pow); 00050 setFunction("sin", eval_sin); 00051 setFunction("cos", eval_cos); 00052 setFunction("tan", eval_tan); 00053 setFunction("asin", eval_asin); 00054 setFunction("acos", eval_acos); 00055 setFunction("atan", eval_atan); 00056 setFunction("atan2", eval_atan2); 00057 setFunction("sinh", eval_sinh); 00058 setFunction("cosh", eval_cosh); 00059 setFunction("tanh", eval_tanh); 00060 setFunction("exp", eval_exp); 00061 setFunction("log", eval_log); 00062 setFunction("log10", eval_log10); 00063 } 00064 00065 } // namespace HepTool