<: 2x ^ 3 5 7 11 13 17 19 31 61 89                      
                                  
7 31 127 2047 8191 131071 524287 2147483647
2305843009213693951 618970019642690137449562111
   <: 2x&powGB"0 ] 3 5 7 11 13 17 19 31 61 89               
                                 
7 31 127 8191 2047 131071 33554431 2147483647
140737488355327 151115727451828646838271

Looks like powGB  is not correctly doing the same thing as
<: 2x ^ N

powGB =: (**:)/@(|.@|....@#:@]{1x,[)   NB.  <: 2x powGB 2203 is
an example of use.

any thoughts?

----- Original Message Follows -----
From: Aai <[email protected]>
To: Programming forum <[email protected]>
Subject: Re: [Jprogramming] Mersenne Prime initialization.
Date: Thu, 09 Apr 2009 19:37:20 +0200

>powGB has infinite rank:
>
>   powGB b. 0
>_ _ _
>
>so to work on an array use:
>
>   <: 2x&powGB"0 ] 3 5 7 11 13
>7 31 127 2047 8191
>
>
>Hallo [email protected], je schreef op
>> 09-04-09 19:23: powGB=: (**:)/@(|....@#:@]{1x,[)
>>
>>     <: 2x powGB 3
>> 7
>>     <: 2x powGB 5
>> 31
>>     <: 2x powGB 3 5
>> 1 3 7
>>
>> I would have expected 7 31
>>
>>     <: 2x powGB 3 5 7
>> 7 31 127
>>
>>     <: 2x powGB 3 5 7 11 13
>> 7 8191 4194303 2147483647
>>
>>      <: powGB 3 5 7
>> 26 242 2186
>>
>> it seems that powGB has problems.
>>
>> Anybody have thoughts on how to modify powGB so
>> it produces "<: 2x ^ N" properly for vector inputs.
>>
>> It seems to work correctly when the rhs is only one
>> value and not a vector of values.
>>
>> thanks
>>
>>
>>
>> ----- Original Message Follows -----
>> From: Aai <[email protected]>
>> To: Programming forum <[email protected]>
>> Subject: Re: [Jprogramming] Mersenne Prime
>> initialization. Date: Wed, 08 Apr 2009 13:55:10 +0200
>>
>>   
>>> Also, it's possible that:
>>>
>>>   #. 110503$1x
>>> |out of memory
>>> |       #.110503$1
>>>
>>> You can use a folding instead:
>>>
>>>   ([++:@])/ 110503$1x
>>> 5219283133417550597608921138394131714748003987...
>>>
>>> or ignoring the 1s:
>>>
>>>   >:@+:@]/ 110503$1x
>>>
>>> or with power ^:
>>>
>>>   >:@+:^: (<: 110503) 1x
>>> 5219283133417550597608921138394131714748003987...
>>>
>>>
>>> but it's also very slow..
>>>
>>>   ts '([++:@])/ 110503$1x'
>>> 16.633282 788352
>>>
>>>   ts '>:@+:^: (110502) 1x'
>>> 16.738218 329344
>>>
>>>
>>> Using a specialized exponentiation provides some speed
>>>up: 
>>> powGB=: (**:)/@(|....@#:@]{1x,[) NB. don't know who's
>>> brainchild, sorry
>>>
>>> .. and showing the last 31 digits:
>>>
>>>   ts 'it=:_31{.": <: 2x powGB 110503'
>>> 0.633862 296960
>>>   it
>>> 9131999107769951621083465515007
>>>
>>> Compared to:
>>>
>>>    ts 'it=:_31{.": <: 2x ^ 110503'
>>> 1.414242 430912
>>>   it
>>> 9131999107769951621083465515007
>>>
>>> I didn't try MP39 though (well, just for a while). :-)
>>>
>>> To obtain MP39 I used Haskell's interpreter GHCi (using
>>> the equivalence of ext. prec.: arbitrary prec. integers)
>>> showing the last 46 digits from a total of 4053946
>>>     digits ( 
>>>> .13466917*10^.2) :
>>>>       
>>> *Main> (take 9 &&& (take 9 .drop 4053937)).show . pred $
>>> 2^13466917 ("924947738","256259071")
>>> (19.89 secs, 155769356 bytes)
>>>
>>> Check with: http://en.wikipedia.org/wiki/Mersenne_prime
>>>
>>>
>>>
>>> Hallo Matthew Brand, je schreef op 08-04-09 09:09:
>>>     
>>>> You can do it like this:
>>>> #. N # 1x
>>>>
>>>> ... but it is *much* slower than  doing <: 2x^N
>>>>
>>>> On Tue, Apr 7, 2009 at 7:39 PM, 
>>>>   <[email protected]> wrote: 
>>>>       
>>>>> The following are Mersenne Primes 2, 3, 15, 29 and 39
>>>>>
>>>>> MP2 =: <:2x^3
>>>>> MP3 =: <: 2x^5
>>>>> MP5 =: <: 2x^13
>>>>> MP15 =: <: 2x^1279
>>>>> MP29 =: <: 2x^110503
>>>>> MP39 =: <: 2x^13466917
>>>>>
>>>>> As an example <: 2x^3 in binary is 1000 - 1 which is
>>>>> binary 111
>>>>>
>>>>> Any mersenne prime of the form <: 2x^N is    "N binary
>>>>> 1s" 
>>>>> It takes a very long time to calculate MP39.
>>>>>
>>>>> How could I accomplish the same thing by noting that
>>>>> in the case of MP39, I need to create an
>>>>> extended value that is "13466917 binary 1s"
>>>>>
>>>>> thanks
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>         
>>>
>>>    
>-----------------------------------------------------------
>>>>> ----------- For information about J forums see
>>>>> http://www.jsoftware.com/forums.htm 
>>>>>     
>>>>>         
>>>>
>>>>   
>>>>       
>>> -- 
>>> =@@i
>>>
>>>
>>>
>-----------------------------------------------------------
>>> ----------- For information about J forums see
>>>     http://www.jsoftware.com/forums.htm 
>>
>-----------------------------------------------------------
>> ----------- For information about J forums see
>>   http://www.jsoftware.com/forums.htm 
>
>-- 
>=@@i
>
>-----------------------------------------------------------
>----------- 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