bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Rational Numbers


From: Ala'a Mohammad
Subject: Re: [Bug-apl] Rational Numbers
Date: Fri, 11 Aug 2017 17:22:39 +0400

Hi Jürgen,

I was playing with experimental support for rational numbers and found
that result was converted to float while using dyadic maximum,
minimum, even though I did not use the monadic +

        (1÷3) ⌈ (3÷4)
0.75

        (1÷3) ⌊ (3÷4)
0.3333333333

Is this the intended display?

Also by accident, I was playing with the support and the strange
display of the following occurred

        ÷¯1÷3
3÷18446744073709551615

Entering the above result gives another number

        3÷18446744073709551615
1.626303259E¯19

The positive case works better (even though I had expected one digit
display only '3'), but somehow the neg mess-up the display

        ÷1÷3
3÷1

Regards,

Ala'a

On Sun, Jul 23, 2017 at 5:28 PM, Juergen Sauermann
<address@hidden> wrote:
> Hi Elias,
>
> the format bug is fixed in SVN 983.
>
> Rational numbers are exact, they are stored as a 64 bit numerator and a 64
> bit denominator.
> You can convert a rational to a float with monadic +:
>
>       ⎕PS←1 0   ⍝ display quotients
>       2÷3
> 2÷3
>       +2÷3
> 0.6666666667
>
> Normally monadic + is not needed because conversion to double happens
> automatically where needed.
>
> /// Jürgen
>
>
> On 07/21/2017 06:19 AM, Elias Mårtenson wrote:
>
> There is an error in the rational code:
>
> In Archive.cc, line 218, the snprintf format is wrong. %lld is used, while
> the types of the arguments are actually "long". Thus, "%lld÷%lld" should be
> "%ld÷%ld" instead.
>
> On 21 July 2017 at 12:06, Elias Mårtenson <address@hidden> wrote:
>>
>> I haven't looked at this yet, but is this purely a display feature, or is
>> it a full implementation of rational numbers?
>>
>> In other words, is the result of 1÷3 exact? And if so, how do I convert a
>> rational number into a floating-point number?
>>
>> Regards,
>> Elias
>>
>> On 21 July 2017 at 00:05, Juergen Sauermann
>> <address@hidden> wrote:
>>>
>>> Hi,
>>>
>>> coming back to a proposal from Elias, I have added (experimental) support
>>> for rational numbers in GNU APL. SVN 982.
>>>
>>> It has to be enabled explicitly:
>>>
>>> ./configure RATIONAL_NUMBERS_WANTED=yes
>>>
>>> In APL you can display rational numbers by setting ⎕PS[1]:
>>>
>>>       ⎕PS←0 22
>>>       2÷3
>>> ╔════════════╗
>>> ║0.6666666667║
>>> ╚════════════╝
>>>       ⎕PS←1 22
>>>       2÷3
>>> ╔═══╗
>>> ║2÷3║
>>> ╚═══╝
>>>
>>> (The second item in ⎕PS is a boxing style as in the ]BOXING command).
>>>
>>> Best Regards,
>>> Jürgen
>>>
>>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]