File indexing completed on 2024-05-12 03:47:49
0001 /* 0002 SPDX-FileCopyrightText: 2012 Massachusetts Institute of Technology 0003 SPDX-License-Identifier: MIT 0004 */ 0005 0006 /* Available at: http://ab-initio.mit.edu/Faddeeva 0007 0008 Header file for Faddeeva.c; see Faddeeva.cc for more information. */ 0009 0010 #ifndef FADDEEVA_H 0011 #define FADDEEVA_H 1 0012 0013 // Require C99 complex-number support 0014 #include <complex.h> 0015 0016 #ifdef __cplusplus 0017 extern "C" { 0018 #endif /* __cplusplus */ 0019 0020 // compute w(z) = exp(-z^2) erfc(-iz) [ Faddeeva / scaled complex error func ] 0021 extern double complex Faddeeva_w(double complex z, double relerr); 0022 extern double Faddeeva_w_im(double x); // special-case code for Im[w(x)] of real x 0023 0024 // Various functions that we can compute with the help of w(z) 0025 0026 // compute erfcx(z) = exp(z^2) erfc(z) 0027 extern double complex Faddeeva_erfcx(double complex z, double relerr); 0028 extern double Faddeeva_erfcx_re(double x); // special case for real x 0029 0030 // compute erf(z), the error function of complex arguments 0031 extern double complex Faddeeva_erf(double complex z, double relerr); 0032 extern double Faddeeva_erf_re(double x); // special case for real x 0033 0034 // compute erfi(z) = -i erf(iz), the imaginary error function 0035 extern double complex Faddeeva_erfi(double complex z, double relerr); 0036 extern double Faddeeva_erfi_re(double x); // special case for real x 0037 0038 // compute erfc(z) = 1 - erf(z), the complementary error function 0039 extern double complex Faddeeva_erfc(double complex z, double relerr); 0040 extern double Faddeeva_erfc_re(double x); // special case for real x 0041 0042 // compute Dawson(z) = sqrt(pi)/2 * exp(-z^2) * erfi(z) 0043 extern double complex Faddeeva_Dawson(double complex z, double relerr); 0044 extern double Faddeeva_Dawson_re(double x); // special case for real x 0045 0046 #ifdef __cplusplus 0047 } 0048 #endif /* __cplusplus */ 0049 0050 #endif // FADDEEVA_H