

Fast prime numbers - joemanaco
http://www.intermediaware.com/blog/846/hack-of-the-day-fast-prime-numbers

======
dalke
Where "fast" is defined as "involves disk reads" and "prime numbers" should
have the qualifier "under 200." The algorithm is brute force testing of all
values up to sqrt(n), which is worse than the one the ancient Greeks used.

~~~
joemanaco
yes, it's brute force, and the there are much faster algorithms. I just wanted
to show, that it's possible to move expensive calculations to compile time
with C++ Templates.

~~~
dalke
Then the article is woefully mistitled. If I was doing this in C I would just
write the code to generate a static table, so this isn't that useful of an
good example except as very basic pedagogy. Also, you should show how the
compiler time increases if you want it to compute, say, the 200th prime.

~~~
joemanaco
Hmmm, I'm thinking you're right. I've renamed it to "How to move prime
calculation from execution to compile time". I hope this title fits better
with the content.

~~~
dalke
Hey, this is HN. We're supposed to argue and talk past each other with no
changes in what we've done or believe. ;)

(And yes, it does fit better.)

Cheers.

------
IChrisI
Moving a slow algorithm to compile time, or precomputing it, does not make it
faster. This title is wrong.

------
JoachimSchipper
Are you just submitting everything from your company's blog?

------
rkneufeld
Behold, MR.Prime!

<https://github.com/rkneufeld/mr_prime>

It's a little ruby Miller-Rabin primality tester I wrote with my friend in
Crypto class that can handle ~500 digit primes in less than a few seconds. I
think my friend also wrote a C extension for it - super fast.

Edit: spelling.

~~~
eqdw
IIRC, it was sub-second speed when he was done optimizing.

I wrote a non-optimized version of this in Ruby, ran in ~10sec. Then I rewrote
it in C, and it was <1ms runtime for 20-100 digit inputs. Yay algorithms!

------
ajays
Such abuse of the templating system is why I dislike C++.

~~~
joemanaco
It's why I love C++ :-)

