xref: /netbsd-src/external/lgpl3/mpc/dist/NEWS (revision 367b82799ab709709d3c3b541df56a2a14644d3e)
1Changes in version 1.3.1, released in December 2022:
2  - Bug fix: It is again possible to include mpc.h without including
3    stdio.h.
4
5Changes in version 1.3.0 ("Ipomoea batatas"), released in December 2022:
6  - New function: mpc_agm
7  - New rounding modes "away from zero", indicated by the letter "A" and
8    corresponding to MPFR_RNDA on the designated real or imaginary part.
9  - New experimental ball arithmetic.
10  - New experimental function: mpc_eta_fund
11  - Bug fixes:
12    - mpc_asin for asin(z) with small |Re(z)| and tiny |Im(z)|
13    - mpc_pow_fr: sign of zero part of result when the base has up to sign
14      the same real and imaginary part, and the exponent is an even
15      positive integer
16    - mpc_fma: the returned 'int' value was incorrect in some cases (indicating
17      whether the rounded real/imaginary parts were smaller/equal/greater
18      than the exact values), but the computed complex value was correct.
19  - Remove the unmaintained Makefile.vc; build files for Visual Studio
20    can be found at https://github.com/BrianGladman/mpc .
21
22Changes in version 1.2.1, released in October 2020:
23  - Bug fixes:
24    - Fix an incompatibility problem with GMP 6.0 and before.
25    - Fix an intermediate overflow in asin.
26
27Changes in version 1.2.0 ("Hyacinthus orientalis"), released in August 2020:
28  - Minimally required library version: MPFR 4.1.0
29  - New functions: mpc_sum, mpc_dot
30  - Several functions are more robust with a reduced exponent range
31    (for example corresponding to IEEE 754 binary formats)
32  - New tool mpcheck.
33
34Changes in version 1.1.0 ("Gladiolus palustris"), released in January 2018:
35  - Minimally required library versions: GMP 5.0.0 and MPFR 3.0.0
36  - Fixed issues with MPFR 4.0.0
37  - New functions: mpc_cmp_abs, mpc_rootofunity
38  - Improved speed for corner cases of mpc_asin, mpc_sin, see
39    https://sympa.inria.fr/sympa/arc/mpc-discuss/2013-12/msg00001.html
40  - Rewrite of the testing framework
41  - New mpcbench tool, used with "make bench"
42  - Fixed handling of over- and underflows with directed rounding in the
43    "other direction" for mpc_cos, mpc_sin, mpc_exp and mpc_pow, see
44    https://sympa.inria.fr/sympa/arc/mpc-discuss/2015-03/msg00003.html
45  - Fixed a bug in mpc_atan(0,y) with |y| near 1, see
46    https://sympa.inria.fr/sympa/arc/mpc-discuss/2017-03/msg00000.html
47
48Changes in version 1.0.3, released in February 2015:
49  - Fixed mpc_pow, see
50    https://sympa.inria.fr/sympa/arc/mpc-discuss/2014-10/msg00005.html
51  - #18257: Switched to libtool 2.4.5.
52
53Changes in version 1.0.2, released in January 2014:
54  - Fixed mpc_atan, mpc_atanh for (+-0, +-1), see
55    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57994#c7
56  - Fixed mpc_log10 for purely imaginary argument, see
57    https://sympa.inria.fr/sympa/arc/mpc-discuss/2012-09/msg00001.html
58
59Changes in version 1.0.1, released in September 2012:
60  - Switched to automake 1.11.6, see
61    https://lists.gnu.org/archive/html/automake/2012-07/msg00023.html
62  - #14669: Fixed extraction of CC from gmp.h
63  - Fixed case of intermediate zero real or imaginary part in mpc_fma,
64    found by hydra with GMP_CHECK_RANDOMIZE=1346362345
65
66Changes in version 1.0 ("Fagus silvatica"), released in July 2012:
67  - First release as a GNU package
68  - License change: LGPLv3+ for code, GFDLv1.3+ (with no invariant sections)
69    for documentation
70  - 100% of all lines are covered by tests
71  - Functions renamed:
72    mpc_mul_2exp to mpc_mul_2ui, mpc_div_2exp to mpc_div_2ui
73  - 0^0, which returned (NaN,NaN) previously, now returns (1,+0)
74  - Removed compatibility with K&R compilers, untestable due to lack of
75    such compilers
76  - New functions: mpc_log10, mpc_mul_2si, mpc_div_2si
77  - Speed-ups:
78    - mpc_fma
79  - Bug fixes:
80    - mpc_div and mpc_norm now return a value indicating the effective
81      rounding direction, as the other functions
82    - mpc_mul, mpc_sqr and mpc_norm now return correct results even if there
83      are over- or underflows during the computation
84    - mpc_asin, mpc_proj, mpc_sqr: Wrong result when input variable has
85      infinite part and equals output variable is corrected
86    - mpc_fr_sub: Wrong return value for imaginary part is corrected
87
88Changes in version 0.9 ("Epilobium montanum"), released in February 2011:
89  - New functions:
90    - mpc_set_dc, mpc_set_ldc, mpc_get_dc, mpc_get_ldc for converting
91      between mpc type variables and C variables of type double _Complex
92      or long double _Complex
93    - mpc_sin_cos, computing simultaneously the sine and cosine
94  - Speed-ups:
95    - mpc_pow_si through binary exponentiation
96    - mpc_pow_z when the exponent fits in a long
97    - mpc_tan through the use of mpc_sin_cos
98  - Bug fixes:
99    - trigonometric functions: infinite loop due to overflow for large
100      arguments
101    - mpc_exp: close to infinite loop for argument close to 0
102    - mpc_sqrt: close to infinite loop for argument close to 1
103    - mpc_add_si: replaced macro by function, since the macro evaluated the
104      same expression twice
105  - Logging feature for debugging:
106      ./configure --enable-logging
107      #include "mpc-log.h" instead of #include "mpc.h"
108  - Minimally required library versions: gmp 4.3.2, mpfr 2.4.2
109
110Changes in version 0.8.2, released in May 2010:
111  - Speed-up of mpc_pow_ui through binary exponentiation
112
113Changes in version 0.8.1, released in December 2009:
114  - Bug fixes:
115    - mpc_acosh, mpc_asinh, mpc_atanh: swap of precisions between real and
116      imaginary parts
117    - mpc_atan: memory leak
118    - mpc_log: wrong ternary value in data file; masked by bug in mpfr-2.4.1
119
120Changes in version 0.8 ("Dianthus deltoides"), released in November 2009:
121  - New functions:
122    - mpc_asin, mpc_acos, mpc_atan, mpc_asinh, mpc_acosh, mpc_atanh,
123      mpc_pow_d, mpc_pow_ld, mpc_pow_si, mpc_pow_ui, mpc_pow_z, mpc_pow_fr
124  - Bug fixes:
125    - mpc_ui_div: real divisor
126
127Changes in version 0.7 ("Campanula uniflora"), released in September 2009:
128  - New functions: mpc_pow, mpc_set_nan, mpc_swap
129  - Bug fixes:
130    - mpc_log: along branch cut
131    - mpc_norm: infinite loop in case of overflow
132    - mpc_ui_div, mpc_div, mpc_fr_div: handling of division by 0 and
133      infinities following the example code of the C99 standard
134    - compilation with g++
135  - Makefile.vc updated (thanks to Mickael Gastineau)
136  - Minimal gmp version is 4.2
137  - Changed MPC_SET_X_Y macro
138  - Functions mpc_random and mpc_random2 removed
139
140Changes in version 0.6 ("Bellis perennis"), released in April 2009:
141  - New functions: mpc_get_str, mpc_set_str, mpc_strtoc, mpc_set_uj,
142    mpc_set_sj, mpc_set_ld, mpc_set_ld_ld, mpc_set_si_si, mpc_set_uj_uj,
143    mpc_set_sj_sj, mpc_set_f, mpc_set_f_f, mpc_set_q, mpc_set_q_q, mpc_set_z,
144    mpc_set_z_z and mpc_free_str
145  - New macro: MPC_SET_X_Y
146  - mpc_set_ui_fr removed
147  - Default precision removed, as well as mpc_init and all mpc_init_set*
148    combinations; use mpc_init2 or mpc_init3, followed by mpc_set, instead
149  - mpc_exp, mpc_log, mpc_cos, mpc_sin, mpc_tan, mpc_cosh, mpc_sinh,
150    mpc_tanh and mpc_sqrt return inexact value
151  - inp_str returns inexact value and the number of read characters
152    in an additional parameter
153  - Get default $CC and $CFLAGS from gmp.h (__GMP_CC / __GMP_CFLAGS,
154    which are available as of GMP 4.2.3)
155  - Bug fixes:
156    - mpc_get_version and MPC_VERSION_STRING agree
157    - Compilation on i686-pc-cygwin and i686-pc-mingw32 fixed
158
159Changes in version 0.5.2, released in December 2008:
160  - New macros:
161    - version number: MPC_VERSION_NUM, MPC_VERSION
162  - Makefile.vc updated (thanks to Mickael Gastineau)
163  - Compilation on Debian-Gnu-Linux-PowerPC and MacOsX
164    fixed (thanks to Laurent Fousse and Mickael Gastineau)
165
166Changes in version 0.5.1, released in November 2008:
167  - New functions:
168    - mpc_set_fr_fr
169    - mpc_real, mpc_imag
170    - mpc_arg, mpc_proj
171  - New macros:
172    - version number: MPC_VERSION_MAJOR, MPC_VERSION_MINOR,
173      MPC_VERSION_PATCHLEVEL, MPC_VERSION_STRING
174    - references to number parts: mpc_realref and mpc_imagref
175  - Test framework rewritten
176  - Configure checks for recent gmp (>= 4.2) and mpfr (>= 2.3.1)
177    libraries
178  - New configure options: --with-gmp-lib, --with-gmp-include,
179     --with-mpfr-lib, and --with-mpfr-include
180  - Export declarations for MSWindows, makefile.vc updated (thanks to
181    Mickael Gastineau)
182  - Optimisations:
183    - cmp_mul_fr, cmp_sin, cmp_cos
184  - Bug fixes:
185    - configure looks for gmp first, then for mpfr
186    - mpc_cos, mpc_div, mpc_div_fr, mpc_fr_sub, mpc_mul_fr, mpc_set_fr,
187      mpc_sqr
188    - fix handling of special values: mpc_exp, mpc_log, mpc_mul, mpc_norm,
189      mpc_sqr, mpc_sqrt
190
191Changes in version 0.5 ("Aconitum neomontanum"), released in September 2008:
192  - Support for autotools
193  - New functions:
194     - logarithm
195     - trigonometric functions: mpc_cos, mpc_tan
196     - hyperbolic functions: mpc_cosh, mpc_sinh, mpc_tanh
197  - Bug fixes:
198    - mpc_sqrt with directed rounding
199
200
201Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2022 INRIA
202
203Copying and distribution of this file, with or without modification,
204are permitted in any medium without royalty provided the copyright
205notice and this notice are preserved. This file is offered as-is,
206without any warranty.
207