<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Dear all,<br>
      <br>
      with respect to the differences you observe I would like to point
      out that the variant of the underlying hardware and compiler also
      play an important role. In addition to the floating point
      standard. And also in addition to possible compiler optimisations.<br>
      <br>
      Example: one compiler (e.g. older AOS compiler) may still emit
      code for the FPU, which internally works with 80 bit precision.
      The results are only truncated to 32 bit when writing back to a
      general purpose register. So no loss of precision during
      expression computation. On newer machines the same task is usually
      computed on the SSE unit with 32-bit precision and the precision
      is lost during computation already.<br>
      <br>
      So, there is nothing wrong with any of the implementations but
      there are just implementation specific differences. Still, the
      principles of "What Every Computer Scientist Should Know About
      Floating-Point Arithmetic" do apply.<br>
      <br>
      Best regards<br>
      Felix <br>
      <br>
      <br>
      <br>
      <br>
      On 11.11.2014 15:50, Yaroslav Romanchenko wrote:<br>
    </div>
    <blockquote cite="mid:1415717428.950375192@f120.i.mail.ru"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <p><br>
        How many right suggestions. But... anyway something wrong with
        real math in Oberon implementation, because same example in
        BlackBox returns yet another result expected by Zdenek.</p>
      <p>Code:<br data-mce-bogus="1">
      </p>
      <p>MODULE M1;<br>
        <br>
        IMPORT<br>
        StdLog;<br>
        <br>
        PROCEDURE Do*;<br>
        VAR<br>
        r: REAL;<br>
        BEGIN<br>
        r := 480 / 100 * 100;<br>
        StdLog.Int(ENTIER(r * 1000000));<br>
        StdLog.Ln;<br>
        END Do;<br>
        <br>
        BEGIN<br>
        END M1.<br data-mce-bogus="1">
      </p>
      <p>Output:<br data-mce-bogus="1">
      </p>
      <p>480000000<br data-mce-bogus="1">
      </p>
      <p>Same result as BlackBox
        returned in commercial&nbsp;Embarcadero RAD Studio using type
        corresponding single type.<br>
        <br>
        ---<br>
        Cheers, SAGE<br>
        <a class="moz-txt-link-freetext" href="http://sage.com.ua/">http://sage.com.ua/</a><br>
      </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">--
<a class="moz-txt-link-abbreviated" href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems
<a class="moz-txt-link-freetext" href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>