Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. How Java's floating-point hurts everyone everywhere

How Java's floating-point hurts everyone everywhere

Scheduled Pinned Locked Moved The Lounge
javaquestion
6 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    Lost User
    wrote on last edited by
    #1

    This is interesting: http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf. I wonder how MS stacks up against this?

    P J 2 Replies Last reply
    0
    • L Lost User

      This is interesting: http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf. I wonder how MS stacks up against this?

      P Offline
      P Offline
      Paul Selormey
      wrote on last edited by
      #2

      Does the new MS sponsorship package includes Java bashing too? Regards, Paul. Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for day job or programming contract anywhere!

      C C 2 Replies Last reply
      0
      • P Paul Selormey

        Does the new MS sponsorship package includes Java bashing too? Regards, Paul. Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for day job or programming contract anywhere!

        C Offline
        C Offline
        Christian Graus
        wrote on last edited by
        #3

        If you're claiming that only people paid by Micro$oft bash Java, you should check out some of Bjarne Stroustrups comments on the subject. He calls Java a solution in search of a problem, and that's his kindest comment. Christian The content of this post is not necessarily the opinion of my yadda yadda yadda. To understand recursion, we must first understand recursion.

        L 1 Reply Last reply
        0
        • C Christian Graus

          If you're claiming that only people paid by Micro$oft bash Java, you should check out some of Bjarne Stroustrups comments on the subject. He calls Java a solution in search of a problem, and that's his kindest comment. Christian The content of this post is not necessarily the opinion of my yadda yadda yadda. To understand recursion, we must first understand recursion.

          L Offline
          L Offline
          l a u r e n
          wrote on last edited by
          #4

          i always knew bjarne was smarter than the average language inventor :cool: --- "every year we invent better idiot proof systems and every year they invent better idiots"

          1 Reply Last reply
          0
          • P Paul Selormey

            Does the new MS sponsorship package includes Java bashing too? Regards, Paul. Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan, and open for day job or programming contract anywhere!

            C Offline
            C Offline
            Chris Maunder
            wrote on last edited by
            #5

            Thanks for that Paul. In the interest of providing a balanced view (and because I actually enjoyed reading the link that masked person sent in) I did a quick search. I found the following: http://www.geocrawler.com/archives/3/1329/2000/10/0/4488162/

            Discussion of possible IEEE 754 weirdness in VC++

            http://www.statsdirect.com/_disc1/00000005.htm

            "Numerical algorithms written in Microsoft Visual Basic, Microsoft Visual C++ and Compaq Visual FORTRAN comply with both single (32 bit) and double (64 bit) precision IEEE Standard Floating-Point Representation (Microsoft Corporation, 1998; Compaq Corporation, 2000; IEEE, 1985)."

            http://mail-index.netbsd.org/netbsd-bugs/1998/03/12/0007.html

            "I've been told that Microsoft C compilers are known to have problems with this and other IEEE 754 tests."

            http://support.microsoft.com/support/kb/articles/Q36/0/68.ASP

            "Microsoft is consistent with the IEEE numeric standards"

            http://www.javaworld.com/javaworld/jw-10-1996/jw-10-hood.html

            "The JVM's floating-point support adheres to the IEEE-754 1985 floating-point standard."

            http://sunsite.dcc.uchile.cl/hotjava/doc/javaspec/javaspec_10.html#HEADING74

            Summary of IEEE-754 Differences in Java

            If anyone has a definitive answer on what adheres to what, then it would make an interesting read. You can read up on the IEEE 754 standard here. cheers, Chris Maunder

            1 Reply Last reply
            0
            • L Lost User

              This is interesting: http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf. I wonder how MS stacks up against this?

              J Offline
              J Offline
              Jonathan Gilligan
              wrote on last edited by
              #6

              Very nice article. Thanks for telling us about it. This reminds me of a question that I have never received a satisfactory answer to. The documented behavior of VC++ 6 is (according to the MSDN documentation for the numeric_limits sample program):

              29 Representation of quiet NaN for float         -1.#IND
              ...
              40 How does a float represent a signaling NaN? -1.#INF
              

              I am not the greatest IEEE-754 guru, but shouldn't a signaling NaN be represented as "1.#NaN"? Can anyone here explain this to me? The behavior seems to be by design, so I hesitate to call it a bug or noncompliance, but I have not managed to get a definitive answer from anyone about where I am mistaken in my understanding of 754 signaling NaNs. For detailed and knowledgeable description of how MS has consistently undermined the intentions of the IEEE-754 standard, see the 1997 Dr. Dobbs interview with William Kahan, who was the principal architect of the IEEE-754 standard and who contributed significantly to the design of the original 8087. An excerpt:

              If I understand what the Microsoft C compiler does, it allows overflow to occur at run time, and then you get a run-time message, "Your expression is too complicated, go back rewrite it in simpler pieces and recompile." To do this, they have to test the invalid flag, which indicates either an invalid arithmetic operation or a stack overflow, depending on the state of another bit in the condition code. The trouble is, to detect this, they clear the flag after every statement, therefore you the programmer can't use it. You can't find out if an invalid operation has occurred, because Microsoft has cleared the flag before the code returns. DDJ: So you have to write your own libraries? WK: It's not the libraries. The compiler generates code that blitzes the invalid flag before you see it. You disable the trap on invalid because you want to test it. The compiler reenables the trap, you do your arithmetic operation, it traps, the compiler resets the invalid flag, and if the trap wasn't caused by stack overflow, it just continues. ... Numerics can be a lot simpler than they are, but they are not as simple as Java thinks, and they are not as simple as Microsoft thin

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups