2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-29 19:52:08 +00:00
Files
math/test/sinhc_test.hpp
John Maddock 22dce1381e Integrated existing Boost.Math special functions, updated them to meet our conceptual requirements, and use our error handlers.
Lots of warning suppression changes.
Added new tests to verify header includes (plus fixes where these new tests failed!).
Documentation updates.


[SVN r3575]
2006-12-29 18:27:29 +00:00

84 lines
2.1 KiB
C++

// unit test file sinhc.hpp for the special functions test suite
// (C) Copyright Hubert Holin 2003.
// Distributed under 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)
#include <functional>
#include <iomanip>
#include <iostream>
#include <complex>
#include <boost/math/special_functions/sinhc.hpp>
#include <boost/test/unit_test.hpp>
BOOST_TEST_CASE_TEMPLATE_FUNCTION(sinhc_pi_test, T)
{
using ::std::abs;
using ::std::numeric_limits;
using ::boost::math::sinhc_pi;
BOOST_MESSAGE("Testing sinhc_pi in the real domain for "
<< string_type_name<T>::_() << ".");
BOOST_CHECK_PREDICATE(::std::less_equal<T>(),
(abs(sinhc_pi<T>(static_cast<T>(0))-static_cast<T>(1)))
(numeric_limits<T>::epsilon()));
}
BOOST_TEST_CASE_TEMPLATE_FUNCTION(sinhc_pi_complex_test, T)
{
using ::std::abs;
using ::std::sin;
using ::std::numeric_limits;
using ::boost::math::sinhc_pi;
BOOST_MESSAGE("Testing sinhc_pi in the complex domain for "
<< string_type_name<T>::_() << ".");
BOOST_CHECK_PREDICATE(::std::less_equal<T>(),
(abs(sinhc_pi<T>(::std::complex<T>(0, 1))-
::std::complex<T>(sin(static_cast<T>(1)))))
(numeric_limits<T>::epsilon()));
}
void sinhc_pi_manual_check()
{
using ::boost::math::sinhc_pi;
BOOST_MESSAGE(" ");
BOOST_MESSAGE("sinc_pi");
for (int i = 0; i <= 100; i++)
{
BOOST_MESSAGE( ::std::setw(15)
<< sinhc_pi<float>(static_cast<float>(i-50)/
static_cast<float>(50))
<< ::std::setw(15)
<< sinhc_pi<double>(static_cast<double>(i-50)/
static_cast<double>(50))
<< ::std::setw(15)
<< sinhc_pi<long double>(static_cast<long double>(i-50)/
static_cast<long double>(50)));
}
BOOST_MESSAGE(" ");
}