Thanks Raul. 

Heavy stuff indeed. 

I guess I was expecting ‘match’ -: to be an exact compare including data type!

> On 20 Nov 2022, at 14:58, Raul Miller <rauldmil...@gmail.com> wrote:
> 
>    digitsE=:10&#.^:_1 NB. Elijah's convert to digits
>   digitsR=:"."0":    NB. My convert to digits
>   datatype digitsE 357686312646216567629137x
> extended
>   datatype digitsR 357686312646216567629137x
> floating
>   truncs=. [:~. [:10x&#.\. digitsR
>   truncs 357686312646216567629137x
> 3.57686e23 5.76863e22 7.68631e21 6.86313e20 8.63126e19 6.31265e18
> 3.12646e17 1.26462e16 2.64622e15 6.46217e14 4.62166e13 6.21657e12
> 2.16568e11 1.65676e10 6.56763e9 5.67629e8 6.76291e7 7.62914e6 629137
> 29137 9137 137 37 7
>   digitsR=:<.@"."0":    NB. My convert to digits
>   truncs 357686312646216567629137x
> 357686312646216567629137 57686312646216567629137
> 7686312646216567629137 686312646216567629137 86312646216567629137
> 6312646216567629137 312646216567629137 12646216567629137
> 2646216567629137 646216567629137 46216567629137 6216567629137
> 216567629137 165676291...
>   datatype digitsR 357686312646216567629137x
> integer
> 
> Note especially the table at 
> https://www.jsoftware.com/help/dictionary/dictg.htm
> 
> J's numeric type system was designed for efficiency and the sort of
> accuracy typically needed in physics and education contexts rather
> than the needs of high precision number theory contexts (which wasn't
> really a part of Ken Iverson's background).
> 
> I hope this helps,
> 
> --
> Raul
> 
>> On Sun, Nov 20, 2022 at 4:39 AM Richard Donovan <rsdono...@hotmail.com> 
>> wrote:
>> 
>> Proving that I am still baffled by J!
>> 
>> Elijah has a different way to convert a number to its
>> digits than I normally use, so I set out to compare..
>> 
>> digitsE=:10&#.^:_1 NB. Elijah's convert to digits
>> digitsR=:"."0":    NB. My convert to digits
>> 
>>   (digitsE-:digitsR) 357686312646216567629137x
>> 1    NB. Well that's alright!
>> 
>> digitsE 357686312646216567629137x
>> 3 5 7 6 8 6 3 1 2 6 4 6 2 1 6 5 6 7 6 2 9 1 3 7
>>   digitsR 357686312646216567629137x
>> 3 5 7 6 8 6 3 1 2 6 4 6 2 1 6 5 6 7 6 2 9 1 3 7
>> NB. Still looking good!
>> 
>> 
>> NB. Set up truncs with Elijah's routine..
>> truncs=. [:~. [:10&#.\. digitsE
>> 
>> NB. Works perfectly! :o)
>> truncs 357686312646216567629137x
>> 357686312646216567629137 ...etc
>> 
>>  1 p: truncs 357686312646216567629137x
>> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>>   NB. Perfect!
>> 
>> NB. Set up truncs with my routine..
>> truncs=. [:~. [:10&#.\. digitsR
>> 
>> NB. Should be the same???
>> 
>> truncs 357686312646216567629137x
>> 3.57686e23 5.76863e22... WRONG!!! :o(
>> 
>>>> On 19 Nov 2022, at 22:04, Elijah Stone <elro...@elronnd.net> wrote:
>>> 
>>> x: ". y where y is simply a string of digits will interpret those digits 
>>> as a (fixed-width) integer and _then_ convert the latter to 
>>> extended-precision. You could append an 'x', or perhaps consider the 
>>> following definition:
>>> 
>>>  truncs=. [:~. [:10&#.\. 10&#.^:_1  NB.equivalent to ltrunc^:a:
>>>  ,.truncs 357686312646216567629137x
>>> 357686312646216567629137
>>> 57686312646216567629137
>>> 7686312646216567629137
>>>  686312646216567629137
>>>   86312646216567629137
>>>    6312646216567629137
>>>     312646216567629137
>>>      12646216567629137
>>>       2646216567629137
>>>        646216567629137
>>>         46216567629137
>>>          6216567629137
>>>           216567629137
>>>            16567629137
>>>             6567629137
>>>              567629137
>>>               67629137
>>>                7629137
>>>                 629137
>>>                  29137
>>>                   9137
>>>                    137
>>>                     37
>>>                      7
>>> 
>>>> On Sat, 19 Nov 2022, Richard Donovan wrote:
>>>> 
>>>> Hi
>>>> 
>>>> I am doing experiments with large primes, in particular looking at primes 
>>>> that remain primes when n digits are truncated from the left. For example
>>>> 6391373    391373    91373    1373    373    73    3 remains prime at each 
>>>> step.
>>>> 
>>>> The largest of these in base 10 is 357686312646216567629137.
>>>> 
>>>> I wrote the following code in preparation for further investigation but I 
>>>> find that the 24 digit number above is not handled as I wish it to be, as 
>>>> you will see below.
>>>> 
>>>> What have I missed?
>>>> 
>>>> Thanks
>>>> 
>>>> 
>>>> 
>>>> 
>>>> digits
>>>> "."0@":
>>>> 
>>>> ltrunc
>>>> 3 : 0"0 0 0
>>>> n=: ": 0, }. digits y
>>>> x: ". n-. ' '
>>>> )
>>>> 
>>>> 
>>>> 
>>>> NB. Works fine with 7 digit number...
>>>> ltrunc^:a: 6391373
>>>> 6391373    391373    91373    1373   373    73    3    0
>>>> 
>>>> 
>>>> NB. But I can’t get it working for a 24 digit number!
>>>> ltrunc 357686312646216567629137
>>>> 0 0 5 7 6 8 6 0 2 3
>>>> ltrunc 357686312646216567629137x
>>>> 57686312646216568012800
>>>> ltrunc x:357686312646216567629137x
>>>> 57686312646216568012800
>>>> 
>>>> Is there a way around the limit?
>>>> 
>>>> ----------------------------------------------------------------------
>>>> 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