Please, somebody, step up to replacing J's antiquated
extended-arithmetic support with GMP.
Henry Rich
On 1/25/2022 8:21 PM, Marshall Lochbaum wrote:
All of these solutions except F# and Raku end up calling GMP for this
(which uses Miller-Rabin; so does J). I think F# uses the following .NET
library, while Raku appears to eventually call an npm package
jsbi-is-prime?
https://github.com/Open-NET-Libraries/Open.Numeric.Primes/blob/master/source/MillerRabin.cs
Even so, it's not particularly fast: I timed the Julia version at 15s to
solve the base task. Clearly the limits are chosen to be moderately
taxing for the fastest libraries out there; anything without years of
optimization effort is left behind.
Adding x: to your version runs out of memory for some reason, but it
looks like the following would probably finish in half an hour or so.
{{1+I. 1 p:y#.x:|.+./\.=i.1000}}&.> 2+i.15
Marshall
On Tue, Jan 25, 2022 at 05:52:40AM -0500, Raul Miller wrote:
http://www.rosettacode.org/wiki/Repunit_primes
Conceptually, this task might be tackled using an expression like
":@I. 1 p:(2+i.15) #."0 1/|.+./\.=i.1000
However, some of the numbers being tested for primality here are
rather large. Even the base 2 numbers reach 300 digits, and the base
16 numbers reach 1200 digits:
#":2x#.1000#1
302
#":16x#.1000#1
1203
So... how would we approach this in J?
Thanks,
--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
This email has been checked for viruses by AVG.
https://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm