File: CHANGELOG

package info (click to toggle)
libcerf 3.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 760 kB
  • sloc: ansic: 4,905; f90: 250; makefile: 18
file content (184 lines) | stat: -rw-r--r-- 9,142 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
== Revision history of libcerf, maintained by Joachim Wuttke ==

libcerf-3.1, released 3aug25:
  - Fix function value erfcx(12), bug reported by Thomas Höring
  - Improved test coverage of erfcx and imwofx

libcerf-3.0, released 24apr25:
  - Important changes to the application binary interfaces (ABIs):
    - CMake builds both libcerf (C ABI) and libcerfcpp (C++ ABI), unless option
      CERF_C=OFF or CERF_CPP=OFF.
    - Linking the C ABI libcerf with C++ is no longer supported
  - Minor cleanups overlooked in release 2.5
  - Remove introspection variables, no longer needed as we now dispose of rigorous
    error estimates

libcerf-2.5, released 16apr25:
  - Piecewise polynomial approximation for functions im_w_of_c and erfcx rederived
    for guaranteed accuracy. Methods explained in Joachim Wuttke and Alexander Kleinsorge:
    "Code generation for piecewise Chebyshev approximation." Preprint available upon request.
  - Required C standard is now C11 (we need the _Alignas specifier)
  - Minor optimization of width.c (contributed by Alexander Kleinsorge)
  - For arbitrary numeric constants, choose powers of 2 (suggested by Alexander Kleinsorge)

libcerf-2.4, released 2aug23:
  - CMake: runtime destination corrected (bin, not lib)
  - CMake: removed option PORTABLE and compiler flag -march (unavailable on some architectures)

libcerf-2.3, released 10jan23:
  - Fix compiler flags; use -O3 for Release
    - Introduce CERF_COMPILE_OPTIONS to let users overwrite the hard-coded compile options
  - Under gcc, use -march=native
    - PACKAGE MAINTAINERS: use -DPORTABLE=ON to override this !!
  - Add test coverage for erfcx, dawson, im_w_of_x (against nearby complex and status quo)
  - Avoid some divisions in function voigt (suggested by Alexander Kleinsorge)
  - Accelerate lookup in erfcx, im_w_of_x (avoid long switch, contributed by Alexander Kleinsorge)
  - Work around clang bug https://github.com/llvm/llvm-project/issues/59681 (0+I*Inf->NaN)

libcerf-2.2, released 7nov22:
  - No longer raise underflow error in w_of_z for large real arg (contributed by Ethan Merritt)
  - In test suite, confound zero with values close to underflow
  - Remove some invisible files that had slipped in accidentally (noticed by Christoph Junghans)
  - Windows binary now built with Visual Studio 17 2022

libcerf-2.1, released 8apr22:
  - Provide cerfConfig.cmake (contributed by Lori A. Burns and Christoph Junghans)
  - libcerf.pc: Remove hard-coded lib/
  - Version number incremented to overcome upstream problems with withdrawn release 2.0

libcerf-1.17, released 29jun21:
  - Correct pkgconfig installation directory (use GNU install dirs, install to LIBDIR/pkgconfig)

libcerf-1.16, released 23jun21:
  - voigt_hwhm: replaced Newton's method (which failed for rare parameter combinations)
      by Illinois regula falsi (contributed by Ethan A Merritt)
  - Some internal cleanup, especially of include directives

libcerf-1.15, released 10jun21:
  - Use assertion in voigt_hwhm to check for impossible situations
      (to avoid fprintf and exit, as suggested by Ethan A Merritt)
  - Added widthtest, which tests voigt_hwhm for numerous ratios gamma/sigma
  - libcerf.pc.in: correct prefix (as suggested by Alexander Grund)
  - CMake install
    - make full use of CMAKE_INSTALL_<dir> variables
    - DESTINATION now given by LIBDIR from GNUInstallDirs
  - Support CPack for all platforms

libcerf-1.14, released 19oct20:
  - Simplified test code
  - Homepage moved to https://jugit.fz-juelich.de/mlz/libcerf, 17mar19

libcerf-1.13, released 28feb19:
  - Further adjustments for compilation under Windows

libcerf-1.12, released 7feb19:
  - Require CMake 3.6, outcomment code that requires 3.13.
  - Relative paths in CMake sources, for use as subproject.
  - When compiling as CPP, then #include<complex>, not <complex.h>;
    revise the entire C-vs-CPP machinery.
  - Remove tests with different inf or nan results on different systems or under
    different compilers.

libcerf-1.11, released 28dec18:
  - Cover voigt by test_voigt.
  - Implement new function voigt_hwhm.
  - Restore libcerf.pc.
  - Add INSTALL instructions, and other minor adjustments for use of libcerf in C++ projects.
  - Support 'ctest', which runs the numeric accuracy tests from test1.c.
  - Rename type cmplx into _cerf_cmplx to avoid name clash with Gnuplot pre 5.3.

