Complex Error Function Algorithm
Contents |
toolboxes, and other File Exchange content using Add-On Explorer in MATLAB. » Watch video Highlights from Faddeeva Package: complex error functions Faddeeva_build.m Faddeeva_Dawson.m Faddeeva_erf.m Faddeeva_erfc.m Faddeeva_erfcx.m Faddeeva_erfi.m Faddeeva_w.m View all files Join complex error function matlab the 15-year community celebration. Play games and win prizes! » Learn more
Error Function Of Complex Argument
4.75 4.8 | 4 ratings Rate this file 26 Downloads (last 30 days) File Size: 50.1 KB File ID: #38787
Function Algorithm Latex
Version: 1.5 Faddeeva Package: complex error functions by Steven G. Johnson Steven G. Johnson (view profile) 1 file 26 downloads 4.75 26 Oct 2012 (Updated 17 Dec 2012) C++ MEX
Complex Gamma Function
plugins to compute error functions (erf, erfc, erfi, erfcx, Faddeeva, ...) of complex args | Watch this File File Information Description C++ source code for compiled plugins (MEX files) to compute various error functions for complex arguments: ** Faddeeva_erf(z) -- the error function ** Faddeeva_erfc(z) = 1 - erf(z) -- complementary error function ** Faddeeva_erfi(z) = -i erf(iz) -- imaginary error function ** Faddeeva_erfcx(z) error function values = exp(z^2) erfc(z) -- scaled complementary error function ** Faddeeva_w(z) = exp(-z^2) erfc(-iz) -- Faddeeva function ** Faddeeva_Dawson(z) = 0.5 sqrt(pi) exp(-z^2) erfi(z) -- Dawson function From e.g. the Faddeeva function, one can also obtain the Voigt functions and other related functions. Assuming you have a C++ compiler (and have configured it in MATLAB with mex -setup), compile by running the included Faddeeva_build.m script in MATLAB: Faddeeva_build All of the functions have usage of the form: w = Faddeeva_w(z) or optionally Faddeeva_w(z, relerr), where relerr is a desired relative error (default: machine precision). z may be an array or matrix of complex or real numbers. This code may also be downloaded from http://ab-initio.mit.edu/Faddeeva along with documentation and other versions. As described in the source code, this implementation uses a combination of algorithms for the Faddeeva function: a continued-fraction expansion for large |z| [similar to G. P. M. Poppe and C. M. J. Wijers, "More efficient computation of the complex error function," ACM Trans. Math. Soft. 16 (1), pp. 38–46 (1990)], and a completely different algorithm for smaller |z| [Mofreh R. Zaghloul and Ahmed N. Ali, "Algorithm 916: Computing the Fadd
arguments. In particular, we provide: w, the Faddeeva function , where erfc is the complementary error function. erf, complementary error function the error function erfc, the complementary error function erfcx, the scaled how to calculate error function in casio calculator complementary error function erfi, the imaginary error function Dawson, the Dawson function Given the Faddeeva function error function calculator w(z) and the other complex error functions, one can also easily compute Voigt functions, Fresnel integrals, and similar related functions as well. In benchmarks of our code, https://www.mathworks.com/matlabcentral/fileexchange/38787-faddeeva-package--complex-error-functions we find that it is comparable to or faster than most competing software for these functions in the complex plane (but we also have special-case optimizations for purely real or imaginary arguments), and we find that the accuracy is typically at at least 13 significant digits in both the real and imaginary parts. Because all http://ab-initio.mit.edu/wiki/index.php/Faddeeva_Package of the algorithms are based on algorithms for the Faddeeva function, we call this the Faddeeva Package. Contents 1 Download 2 Usage 3 Wrappers: C, Matlab, GNU Octave, Python, R, Scilab, Julia 4 Algorithms 5 Test program 6 License [edit]Download Download the source code from: http://ab-initio.mit.edu/Faddeeva.cc and http://ab-initio.mit.edu/Faddeeva.hh (updated 12 May 2015) See also below for wrappers to call the Faddeeva package from other languages. This code has also been packaged into the libcerf and openlibm libraries. [edit] Usage To use the code, include the Faddeeva.hh header file: #include "Faddeeva.hh" and compile and link the Faddeeva.cc source code. You can then call various functions. For example: extern std::complex
Google+ LinkedIn Reddit Download Full-text PDF Efficient algorithmic implementation of the Voigt/complex error function based on exponential series approximationArticle (PDF Available) in Applied Mathematics and Computation 218(5):1894–1902 · November 2011 with 308 https://www.researchgate.net/publication/256936262_Efficient_algorithmic_implementation_of_the_Voigtcomplex_error_function_based_on_exponential_series_approximation ReadsDOI: 10.1016/j.amc.2011.06.072 · Source: DBLP1st S. M. Abrarov20.85 · York University2nd B. M. Quine21.93 · York UniversityAbstractWe show that a Fourier expansion of the exponential multiplier yields an exponential series that can compute high-accuracy values of the complex error function in a rapid algorithm. Numerical error analysis and computational test reveal that with essentially higher accuracy it is as fast error function as FFT-based Weideman’s algorithm at a regular size of the input array and considerably faster at an extended size of the input array. As this exponential series approximation is based only on elementary functions, the algorithm can be implemented utilizing freely available functions from the standard libraries of most programming languages. Due to its simplicity, rapidness, high-accuracy and coverage of complex error function the entire complex plane, the algorithm is efficient and practically convenient in numerical methods related to the spectral line broadening and other applications requiring error-function evaluation over extended input arrays.Discover the world's research10+ million members100+ million publications100k+ research projectsJoin for free FiguresEnlargeEnlarge+ 2 Efficient algorithmic implementation of the Voigt/complex errorfunction based on exponential series approximationS.M. Abrarova,⇑, B.M. Quinea,baDepartment of Earth and Space Science and Engineering, York University, 4700 Keele Street, Toronto, Canada M3J 1P3bDepartment of Physics and Astronomy, York University, 4700 Keele Street, Toronto, Canada M3J 1P3article infoKeywords:Complex error functionVoigt functionFaddeeva functionWeideman’s algorithmComplex probability functionPlasma dispersion functionSpectral line broadeningabstractWe show that a Fourier expansion of the exponential multiplier yields an exponential ser-ies that can compute high-accuracy values of the complex error function in a rapid algo-rithm. Numerical error analysis and computational test reveal that with essentiallyhigher accuracy it is as fast as FFT-based Weideman’s algorithm at a regular size of theinput array and considerably faster at an extended size of the input array. As this exponen-tial series approximation is based only on elementary functions, the algorithm can beimpl