Commit Graph

59 Commits

Author SHA1 Message Date
Stefan Krah
40e700ad04 bpo-40878: xlc cannot handle C99 extern inline. (GH-21887)
This applies to the default "extc99" mode.  Python does not compile with "stdc99".
2020-08-15 16:06:21 +02:00
Stefan Krah
9b9f158275 bpo-41369 Update to libmpdec-2.5.1: new features (GH-21593) 2020-07-22 21:54:42 +02:00
Stefan Krah
087d612efe bpo-40874: Update to libmpdec-2.5.0 (GH-20652) 2020-06-05 19:43:01 +02:00
Stefan Krah
90930e6545 bpo-39576: Prevent memory error for overly optimistic precisions (GH-18581) 2020-02-21 01:52:47 +01:00
Serhiy Storchaka
bfe4fd5f2e Fix some warnings produced by different compilers. (#5593) 2018-02-09 17:31:26 +02:00
Stefan Krah
8e1da5823b Issue #26846: Workaround for non-standard stdlib.h on Android. 2016-04-25 22:48:42 +02:00
Zachary Ware
fda673d59f Issue #24974: Force fp-model precice in mpdecimal.c on Windows
As suggested by Steve Dower and approved by Stefan Krah.
2015-09-03 11:52:15 -05:00
Stefan Krah
1f1ec12db9 Issue #19986: Avoid an incorrect warning of older gcc versions. 2013-12-15 20:45:08 +01:00
Stefan Krah
da12adac10 Do not discard const qualifier without a reason. 2013-12-12 18:51:51 +01:00
Stefan Krah
ecff6554d3 Update copyright. The four year increment is intentional (to save work). 2013-12-08 19:54:05 +01:00
Stefan Krah
4b7f7acf30 Make a couple of parameters constant. 2013-12-03 14:33:46 +01:00
Stefan Krah
45059eb1d0 1) Prepare libmpdec for the 2.4.0 release. None of the following changes affects
_decimal:

      o Make all "mpd_t to C integer" conversion functions available in both the
        64-bit and the 32-bit versions.

      o Make all mixed mpd_t/C integer arithmetic functions available in the
        32-bit version.

      o Better handling of __STDC_LIMIT_MACROS for C++ users.

      o Add struct tags (at the request of C++ users).

2) Check for libmpdec.so.2 if --with-system-libmpdec is used.
2013-11-24 19:44:57 +01:00
Ezio Melotti
3f5db3940f Fix a few typos and a double semicolon. Patch by Eitan Adler. 2013-01-27 06:20:14 +02:00
Stefan Krah
752bfb71d8 Remove trailing whitespace. 2013-01-16 15:16:10 +01:00
Stefan Krah
fb7f580e81 Issue #16745: Hide a couple of symbols by making them local. 2012-12-21 23:11:05 +01:00
Stefan Krah
f817a7b178 Use C-style comments. 2012-09-23 15:46:09 +02:00
Stefan Krah
f21587e3a8 mpd_qpowmod(): calculate result with zero-exponent for compatibility with
decimal.py. The hack to remove the ideal exponent is no longer required.
2012-08-23 15:05:29 +02:00
Stefan Krah
2fd502f6a1 1) Use _mpd_basedivmod() regardless of the length of the dividend. This is
required for a corner case in dec_hash() in the following commit and also
   usually faster. dec_hash() needs some extra precision above MPD_MAX_PREC,
   and _mpd_base_ndivmod() is not audited for that.

2) Use _mpd_basemul() if the length of the smaller operand is less than
   or equal to 256. While this is technically an optimization, it is
   required for *testing* corner cases in dec_hash() in reasonable time.
2012-08-22 18:54:37 +02:00
Stefan Krah
26a1c7a905 Fix Visual Studio warning. 2012-07-20 12:34:18 +02:00
Stefan Krah
e574402bd6 Issue #7652: Clean up _mpd_qinvroot() and mark it LIBMPDEC_ONLY. Use the
algorithm from decimal.py for mpd_qsqrt().
2012-07-12 21:17:59 +02:00
Stefan Krah
5431e30853 After 79d2eb29c755 it is no longer necessary to zero the output array:
None of the _mpd_shortadd() or _mpd_shortmul() functions read uninitialized
values. Previously zeroing was required since _mpd_real_size() was called
on the output array.
2012-06-30 21:57:49 +02:00
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
3077ab8237 Whitespace. 2012-06-23 00:31:04 +02:00
Stefan Krah
50b0a365ba Fix comment. 2012-06-20 23:38:51 +02:00
Stefan Krah
22385011ed Many cleanups of redundant code in mpd_qrem_near():
1) _mpd_qdivmod() uses the context precision only in two places, and
     the new code should be exactly equivalent to the previous code.

  2) Remove misleading comment.

  3) The quotient *is* an integer with exponent 0, so calling mpd_qtrunc()
     is pointless.

  4) Replace two instances of identical code by a single one.

  5) Use _mpd_cmp_abs() instead of mpd_cmp_total_mag(): the operands
     are not special.

  6) Don't clear MPD_Rounded in the status (with the current code it should
     not be set within the function).
2012-06-20 23:34:58 +02:00