I was more surprised by the type change within a certain numeric range.
That just seemed a little...odd.
I guess that even though it feels strange to have a constant change type just
by being
entered, it's not really any different than these examples.
(; datatype) 3j0
┌─┬───────┐
│3│integer│
└─┴───────┘
(; datatype) 3.0
┌─┬───────┐
│3│integer│
└─┴───────┘
(; datatype) 3.6j0
┌───┬────────┐
│3.6│floating│
└───┴────────┘
(; datatype) 3r5j0
┌───┬────────┐
│0.6│floating│
└───┴────────┘
Cheers, bob
> On Aug 9, 2017, at 10:33 AM, Raul Miller <[email protected]> wrote:
>
> It's not a bug, it's an artifact of the 64 bit floating point standard.
>
> 2 ^.9999999999999999
> 53.1508
>
> https://en.wikipedia.org/wiki/IEEE_754#Basic_and_interchange_formats
>
> The binary64 format has 53 binary digits or 15.95 decimal digits. This
> means ".16#'9' cannot be represented exactly using this format.
>
> And, we do not use exact representation of large numbers by default
> because that's too slow for large datasets. Put differently, if you
> want exact representation and are willing to take the performance hit,
> you should specify that. For example: ".'x',~16#'9' or
> ".'3r10+','x',~16#'9'
>
> Thanks,
>
> --
> Raul
>
> On Wed, Aug 9, 2017 at 12:05 PM, Henry Rich <[email protected]> wrote:
>> This is a bug, since 999...9.3 should become 999...9 rather than 100...0.
>> I'm away from home now, but I think what's happening is this:
>>
>> 999...9 is converted to integer
>>
>> . is encountered and turns it to float
>>
>> It's rounded to the nearest float which is 100...0
>>
>> As a final step the JE checks to see if the value is exactly integral,
>> which it is, and it is converted back to integer.
>>
>> If you add this to Interpreter/Bugs I'll fix it when i get back.
>>
>> Henry Rich
>>
>> On Aug 9, 2017 16:16, "bill lam" <[email protected]> wrote:
>>
>> I think this is the difference between 32 and 64-bit,
>>
>> 9!:14''
>> j602/2008-03-03/16:45
>> 3!:0[ 9999999999999999.3
>> 4
>>
>> In J32
>>
>> a.i. 2 fc 9999999999999999.3
>> 0 128 224 55 121 195 65 67
>> a.i. 2 fc 1e16
>> 0 128 224 55 121 195 65 67
>>
>> the number has the same bit pattern as 1e16 (an integer)
>> which can be represented as a 64-bit integer. I guess
>> J64 is correct since 9999999999999999.3 and 1e16 is the
>> same number in ieee fp and J prefers integer to floats,
>> eg
>> 3!:0 [ 2.0
>> 4
>>
>> Ср, 09 авг 2017, robert therriault написал(а):
>>> Hi Pascal,
>>>
>>> I see the same behaviour in j806 as j805. Do you see something different?
>>>
>>> JVERSION
>>> Engine: j806/j64avx/darwin
>>> Beta-4: commercial/2017-06-27T12:55:06
>>> Library: 8.06.03
>>> Qt IDE: 1.5.3/5.6.2
>>> Platform: Darwin 64
>>> Installer: J806 install
>>> InstallPath: /users/bobtherriault/j64-806
>>> Contact: www.jsoftware.com
>>> (; datatype) 999999999999999.3
>>> ┌────┬────────┐
>>> │1e15│floating│
>>> └────┴────────┘
>>> (; datatype) 9999999999999999.3
>>> ┌─────────────────┬───────┐
>>> │10000000000000000│integer│
>>> └─────────────────┴───────┘
>>> (; datatype) 99999999999999999.3
>>> ┌──────────────────┬───────┐
>>> │100000000000000000│integer│
>>> └──────────────────┴───────┘
>>> (; datatype) 999999999999999999.3
>>> ┌───────────────────┬───────┐
>>> │1000000000000000000│integer│
>>> └───────────────────┴───────┘
>>> (; datatype) 9999999999999999999.3
>>> ┌────┬────────┐
>>> │1e19│floating│
>>> └────┴────────┘
>>>
>>> Cheers, bob
>>>
>>>> On Aug 9, 2017, at 7:54 AM, 'Pascal Jasmin' via Programming <
>> [email protected]> wrote:
>>>>
>>>> in j806, 9999999999999999.310000000000000000 probably the j805
>> behaviour is preferred. If only for consistency. But there may be a good
>> reason for change.
>>>>
>>>> From: robert therriault <[email protected]>
>>>> To: Programming forum <[email protected]>
>>>> Sent: Wednesday, August 9, 2017 10:40 AM
>>>> Subject: [Jprogramming] Integer-floating type change for large numbers
>> in j805 and j806
>>>>
>>>> I am guessing that the following has something to do with precision of
>> large numbers in j805 and is also true for j806.
>>>>
>>>> (; datatype) 999999999999999.3
>>>> ┌────┬────────┐
>>>> │1e15│floating│
>>>> └────┴────────┘
>>>> (; datatype) 9999999999999999.3
>>>> ┌─────────────────┬───────┐
>>>> │10000000000000000│integer│
>>>> └─────────────────┴───────┘
>>>> (; datatype) 99999999999999999.3
>>>> ┌──────────────────┬───────┐
>>>> │100000000000000000│integer│
>>>> └──────────────────┴───────┘
>>>> (; datatype) 999999999999999999.3
>>>> ┌───────────────────┬───────┐
>>>> │1000000000000000000│integer│
>>>> └───────────────────┴───────┘
>>>> (; datatype) 9999999999999999999.3
>>>> ┌────┬────────┐
>>>> │1e19│floating│
>>>> └────┴────────┘
>>>> JVERSION
>>>> Engine: j805/j64/darwin
>>>> Release: commercial/2016-12-11T08:17:56
>>>> Library: 8.05.14
>>>> Qt IDE: 1.5.4/5.6.2
>>>> Platform: Darwin 64
>>>> Installer: J805 install
>>>> InstallPath: /applications/j64-805
>>>> Contact: www.jsoftware.com
>>>>
>>>> Further investigation shows me it was not this way with the 32 bit
>> version of j701, so it may be an artifact of moving to 64 bit?
>>>>
>>>> (; datatype) 999999999999999.3
>>>> ┌────┬────────┐
>>>> │1e15│floating│
>>>> └────┴────────┘
>>>> (; datatype) 9999999999999999.3
>>>> ┌────┬────────┐
>>>> │1e16│floating│
>>>> └────┴────────┘
>>>> (; datatype) 999999999999999999.3
>>>> ┌────┬────────┐
>>>> │1e18│floating│
>>>> └────┴────────┘
>>>> (; datatype) 9999999999999999999.3
>>>> ┌────┬────────┐
>>>> │1e19│floating│
>>>> └────┴────────┘
>>>> JVERSION
>>>> Engine: j701/2011-01-10/11:25
>>>> Library: 7.01.088
>>>> Platform: Darwin 32
>>>> Installer: j701a_mac_intel.dmg
>>>> InstallPath: /Applications/j701
>>>>
>>>> Cheers, bob
>>>>
>>>>
>>>>
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>
>>>>
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>> --
>> regards,
>> ====================================================
>> GPG key 1024D/4434BAB3 2008-08-24
>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm