[Oberon] real math
drrob106 at verizon.net
Wed Nov 12 02:18:17 CET 2014
Not knowing much about oberon, but I have use modula-2 for many years.
I have one observation.
r := 480 / 100 * 100;
In modula-2, this line would not be allowed, as it is doing integer
arithmetic, getting an integer result, and they trying to assign this
integer result to a real number.
Is oberon less type-strict? Is oberon more like C and Fortran in this way?
On 11/11/2014 11:15 AM, Felix Friedrich wrote:
> Dear all,
> 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.
> 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.
> 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.
> Best regards
> On 11.11.2014 15:50, Yaroslav Romanchenko wrote:
>> 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.
>> MODULE M1;
>> PROCEDURE Do*;
>> r: REAL;
>> r := 480 / 100 * 100;
>> StdLog.Int(ENTIER(r * 1000000));
>> END Do;
>> END M1.
>> Same result as BlackBox returned in commercial Embarcadero RAD Studio
>> using type corresponding single type.
>> Cheers, SAGE
>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Oberon