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. On Fri, 17 Jan, 2020, 5:41 AM Damian Vicino via Boost, < boost@lists.boost.org> wrote:
That's because pi is not pi but an approximation of it. When you multiply you amplify the error.
On Thu, Jan 16, 2020, 18:48 anshu khare via Boost
wrote: Cos(pi/2) gives an exact zero. Cos(3*pi/2) gives a value less than €. But cos(7*pi/2) gives a large negative value which is not less than €.
Anshu
On Thu, 16 Jan, 2020, 11:29 PM John Maddock via Boost, < boost@lists.boost.org> wrote:
On 16/01/2020 15:08, anshu khare via Boost wrote:
cos(3*pi(cpp_bin_float_50>()/2)) does not give correct value.
What do you call "correct"? If you're expecting an exact 0 result,
then
you're going to be disappointed - likewise with double which also does not yield an exact 0 in your test case (at least on msvc).
John.
Only cos(pi(cpp_bin_float_50>()/2)) gives correct value. All odd multiples of cos(pi/2) do not give correct value.
The issue with sin() as well.
Anshu
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost