Stefan Krah
c35a8e5c98
Proactive reliability fix for broken FPUs: The base conversion functions
...
use log10() to calculate the size of the output array. The current code
has been tested on x86/amd64 (and to a lesser extent on qemu-mips qemu-sparc)
and produces sufficiently large values for all inputs tested so far (coefficient
sizes of 10**18 - 1 are hard to test exhaustively).
The new code does not rely on the correctness of log10() and resizes
the output arrays if the allocated space is insufficient.
2012-06-30 18:05:33 +02:00
Stefan Krah
78f075636c
Speed up _decimal by another 10-15% by caching the thread local context
...
that was last accessed. In the pi benchmark (64-bit platform, prec=9),
_decimal is now only 1.5x slower than float.
2012-06-24 12:20:03 +02:00
Stefan Krah
cc74b6ab14
Issue #14478 : Cache the hash of a Decimal in the C version.
2012-04-10 16:27:58 +02:00
Stefan Krah
e37f8b29fc
Issue #14520 : Add __sizeof__() method to the Decimal object.
2012-04-09 21:27:20 +02:00
Stefan Krah
dd159ce606
Speed up _decimal by 30-40% for numerical workloads by improving the cache
...
locality for regularly sized coefficients.
2012-04-09 20:24:57 +02:00
Stefan Krah
94ef3e4c1d
Use the MPD() accessor macro.
2012-04-09 19:20:46 +02:00
Stefan Krah
4771cca817
Whitespace.
2012-04-05 16:15:25 +02:00
Stefan Krah
871b96bd5a
Reduce array size.
2012-04-05 16:07:22 +02:00
Stefan Krah
a6169484c2
Formatting.
2012-04-05 15:48:59 +02:00
Stefan Krah
ff3eca0cc3
Allow printing a leading '-' and the maximum number of exponent digits
...
rather than raising RuntimeError (allocated space is sufficient for the
additional character).
2012-04-05 15:46:19 +02:00
Stefan Krah
0774e9b9f5
Raise InvalidOperation if exponents of zeros are clamped during exact
...
conversion in the Decimal constructor. Exact here refers to the
representation and not to the value (clamping does not change the value).
2012-04-05 15:21:58 +02:00
Stefan Krah
91c0274bc4
Improve comments.
2012-04-02 20:51:08 +02:00
Stefan Krah
5100171d81
Clear the context flags if a context is initialized from the DefaultContext.
2012-04-02 15:02:21 +02:00
Stefan Krah
fe17b2bc77
Raise MemoryError instead of InvalidOperation/MallocError for compatibility
...
with decimal.py. The standard specifies InsufficientStorage (MallocError) as
a sub-condition of InvalidOperation. This allows a calculation to continue
with NaN results when allocation fails.
2012-03-25 18:59:21 +02:00
Stefan Krah
b6405efd1b
Use the same exception hierarchy as decimal.py. FloatOperation now also
...
inherits from TypeError. Cleanup in module initialization to make repeated
import failures robust.
2012-03-23 14:46:48 +01:00
Stefan Krah
7cc5521d40
Whitespace.
2012-03-21 20:21:20 +01:00
Stefan Krah
1919b7e72b
Issue #7652 : Integrate the decimal floating point libmpdec library to speed
...
up the decimal module. Performance gains of the new C implementation are
between 12x and 80x, depending on the application.
2012-03-21 18:25:23 +01:00