0. Since APL\360 from the 1960's, a number is a number is
a number, and the system strives to maintain the illusion that
the internal representation of a number does not matter.

1. 1e10 is a 64-bit floating point number, hence x: 1e10 is rational.

2. 1e9 is a 32-bit integer hence x: 1e9 is extended integer.

3. The monads # $ i. gives an extended integer result if
the argument is extended.  This is so that some (most?) 
computations involving extended arguments can stay 
in the extended domain.  e.g.

   +/i.1234567x
762077221461




----- Original Message -----
From: Devon McCormick <[email protected]>
Date: Thursday, January 29, 2009 10:42
Subject: [Jprogramming] Extended integer extends to shape?
To: J-programming forum <[email protected]>

> Members of the Forum -
> 
> Do these cases seem odd?
> 
>    triNum=: ([:-:[:*/0 1+])"0  NB. triangular 
> number by Gauss
>    aa=. triNum x: 
> 1e10        NB. ten-billionth 
> triangular number
>    
> 3!:0]aa                           NB. Type is "rational"
> 128
>    aa
> 50000000005000000000
>    aa=. triNum  x: 1e9   NB. but 
> billionth triangular number
>    
> 3!:0]aa                     NB. is "extended integer".
> 64
>    ss=. 
> $aa,aa              NB. Even more oddly,
>    
> 3!:0]ss                     NB. this shape is "extended integer".
> 64
>    ss=. <.0.5+*:%:ss    NB. Force 
> type to plain integer.
>    3!:0]ss
> 4
> 
> Why does an argument of "x: 1e10" give a rational result but a smaller
> argument is extended integer?
> More puzzling, why does the shape of an array of extended 
> integers have the
> type "extended integer"?
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to