[Oberon] real math

rob solomon 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
> Felix
>
>
>
>
> 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.
>>
>> Code:
>>
>> MODULE M1;
>>
>> IMPORT
>> StdLog;
>>
>> PROCEDURE Do*;
>> VAR
>> r: REAL;
>> BEGIN
>> r := 480 / 100 * 100;
>> StdLog.Int(ENTIER(r * 1000000));
>> StdLog.Ln;
>> END Do;
>>
>> BEGIN
>> END M1.
>>
>> Output:
>>
>> 480000000
>>
>> Same result as BlackBox returned in commercial Embarcadero RAD Studio 
>> using type corresponding single type.
>>
>> ---
>> Cheers, SAGE
>> http://sage.com.ua/
>>
>>
>>
>> --
>> Oberon at lists.inf.ethz.ch  mailing list for ETH Oberon and related systems
>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
>
>
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/oberon/attachments/20141111/10dac773/attachment.html 


More information about the Oberon mailing list