If an algorithm could be made faster if it exploited a conjecture, would you?

Conjecture, as in it has not been proven. Let's say it's a fairly obviously correct conjecture, such as twin prime conjecture or Goldbach's conjecture, though feel free to substitute your own. And yes, your algorithm will end up using numbers outside of the number-space in which the conjecture has been proven correct by exhaustion.

So, do you use the conjecture in your spiffy algorithm or do you err on the side of caution?

Hey, if you can write code for it that will compile, then full steam ahead!

CrossRoads: Hey, if you can write code for it that will compile, then full steam ahead!

Hey, I'm totally with you on that. :) I was just wondering what the guys who got a 800 on their SAT math think of it.

depends, if the result could be checked fast enough I certainly would.

e.g. division is much slower than multiplication. (factor 10?) If I had an algorithm say to divide by 42 that was 5 times as fast as normal division I could do

a = newDivide(b,42);
if (b == a*42) return a;
else return b/42;

and still be faster.

Mind you we mostly use inaccurate algorithms to be faster as long as the result is still usable. The famous divide by 29 in Ping is definitely not accurate but accurate enough in 99.9% of the application. Newtons law's are an approximation of physics (Einstein's laws are better) but unless you program GPS satellites who cares.

Reminds me how the solution to the Poincare conjecture turned the world of rabbit taxidermy on its head.

Reminds me how the solution to the Poincare conjecture turned the world of rabbit taxidermy on its head.

Tell more !