Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #38429

Re: Has Android different floats?

From "bursejan" <bursejan@1:261/38.remove-i5b-this>
Newsgroups comp.lang.java.programmer
Subject Re: Has Android different floats?
Date 2018-06-24 16:08 -0500
Organization Agency News - Dunedin, New Zealand
Message-ID <5B329ADB.1168.ucljprogr@castlerockbbs.com> (permalink)
References <5B329ADB.1167.ucljprogr@castlerockbbs.com>

Show all headers | View raw


  To: Eric Sosman
From: "bursejan" <bursejan@1:261/38.remove-101j-this>

  To: Eric Sosman
From: bursejan@gmail.com

Yes, this seems to be the explanation, on the windows platform, Math.pow()
seems to get replaced by something else than StrictMath.pow().

With StrictMath.pow() (JDK 1.8, Windows):

   Math.pow(10,22)=1.0E22
   Math.pow(10,23)=9.999999999999999E22
   Math.pow(10,24)=1.0E24

With Math.pow() (JDK 1.8, Windows):

   Math.pow(10,22)=1.0E22
   Math.pow(10,23)=1.0000000000000001E23
   Math.pow(10,24)=1.0E24

What is Math.pow() doing on Windows, some Wintel nonsense?

Am Sonntag, 24. Juni 2018 23:29:11 UTC+2 schrieb Eric Sosman:
> On 6/24/2018 4:35 PM, bursejan@gmail.com wrote:
> > The test code would be:
> >
> >          for (int i=22; i<25; i++) {
> >             System.out.println("Math.pow(10,"+i+")="+Math.pow(10,i));
> >          }
> >
> > The result (without strictfp modifier to main()) is:
> >
> >     Math.pow(10,22)=1.0E22
> >     Math.pow(10,23)=1.0000000000000001E23
> >     Math.pow(10,24)=1.0E24
> >
> > The result (with strictfp modifier to main()) is:
> >
> >     Math.pow(10,22)=1.0E22
> >     Math.pow(10,23)=1.0000000000000001E23
> >     Math.pow(10,24)=1.0E24
> >
> > Because invoking Math.pow() is not a basic operator +, *, /, etc..
>
>      Have you tried using StrictMath.pow() instead of Math.pow()?
> It is certainly possible that the Math implementations are different
> on different platforms -- at least, the Javadoc seems to allow such
> freedom:
>
>       "[...] Code generators are encouraged to use platform-specific
>       native libraries or microprocessor instructions, where
>       available, to provide higher-performance implementations of Math
>       methods. [...]"
>
> It's my understanding, though, that StrictMath implementations on all
> platforms are supposed to agree exactly.
>
> --
> esosman@comcast-dot-net.invalid
> Nine hundred forty-one days to go.

-+- BBBS/Li6 v4.10 Toy-3
 + Origin: Prism bbs (1:261/38)

--- BBBS/Li6 v4.10 Toy-3
 * Origin: Prism bbs (1:261/38)

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

Re: Has Android different floats? "Arne Vajhøj" <arne vajhøj@1:261/38.remove-i5b-this> - 2018-06-24 15:21 -0500
  Re: Has Android different floats? "bursejan" <bursejan@1:261/38.remove-i5b-this> - 2018-06-24 13:31 -0500
    Re: Has Android different floats? "bursejan" <bursejan@1:261/38.remove-i5b-this> - 2018-06-24 13:35 -0500
      Re: Has Android different floats? "bursejan" <bursejan@1:261/38.remove-i5b-this> - 2018-06-24 13:44 -0500
      Re: Has Android different floats? "Eric Sosman" <eric.sosman@1:261/38.remove-i5b-this> - 2018-06-24 17:28 -0500
        Re: Has Android different floats? "bursejan" <bursejan@1:261/38.remove-i5b-this> - 2018-06-24 16:08 -0500

csiph-web