comparison libinterp/octave-value/ov-float.cc @ 15696:2fac72a256ce

Add complex erf,erfc,erfcx,erfi,dawson routines from Faddeeva package. * libinterp/corefcn/mappers.cc: Add erfi and dawson mapper functions, and add complex-argument test cases for erf, erfc, erfcx, erfi, and dawson. * libinterp/octave-value/ov-base.cc, libinterp/octave-value/ov-base.h: Add erfi and dawson mapper functions. * libinterp/octave-value/ov-complex.cc, libinterp/octave-value/ov-cx-mat.cc, libinterp/octave-value/ov-cx-sparse.cc, libinterp/octave-value/ov-float.cc, libinterp/octave-value/ov-flt-complex.cc, libinterp/octave-value/ov-flt-cx-mat.cc, libinterp/octave-value/ov-flt-re-mat.cc, libinterp/octave-value/ov-re-mat.c, libinterp/octave-value/ov-re-sparse.cc, libinterp/octave-value/ov-scalar.cc, libinterp/octave-value/ov.h: Support erf, erfc, erfcx, erfi, and dawson mapper functions for real and complex matrices and scalars. * liboctave/cruft/Faddeeva/Faddeeva.cc, liboctave/cruft/Faddeeva/Faddeeva.hh: liboctave/cruft/Faddeeva/module.mk, liboctave/cruft/Makefile.am: Add Faddeeva package (from http://ab-initio.mit.edu/Faddeeva) to libcruft, to provide the various complex-argument error functions. * liboctave/numeric/lo-specfun.cc, liboctave/numeric/lo-specfun.h: Add complex-argument erf, erfc, erfcx, erfi, and dawson functions to liboctave API. Delete previous real-argument erfcx implementation in favor of Faddeeva::erfcx (which seems to be slightly faster in gcc/x86-64 benchmarks, with similar accuracy). * doc/interpreter/arith.txi: Include erfi and dawson documentation.
author Steven G. Johnson <stevenj@alum.mit.edu>
date Tue, 27 Nov 2012 23:39:54 -0500
parents ecf5be238b4a
children d39342a19fb8
comparison
equal deleted inserted replaced
15683:806ea52af230 15696:2fac72a256ce
293 SCALAR_MAPPER (erf, ::erff); 293 SCALAR_MAPPER (erf, ::erff);
294 SCALAR_MAPPER (erfinv, ::erfinv); 294 SCALAR_MAPPER (erfinv, ::erfinv);
295 SCALAR_MAPPER (erfcinv, ::erfcinv); 295 SCALAR_MAPPER (erfcinv, ::erfcinv);
296 SCALAR_MAPPER (erfc, ::erfcf); 296 SCALAR_MAPPER (erfc, ::erfcf);
297 SCALAR_MAPPER (erfcx, ::erfcx); 297 SCALAR_MAPPER (erfcx, ::erfcx);
298 SCALAR_MAPPER (erfi, ::erfi);
299 SCALAR_MAPPER (dawson, ::dawson);
298 SCALAR_MAPPER (gamma, xgamma); 300 SCALAR_MAPPER (gamma, xgamma);
299 SCALAR_MAPPER (lgamma, rc_lgamma); 301 SCALAR_MAPPER (lgamma, rc_lgamma);
300 SCALAR_MAPPER (cbrt, ::cbrtf); 302 SCALAR_MAPPER (cbrt, ::cbrtf);
301 SCALAR_MAPPER (ceil, ::ceilf); 303 SCALAR_MAPPER (ceil, ::ceilf);
302 SCALAR_MAPPER (cos, ::cosf); 304 SCALAR_MAPPER (cos, ::cosf);