The error, methinks, is that 999...9. is rounded to integer and then
reported as integer.   It should keep floating type.

Bit-twisting code needs to be sure that no bits have been lost.   Integral
type should be a guarantee of that.  Floats that have values
unrepresentable accurately should not be automatically called ints.

Henry Rich

On Aug 11, 2017 06:14, "Don Kelly" <d...@shaw.ca> wrote:

isn't an advantage of APL and J that the person writing a
program/app/whatever, doesn't   have to deal with the distinctions between
integer and damn near integer  within the limitations of the computer
binary resolution?. In most cases this isa good thing because close enough
-given the +/- of data input is sufficient for the idiot box to decide. J
moves away from C/C++/ and other languages which often seem to be
emphasizing stuff that Iverson tried to eliminate in APL and J . Muh of
that stuff is something that can be handled by the idiot box so that:

Problem-->basic analysis--. coding that fits the analysis rather than the
details( users aim at the essentials rather than the details- "/I  want the
answer and I dont care about what is involved in the background of %,*
*/

The discussion below deals with representation of numeric values being
floating point or integer when pushing the limits-IS IT IMPORTANT IN THE
REAL WORLD unless  you have a Cray in the back bedroom?

Old fart expressing opinions

Don Kelly


On 2017-08-10 6:27 PM, Bill wrote:

> I suspect J interpreter didn't has the knowledge  that the original string
> had been 9999999999999999.3
> with .3 because what J saw was the floating point result of parsing by c
> library. Ieee floating point has 15 to 16 significant digits so that 1e16
> and 1e16-1 is the same number.
>
> Perhaps one could use long double to parse number on J64.
>
> Sent from my iPhone
>
> On 10 Aug, 2017, at 3:48 AM, Henry Rich <henryhr...@gmail.com> wrote:
>
> Quite right.
>>
>> Henry Rich
>>
>> On Aug 9, 2017 20:46, "Raul Miller" <rauldmil...@gmail.com> wrote:
>>
>> Well, since it's encoded as an integer (which I would have noticed if
>>> I had read Bob Therriault's original post more closely), and not [like
>>> I was thinking] a float, I agree that dropping the .3 is better than
>>> adding a 1.
>>>
>>> That said, I guess we also should not object too loudly if
>>> 9999999999999999.3 were instead encoded the same as
>>> 9999999999999999+0.3 gets encoded.
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>> On Wed, Aug 9, 2017 at 3:25 PM, Henry Rich <henryhr...@gmail.com> wrote:
>>>
>>>> Surely integer 999...9 is a better value than 1000...0 .
>>>>
>>>> Henry Rich
>>>>
>>>> On Aug 9, 2017 18:33, "Raul Miller" <rauldmil...@gmail.com> 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 <henryhr...@gmail.com>
>>>>>
>>>> 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" <bbill....@gmail.com> 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 <
>>>>>>>>
>>>>>>> programm...@jsoftware.com> 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 <bobtherria...@mac.com>
>>>>>>>> To: Programming forum <programm...@jsoftware.com>
>>>>>>>> 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
>>>>
>>> ----------------------------------------------------------------------
>>> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to