Print

Print


If you go with BigDecimal, be aware that it breaks the
equals-hashcode-compareTo contract, in that "2.0" does not equal()
"2.00"<http://docs.oracle.com/javase/6/docs/api/java/math/BigDecimal.html#equals%28java.lang.Object%29>,
and they will almost always have different hashCodes, even though
compareTo() will tell you they are equal.

This can cause problems if you put BigDecimals in a Set or Map and expect
them to behave intuitively.

Siggy


On Thu, Mar 27, 2014 at 1:18 PM, Raymond Shpeley <[log in to unmask]>wrote:

> On Mon, 24 Mar 2014 19:30:39 -0700, Warren Henning
> <[log in to unmask]> wrote:
>
> >will Java's built-in BigDecimal class suffice, or do you need something
> >more specialized?
> >
>
> BigDecimal and BigInteger look like they would provide some rudimentary
> support. Oracle's documentation doesn't show too much in the way of
> functionality for typical experimental math support.  Compare ARPREC
> (http://crd-legacy.lbl.gov/~dhbailey/mpdist/) for example, from Bailey's
> page,
> which uses the Fourier transform for digits > 1000, PSLQ, etc. So, it's
> not just
> a matter of support for big numbers but performance tradeoffs and best
> practices.
>
> Anyway, without a Java library like ARPREC maybe I'll need to start with
> BigDecimal and BigInteger and add on the other tools I need as well as
> tweeking where needed. Maybe I could rely on GP to do the evaluation and
> use
> BigDecimal and BigInteger as primitives. It should even be cleaner that
> way.
>
> Thanks Warren for pointing out BigDecimal.
>



-- 

Ph.D student in Computer Science
George Mason University
http://mason.gmu.edu/~escott8/