#ifndef TEST_MATH_BASIC_FUNCTIONS_HPP #define TEST_MATH_BASIC_FUNCTIONS_HPP #include #include namespace mathtest { using namespace boost; // to represent the c++03 math functions // c++0x math functions are commented out. template < double (*basic_function_ptr)(double) > struct basic_function_tag { typedef double result_type; result_type operator()(double d) const { return basic_function_ptr(d); } }; proto::terminal< basic_function_tag >::type const abs = {{}}; proto::terminal< basic_function_tag >::type const acos = {{}}; //proto::terminal< basic_function_tag >::type const acosh = {{}}; proto::terminal< basic_function_tag >::type const asin = {{}}; //proto::terminal< basic_function_tag >::type const asinh = {{}}; proto::terminal< basic_function_tag >::type const atan = {{}}; //proto::terminal< basic_function_tag >::type const atan2 = {{}}; //proto::terminal< basic_function_tag >::type const atanh = {{}}; //proto::terminal< basic_function_tag >::type const cbrt = {{}}; proto::terminal< basic_function_tag >::type const ceil = {{}}; //proto::terminal< basic_function_tag >::type const copysign = {{}}; proto::terminal< basic_function_tag >::type const cos = {{}}; proto::terminal< basic_function_tag >::type const cosh = {{}}; //proto::terminal< basic_function_tag >::type const erf = {{}}; //proto::terminal< basic_function_tag >::type const erfc = {{}}; proto::terminal< basic_function_tag >::type const exp = {{}}; //proto::terminal< basic_function_tag >::type const exp2 = {{}}; //proto::terminal< basic_function_tag >::type const expm1 = {{}}; proto::terminal< basic_function_tag >::type const fabs = {{}}; //proto::terminal< basic_function_tag >::type const fdim = {{}}; proto::terminal< basic_function_tag >::type const floor = {{}}; //proto::terminal< basic_function_tag >::type const fma = {{}}; //proto::terminal< basic_function_tag >::type const fmax = {{}}; //proto::terminal< basic_function_tag >::type const fmin = {{}}; //proto::terminal< basic_function_tag >::type const fmod = {{}}; //proto::terminal< basic_function_tag >::type const frexp = {{}}; //proto::terminal< basic_function_tag >::type const hypot = {{}}; //proto::terminal< basic_function_tag >::type const intilogb = {{}}; //proto::terminal< basic_function_tag >::type const ldexp = {{}}; //proto::terminal< basic_function_tag >::type const lgamma = {{}}; //proto::terminal< basic_function_tag >::type const longlongllrint = {{}}; //proto::terminal< basic_function_tag >::type const longlongllround = {{}}; proto::terminal< basic_function_tag >::type const log = {{}}; proto::terminal< basic_function_tag >::type const log10 = {{}}; //proto::terminal< basic_function_tag >::type const log1p = {{}}; //proto::terminal< basic_function_tag >::type const log2 = {{}}; //proto::terminal< basic_function_tag >::type const logb = {{}}; //proto::terminal< basic_function_tag >::type const longlrint = {{}}; //proto::terminal< basic_function_tag >::type const longlround = {{}}; //proto::terminal< basic_function_tag >::type const modf = {{}}; //proto::terminal< basic_function_tag >::type const nearbyint = {{}}; //proto::terminal< basic_function_tag >::type const nextafter = {{}}; //proto::terminal< basic_function_tag >::type const nexttoward = {{}}; //proto::terminal< basic_function_tag >::type const pow = {{}}; //proto::terminal< basic_function_tag >::type const remainder = {{}}; //proto::terminal< basic_function_tag >::type const remquo = {{}}; //proto::terminal< basic_function_tag >::type const rint = {{}}; //proto::terminal< basic_function_tag >::type const round = {{}}; //proto::terminal< basic_function_tag >::type const scalbln = {{}}; //proto::terminal< basic_function_tag >::type const scalbn = {{}}; proto::terminal< basic_function_tag >::type const sin = {{}}; proto::terminal< basic_function_tag >::type const sinh = {{}}; proto::terminal< basic_function_tag >::type const sqrt = {{}}; proto::terminal< basic_function_tag >::type const tan = {{}}; proto::terminal< basic_function_tag >::type const tanh = {{}}; //proto::terminal< basic_function_tag >::type const tgamma = {{}}; //proto::terminal< basic_function_tag >::type const trunc = {{}}; } #endif // TEST_MATH_BASIC_FUNCTIONS_HPP