libcerf-1.8 [2oct18], libcerf-1.9 [16oct18] and libcerf-1.10 [20dec18]
  MUST NOT BE USED
  - A bug introduced in v1.8 had broken the normalization of the Voigt function.
  - The git history leading to v1.10 has been rewritten, starting anew from v1.7

libcerf-1.7, released 26sep18:
  - Option -DCERF_CPP allows to choose C++ compilation, which is useful
    because MS VisualStudio supports C++14, but not yet C99, and in
    particular does not support complex.h under C.

libcerf-1.6, released 20sep18:
  - Migrated from automake to CMake.
  - Corrected typos in man pages.

libcerf-1.5, released 12oct16:
  - Removed unused inline function (detected by clang-1.3., reported by Luke Benes)

libcerf-1.4, released 27aug14:
  - HTML version of man pages no longer installs to man/html.
  - More concise man pages.
  - Delete a few unused include's.
  - Autotools script corrected (suggestions by Christoph Junghans).

libcerf-1.3, released 17jul13:
  - Now supporting pkg-config (suggested by Mojca Miklavec).

libcerf-1.2, released 16jul13:
  - Test programs no longer install to $bindir (reported by Mojca Miklavec).

libcerf-1.1, released 12may13:
  - Added Fortran binding by Antonio Cervellino.

libcerf-1.0, released 31jan13 by Joachim Wuttke:
  - Based on http://ab-initio.mit.edu/Faddeeva as of 28jan13.
  - Verified accuracy using double-exponential transform.
  - Simplified function names;
    use leading 'c' for complex functions (except in w_of_z).
  - Added function voigt(x,sigma,gamma).
  - Added configure.ac, Makefile.am &c to allow for autotools standard
    installation (commands ./configure, make, sudo make install).
  - Splitted source code into directories lib/ and test/.
  - Eliminated unused alternate code (!USE_CONTINUED_FRACTION).
  - Eliminated relerr arguments.
  - Replaced "complex" by "_Complex" for C++ compatibility.
  - Wrote man pages w_of_z(3), dawson(3), voigt(3), cerf(3), erfcx(3), erfi(3).
  - Created project home page http://apps.jcns.fz-juelich.de/libcerf.
  - Registered project "libcerf" at sourceforge.net.

== Revision history of Faddeeva.cc by Steven G. Johnson ==

Project at http://ab-initio.mit.edu/Faddeeva

  4 October 2012: Initial public release (SGJ)
  5 October 2012: Revised (SGJ) to fix spelling error,
                  start summation for large x at round(x/a) (> 1)
                  rather than ceil(x/a) as in the original
                  paper, which should slightly improve performance
                  (and, apparently, slightly improves accuracy)
 19 October 2012: Revised (SGJ) to fix bugs for large x, large -y,
                  and 15<x<26. Performance improvements. Prototype
                  now supplies default value for relerr.
 24 October 2012: Switch to continued-fraction expansion for
                  sufficiently large z, for performance reasons.
                  Also, avoid spurious overflow for |z| > 1e154.
                  Set relerr argument to min(relerr,0.1).
 27 October 2012: Enhance accuracy in Re[w(z)] taken by itself,
                  by switching to Alg. 916 in a region near
                  the real-z axis where continued fractions
                  have poor relative accuracy in Re[w(z)].  Thanks
                  to M. Zaghloul for the tip.
 29 October 2012: Replace SLATEC-derived erfcx routine with
                  completely rewritten code by me, using a very
                  different algorithm which is much faster.
 30 October 2012: Implemented special-case code for real z
                  (where real part is exp(-x^2) and imag part is
                   Dawson integral), using algorithm similar to erfx.
                  Export ImFaddeeva_w function to make Dawson's
                  integral directly accessible.
 3 November 2012: Provide implementations of erf, erfc, erfcx,
                  and Dawson functions in Faddeeva:: namespace,
                  in addition to Faddeeva::w.  Provide header
                  file Faddeeva.hh.
 4 November 2012: Slightly faster erf for real arguments.
                  Updated MATLAB and Octave plugins.
27 November 2012: Support compilation with either C++ or
                  plain C (using C99 complex numbers).
                  For real x, use standard-library erf(x)
                  and erfc(x) if available (for C99 or C++11).
                  #include "config.h" if HAVE_CONFIG_H is #defined.
15 December 2012: Portability fixes (copysign, Inf/NaN creation),
                  use CMPLX/__builtin_complex if available in C,
                  slight accuracy improvements to erf and dawson
                  functions near the origin.  Use gnulib functions
                  if GNULIB_NAMESPACE is defined.
18 December 2012: Slight tweaks (remove recomputation of x*x in Dawson)