This is the mail archive of the libc-help@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Interaction between rounding direction and trigonometric functions


Peter Eberlein,

Did you address some issues in the GLIBC bugzilla regarding rounding direction?

On Fri, Sep 5, 2008 at 12:29 PM, Roberto Bagnara <bagnara@cs.unipr.it> wrote:
>
> Hi there,
>
> I have the following observation:
>
> $ cat bug2.cc
> #include <fenv.h>
> #include <iostream>
> #include <cmath>
>
> int main() {
>  double theta = 5.27905511969922880410877041867934167385101318359375;
>
>  std::cout << "theta = " << theta << "\n";
>  std::cout << "sin(theta) = " << sin(theta) << "\n";
>  std::cout << "cos(theta) = " << cos(theta) << "\n";
>
>  std::cout << "Repeating after setting the rounding direction to UPWARD:"
>            << std::endl;
>
>  fesetround(FE_UPWARD);
>  std::cout << "theta = " << theta << "\n";
>  std::cout << "sin(theta) = " << sin(theta) << "\n";
>  std::cout << "cos(theta) = " << cos(theta) << "\n";
> }
> $ g++ -W -Wall bug2.cc
> $ a.out
> theta = 5.27906
> sin(theta) = -0.843695
> cos(theta) = 0.536822
> Repeating after setting the rounding direction to UPWARD:
> theta = 5.27906
> sin(theta) = -0.119458
> cos(theta) = 12.1636
> $
>
> This happens on a Fedora 7, x86_64  system, with glibc-2.6-4
> and GCC 4.3.2.
>
> As you see, after setting the rounding direction to UPWARD,
> the results are grossly wrong, to the point of cos() returning
> 12.1636.  I wonder if this is a bug or if I am using sin()
> and cos() outside their specification.  I have checked
> the glibc manual, but I did not find anything allowing to
> answer this question.
> All the best,
>
>   Roberto
>
> --
> Prof. Roberto Bagnara
> Computer Science Group
> Department of Mathematics, University of Parma, Italy
> http://www.cs.unipr.it/~bagnara/
> mailto:bagnara@cs.unipr.it
>
>
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]