On Sat, May 1, 2010 at 11:57 AM, Tim E. Real <[email protected]> wrote: > > Can I get some comments on an issue nagging me for years: > Maybe I never learned some golden rule about floating point, > please correct me if I'm ignorant of some crucial technique or fact > which would help: ...
Arbitrary precision arithmetic will take care of all these problems. At a great cost to performance: http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic . It's part of the Java Language: http://java.sun.com/j2se/1.4.2/docs/api/java/math/package-summary.html Provides classes for performing arbitrary-precision integer arithmetic > (BigInteger) and arbitrary-precision decimal arithmetic (BigDecimal). > BigInteger is analogous to Java's primitive integer types except that it > provides arbitrary precision, hence operations on BigIntegers do not > overflow or lose precision. In addition to standard arithmetic operations, > BigInteger provides modular arithmetic, GCD calculation, primality testing, > prime generation, bit manipulation, and a few other miscellaneous > operations. BigDecimal provides arbitrary-precision signed decimal numbers > suitable for currency calculations and the like. BigDecimal gives the user > complete control over rounding behavior, allowing the user to choose from a > comprehensive set of eight rounding modes. Arbitrary precision math has been part of the Lisp/Scheme world for a long time; it's also in the mainstream via mathematica: http://groups.google.com/group/comp.soft-sys.math.mathematica/topics?pli=1 -- Niels http://nielsmayer.com
_______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
