bug-apl
[Top][All Lists]
Advanced

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

Re: [Bug-apl] Rational Numbers


From: Juergen Sauermann
Subject: Re: [Bug-apl] Rational Numbers
Date: Fri, 11 Aug 2017 22:26:45 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Hi Ala'a,

thanks, fixed in SVN 993.


/// Jürgen

On 08/11/2017 03:22 PM, Ala'a Mohammad wrote:
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]