Ticket #8733: math_fwd.hpp.patch

File math_fwd.hpp.patch, 1.7 KB (added by Mike Liang <mtliang@…>, 9 years ago)

simulate C99 math macros

  • boost/math/special_functions/math_fwd.hpp

     
    14021402
    14031403
    14041404
     1405#ifdef BOOST_MATH_TEST_MACRO
    14051406
     1407namespace boost { namespace math { namespace detail { namespace test {
     1408
     1409#ifdef fpclassify
     1410#undef fpclassify
     1411#endif
     1412#define fpclassify(x) (boost::math::detail::test::fpclassify(x))
     1413
     1414template <class T> inline int fpclassify BOOST_NO_MACRO_EXPAND(T x)
     1415{
     1416    return (std::fpclassify)(x);
     1417}
     1418
     1419#ifdef isfinite
     1420#undef isfinite
     1421#endif
     1422#define isfinite(x) (boost::math::detail::test::isfinite(x))
     1423
     1424template <class T> inline int isfinite BOOST_NO_MACRO_EXPAND(T x)
     1425{
     1426    return (std::isfinite)(x);
     1427}
     1428
     1429#ifdef isinf
     1430#undef isinf
     1431#endif
     1432#define isinf(x) (boost::math::detail::test::isinf(x))
     1433
     1434template <class T> inline int isinf BOOST_NO_MACRO_EXPAND(T x)
     1435{
     1436    return (std::isinf)(x);
     1437}
     1438
     1439#ifdef isnan
     1440#undef isnan
     1441#endif
     1442#define isnan(x) (boost::math::detail::test::isnan(x))
     1443
     1444template <class T> inline int isnan BOOST_NO_MACRO_EXPAND(T x)
     1445{
     1446    return (std::isnan)(x);
     1447}
     1448
     1449#ifdef isnormal
     1450#undef isnormal
     1451#endif
     1452#define isnormal(x) (boost::math::detail::test::isnormal(x))
     1453
     1454template <class T> inline int isnormal BOOST_NO_MACRO_EXPAND(T x)
     1455{
     1456    return (std::isnormal)(x);
     1457}
     1458
     1459#ifdef signbit
     1460#undef signbit
     1461#endif
     1462#define signbit(x) (boost::math::detail::test::signbit(x))
     1463
     1464template <class T> inline int signbit BOOST_NO_MACRO_EXPAND(T x)
     1465{
     1466    return (std::signbit)(x);
     1467}
     1468
     1469}}}}
     1470
     1471#endif // BOOST_MATH_TEST_MACRO
     1472
    14061473#endif // BOOST_MATH_SPECIAL_MATH_FWD_HPP
    14071474
    14081475