test_cmath_tricky.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 389 行 · 第 1/2 页

CPP
389
字号
//  (C) Copyright John Maddock 2008.//  Use, modification and distribution are subject to the//  Boost Software License, Version 1.0. (See accompanying file//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)// These are the headers included by the Boost.TR1 implementation,// by including these directly we probe for problems with cyclic// dependencies when the TR1 headers are in the include search path.#ifdef TEST_STD_HEADERS#include <cmath>#else#include <boost/tr1/cmath.hpp>#endif#include "verify_return.hpp"int main(int argc, const char* []){   if(argc > 500)   {      float f = 0;      double d = 0;      long double ld = 0;      unsigned ui = 0;      int i = 0;      long int li = 0;      bool b = false;      const char* nan_str = "";#ifdef BOOST_HAS_LONG_LONG      long long lli = 0;#endif      verify_return_type((std::tr1::acosh)(d), d);      verify_return_type((std::tr1::acosh)(f), f);      verify_return_type((std::tr1::acosh)(ld), ld);      verify_return_type((std::tr1::acoshf)(f), f);      verify_return_type((std::tr1::acoshl)(ld), ld);      verify_return_type((std::tr1::asinh)(d), d);      verify_return_type((std::tr1::asinh)(f), f);      verify_return_type((std::tr1::asinh)(ld), ld);      verify_return_type((std::tr1::asinhf)(f), f);      verify_return_type((std::tr1::asinhl)(ld), ld);      verify_return_type((std::tr1::atanh)(d), d);      verify_return_type((std::tr1::atanh)(f), f);      verify_return_type((std::tr1::atanh)(ld), ld);      verify_return_type((std::tr1::atanhf)(f), f);      verify_return_type((std::tr1::atanhl)(ld), ld);      verify_return_type((std::tr1::cbrt)(d), d);      verify_return_type((std::tr1::cbrt)(f), f);      verify_return_type((std::tr1::cbrt)(ld), ld);      verify_return_type((std::tr1::cbrtf)(f), f);      verify_return_type((std::tr1::cbrtl)(ld), ld);      verify_return_type((std::tr1::copysign)(d, d), d);      verify_return_type((std::tr1::copysign)(f, f), f);      verify_return_type((std::tr1::copysign)(ld, ld), ld);      verify_return_type((std::tr1::copysignf)(f, f), f);      verify_return_type((std::tr1::copysignl)(ld, ld), ld);      verify_return_type((std::tr1::erf)(d), d);      verify_return_type((std::tr1::erf)(f), f);      verify_return_type((std::tr1::erf)(ld), ld);      verify_return_type((std::tr1::erff)(f), f);      verify_return_type((std::tr1::erfl)(ld), ld);      verify_return_type((std::tr1::erfc)(d), d);      verify_return_type((std::tr1::erfc)(f), f);      verify_return_type((std::tr1::erfc)(ld), ld);      verify_return_type((std::tr1::erfcf)(f), f);      verify_return_type((std::tr1::erfcl)(ld), ld);      verify_return_type((std::tr1::exp2)(d), d);      verify_return_type((std::tr1::exp2)(f), f);      verify_return_type((std::tr1::exp2)(ld), ld);      verify_return_type((std::tr1::exp2f)(f), f);      verify_return_type((std::tr1::exp2l)(ld), ld);      verify_return_type((std::tr1::expm1)(d), d);      verify_return_type((std::tr1::expm1)(f), f);      verify_return_type((std::tr1::expm1)(ld), ld);      verify_return_type((std::tr1::expm1f)(f), f);      verify_return_type((std::tr1::expm1l)(ld), ld);      verify_return_type((std::tr1::fdim)(d, d), d);      verify_return_type((std::tr1::fdim)(f, f), f);      verify_return_type((std::tr1::fdim)(ld, ld), ld);      verify_return_type((std::tr1::fdimf)(f, f), f);      verify_return_type((std::tr1::fdiml)(ld, ld), ld);      verify_return_type((std::tr1::fma)(d, d, d), d);      verify_return_type((std::tr1::fma)(f, f, f), f);      verify_return_type((std::tr1::fma)(ld, ld, ld), ld);      verify_return_type((std::tr1::fmaf)(f, f, f), f);      verify_return_type((std::tr1::fmal)(ld, ld, ld), ld);      verify_return_type((std::tr1::fmax)(d, d), d);      verify_return_type((std::tr1::fmax)(f, f), f);      verify_return_type((std::tr1::fmax)(ld, ld), ld);      verify_return_type((std::tr1::fmaxf)(f, f), f);      verify_return_type((std::tr1::fmaxl)(ld, ld), ld);      verify_return_type((std::tr1::fmin)(d, d), d);      verify_return_type((std::tr1::fmin)(f, f), f);      verify_return_type((std::tr1::fmin)(ld, ld), ld);      verify_return_type((std::tr1::fminf)(f, f), f);      verify_return_type((std::tr1::fminl)(ld, ld), ld);      verify_return_type((std::tr1::hypot)(d, d), d);      verify_return_type((std::tr1::hypot)(f, f), f);      verify_return_type((std::tr1::hypot)(ld, ld), ld);      verify_return_type((std::tr1::hypotf)(f, f), f);      verify_return_type((std::tr1::hypotl)(ld, ld), ld);      verify_return_type((std::tr1::ilogb)(d), d);      verify_return_type((std::tr1::ilogb)(f), f);      verify_return_type((std::tr1::ilogb)(ld), ld);      verify_return_type((std::tr1::ilogbf)(f), f);      verify_return_type((std::tr1::ilogbl)(ld), ld);      verify_return_type((std::tr1::lgamma)(d), d);      verify_return_type((std::tr1::lgamma)(f), f);      verify_return_type((std::tr1::lgamma)(ld), ld);      verify_return_type((std::tr1::lgammaf)(f), f);      verify_return_type((std::tr1::lgammal)(ld), ld);      verify_return_type((std::tr1::llrint)(d), d);      verify_return_type((std::tr1::llrint)(f), f);      verify_return_type((std::tr1::llrint)(ld), ld);      verify_return_type((std::tr1::llrintf)(f), f);      verify_return_type((std::tr1::llrintl)(ld), ld);#ifdef BOOST_HAS_LONG_LONG      verify_return_type((std::tr1::llround)(d), lli);      verify_return_type((std::tr1::llround)(f), lli);      verify_return_type((std::tr1::llround)(ld), lli);      verify_return_type((std::tr1::llroundf)(f), lli);      verify_return_type((std::tr1::llroundl)(ld), lli);#endif      verify_return_type((std::tr1::log1p)(d), d);      verify_return_type((std::tr1::log1p)(f), f);      verify_return_type((std::tr1::log1p)(ld), ld);      verify_return_type((std::tr1::log1pf)(f), f);      verify_return_type((std::tr1::log1pl)(ld), ld);      verify_return_type((std::tr1::log2)(d), d);      verify_return_type((std::tr1::log2)(f), f);      verify_return_type((std::tr1::log2)(ld), ld);      verify_return_type((std::tr1::log2f)(f), f);      verify_return_type((std::tr1::log2l)(ld), ld);      verify_return_type((std::tr1::logb)(d), d);      verify_return_type((std::tr1::logb)(f), f);      verify_return_type((std::tr1::logb)(ld), ld);      verify_return_type((std::tr1::logbf)(f), f);      verify_return_type((std::tr1::logbl)(ld), ld);      verify_return_type((std::tr1::lrint)(d), d);      verify_return_type((std::tr1::lrint)(f), f);      verify_return_type((std::tr1::lrint)(ld), ld);      verify_return_type((std::tr1::lrintf)(f), f);      verify_return_type((std::tr1::lrintl)(ld), ld);      verify_return_type((std::tr1::lround)(d), li);      verify_return_type((std::tr1::lround)(f), li);      verify_return_type((std::tr1::lround)(ld), li);      verify_return_type((std::tr1::lroundf)(f), li);      verify_return_type((std::tr1::lroundl)(ld), li);      verify_return_type((std::tr1::nan)(nan_str), d);      verify_return_type((std::tr1::nanf)(nan_str), f);      verify_return_type((std::tr1::nanl)(nan_str), ld);      verify_return_type((std::tr1::nearbyint)(d), d);      verify_return_type((std::tr1::nearbyint)(f), f);      verify_return_type((std::tr1::nearbyint)(ld), ld);      verify_return_type((std::tr1::nearbyintf)(f), f);      verify_return_type((std::tr1::nearbyintl)(ld), ld);      verify_return_type((std::tr1::nextafter)(d, d), d);      verify_return_type((std::tr1::nextafter)(f, f), f);      verify_return_type((std::tr1::nextafter)(ld, ld), ld);      verify_return_type((std::tr1::nextafterf)(f, f), f);      verify_return_type((std::tr1::nextafterl)(ld, ld), ld);      verify_return_type((std::tr1::nexttoward)(d, ld), d);      verify_return_type((std::tr1::nexttoward)(f, ld), f);      verify_return_type((std::tr1::nexttoward)(ld, ld), ld);      verify_return_type((std::tr1::nexttowardf)(f, ld), f);      verify_return_type((std::tr1::nexttowardl)(ld, ld), ld);      verify_return_type((std::tr1::remainder)(d, d), d);      verify_return_type((std::tr1::remainder)(f, f), f);      verify_return_type((std::tr1::remainder)(ld, ld), ld);      verify_return_type((std::tr1::remainderf)(f, f), f);      verify_return_type((std::tr1::remainderl)(ld, ld), ld);      verify_return_type((std::tr1::remquo)(d, d, &i), d);      verify_return_type((std::tr1::remquo)(f, f, &i), f);      verify_return_type((std::tr1::remquo)(ld, ld, &i), ld);      verify_return_type((std::tr1::remquof)(f, f, &i), f);      verify_return_type((std::tr1::remquol)(ld, ld, &i), ld);      verify_return_type((std::tr1::rint)(d), d);      verify_return_type((std::tr1::rint)(f), f);      verify_return_type((std::tr1::rint)(ld), ld);      verify_return_type((std::tr1::rintf)(f), f);      verify_return_type((std::tr1::rintl)(ld), ld);      verify_return_type((std::tr1::round)(d), d);      verify_return_type((std::tr1::round)(f), f);      verify_return_type((std::tr1::round)(ld), ld);      verify_return_type((std::tr1::roundf)(f), f);      verify_return_type((std::tr1::roundl)(ld), ld);      verify_return_type((std::tr1::scalbln)(d, li), d);      verify_return_type((std::tr1::scalbln)(f, li), f);      verify_return_type((std::tr1::scalbln)(ld, li), ld);      verify_return_type((std::tr1::scalblnf)(f, li), f);      verify_return_type((std::tr1::scalblnl)(ld, li), ld);      verify_return_type((std::tr1::scalbn)(d, i), d);      verify_return_type((std::tr1::scalbn)(f, i), f);      verify_return_type((std::tr1::scalbn)(ld, i), ld);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?