Issue #5497 has been updated by Yui NARUSE.


The Written Word Inc wrote:
> Yui NARUSE wrote:
> > The Written Word Inc wrote:
> > >   (ia64)
> > >      p Math.log10(10_000)
> > >      4
> > 
> > Show the result of `p 4.0`.
> 
> (ia64)
>   p 4.0
>   4.0

Hmm, it is strange but I don't have any idea.

> > >   (pa-risc)
> > >      p Math.log10(10_000)
> > >      3.9999999999999996
> > 
> > Build and run following C code:
> > 
> > % cat f.c
> > #include <math.h>
> > #include <stdio.h>
> > 
> > int main(void) {
> >   printf("%a\n", log10(10000));
> >   return 0;
> > }
> > %  gcc -lm f.c && ./a.out
> > 0x1p+2 (or something)
> 
> $ cat t.c
> #include <math.h>
> #include <stdio.h>
> 
> int main(void) {
>   printf("%f\n", log10(10000));
>   printf("%a\n", log10(10000));
>   return 0; 
> }
> 
> %a is only supported on HP-UX/IA systems, not HP-UX/PA. We're using the HP-UX C compiler to build Ruby as well.

OK, can you show a result without %a?
As BĂ­lka says, this is because it is floating point, but it can be fixed by some options to specify libm as IEEE 754 mode.
----------------------------------------
Bug #5497: Math.log10(10_000) error on HP-UX/PA
http://redmine.ruby-lang.org/issues/5497

Author: The Written Word Inc
Status: Open
Priority: Normal
Assignee: 
Category: core
Target version: 1.9.2
ruby -v: UNKNOWN


I've built 1.9.2 from svn revision at 33531 on HP-UX/PA and HP-UX/IA. I'm getting two different results for Math.log10(10_000) depending on IA64 and PA-RISC:
  (ia64)
     p Math.log10(10_000)
     4
  (pa-risc)
     p Math.log10(10_000)
     3.9999999999999996

Any idea where in the code I can look to try and fix this?


-- 
http://redmine.ruby-lang.org