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