On 2/20/2011 11:32 PM, Walter Bright wrote:
Kevin Bealer wrote:
== Quote from Walter Bright (newshou...@digitalmars.com)'s article
Kevin Bealer wrote:
You could switch to this:
struct {
BigInt numerator;
BigInt denominator;
};
Bingo -- no compromise.
It cannot represent irrational numbers accurately.
True but I did mention this a few lines later.
I guess I'm not seeing the point of representing numbers as ratios. That
works only if you stick to arithmetic. As soon as you do logs, trig
functions, roots, pi, etc., you're back to square one.
You, my friend, have obviously never used a computer algebra system (my
favorite is Maxima) at all seriously. I'm not saying it's a practical
solution in the context of this discussion, but it is a possible
solution in a lot of cases. Basically, if you can't compute something
exactly, you do the math symbolically (but programmatically) for as long
as possible. You convert to a floating point number only when it's
explicitly asked for.