Boost logo

Boost :

From: John Maddock (jz.maddock_at_[hidden])
Date: 2020-01-17 09:59:04


On 17/01/2020 01:52, anshu khare via Boost wrote:
> On running cos(3*pi/2) , cos(5*pi/2) , cos(7*pi/2) , cos(9*pi/2) all give
> the same answer, which is less than epsilon except cos(7*pi/2) which gives
> a highly negative value.

Not seeing it, I'm running:

 Â Â  for (unsigned i = 3; i < 20; i += 2)
 Â Â  {
 Â Â Â Â Â  std::cout << std::setw(20) << i << std::setw(20) <<
ceil(fabs(cos(i *
boost::math::constants::half_pi<boost::multiprecision::cpp_bin_float_50>())
/
std::numeric_limits<boost::multiprecision::cpp_bin_float_50>::epsilon()))
<< std::endl;
 Â Â  }

Which gives:

 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  N                 abs error / epsilon

 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  3                   2
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5                   2
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  7                   2
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  9                   2
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  11                   6
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  13                  10
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  15                  10
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  17                   6
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  19                   6

And if I switch to testing type double I see:

 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  3                   1
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  5                   2
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  7                   2
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  9                   3
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  11                  12
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  13                   5
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  15                  13
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  17                   4
 Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â  19                  14

Best, John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk