Content-Type: |
multipart/alternative; boundary=047d7ba97a94d033f104f59a2d10 |
Sender: |
|
Subject: |
|
From: |
|
Date: |
Thu, 27 Mar 2014 13:47:29 -0400 |
In-Reply-To: |
|
MIME-Version: |
1.0 |
Reply-To: |
|
Parts/Attachments: |
|
|
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/
|
|
|