--- rational.hpp.orig 2006-02-19 04:31:25.000000000 -0500 +++ rational.hpp 2006-02-19 04:32:24.000000000 -0500 @@ -401,7 +401,7 @@ // are both positive. // Divide instead of multiplying to avoid overflow issues. Of course, // division may be slower, but accuracy is more important than speed... - if (num > zero) + if (num >= zero) return (num/den) < i; else return -i < (-num/den);