weird, I get:

powGB =: (**:)/@(|.@|.@|.@|....@#:@]{1x,[) 

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

is my definition of powGB correct?

----- Original Message Follows -----
From: Aai <[email protected]>
To: Programming forum <[email protected]>
Subject: Re: [Jprogramming] Mersenne Prime initialization.
Date: Fri, 10 Apr 2009 08:57:28 +0200

>Can't repeat your results:
>
>   <: 2x&powGB"0 ] 3 5 7 11 13 17 19 31 61 89
>7 31 127 2047 8191 131071 524287 2147483647
>2305843009213693951 618970019642690137449562111
>
>
>Hallo [email protected], je schreef op
>>     09-04-09 23:18: <: 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 
>>
>>   
>
>-- 
>=@@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