Home | Back
== Revision history of libcerf, maintained by Joachim Wuttke ==

libcerf-1.2, released 16jul13:
  - test programs no longer install to $bindir (reported by M. Miclavec).

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)