laserfields
Fortran95 library to describe time-dependent laser pulses
Toggle main menu visibility
Loading...
Searching...
No Matches
Faddeeva_c.h
Go to the documentation of this file.
1
/* Copyright (c) 2012 Massachusetts Institute of Technology
2
*
3
* Permission is hereby granted, free of charge, to any person obtaining
4
* a copy of this software and associated documentation files (the
5
* "Software"), to deal in the Software without restriction, including
6
* without limitation the rights to use, copy, modify, merge, publish,
7
* distribute, sublicense, and/or sell copies of the Software, and to
8
* permit persons to whom the Software is furnished to do so, subject to
9
* the following conditions:
10
*
11
* The above copyright notice and this permission notice shall be
12
* included in all copies or substantial portions of the Software.
13
*
14
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
*/
22
23
/* Available at: http://ab-initio.mit.edu/Faddeeva
24
25
Header file for Faddeeva.c; see Faddeeva.cc for more information. */
26
27
#ifndef FADDEEVA_H
28
#define FADDEEVA_H 1
29
30
// Require C99 complex-number support
31
#include <complex.h>
32
33
#ifdef __cplusplus
34
extern
"C"
35
{
36
#endif
/* __cplusplus */
37
38
// compute w(z) = exp(-z^2) erfc(-iz) [ Faddeeva / scaled complex error func ]
39
extern
double
complex
Faddeeva_w
(
double
complex z,
double
relerr);
40
extern
double
Faddeeva_w_im
(
double
x);
// special-case code for Im[w(x)] of real x
41
42
// Various functions that we can compute with the help of w(z)
43
44
// compute erfcx(z) = exp(z^2) erfc(z)
45
extern
double
complex
Faddeeva_erfcx
(
double
complex z,
double
relerr);
46
extern
double
Faddeeva_erfcx_re
(
double
x);
// special case for real x
47
48
// compute erf(z), the error function of complex arguments
49
extern
double
complex
Faddeeva_erf
(
double
complex z,
double
relerr);
50
extern
double
Faddeeva_erf_re
(
double
x);
// special case for real x
51
52
// compute erfi(z) = -i erf(iz), the imaginary error function
53
extern
double
complex
Faddeeva_erfi
(
double
complex z,
double
relerr);
54
extern
double
Faddeeva_erfi_re
(
double
x);
// special case for real x
55
56
// compute erfc(z) = 1 - erf(z), the complementary error function
57
extern
double
complex
Faddeeva_erfc
(
double
complex z,
double
relerr);
58
extern
double
Faddeeva_erfc_re
(
double
x);
// special case for real x
59
60
// compute Dawson(z) = sqrt(pi)/2 * exp(-z^2) * erfi(z)
61
extern
double
complex
Faddeeva_Dawson
(
double
complex z,
double
relerr);
62
extern
double
Faddeeva_Dawson_re
(
double
x);
// special case for real x
63
64
#ifdef __cplusplus
65
}
66
#endif
/* __cplusplus */
67
68
#endif
// FADDEEVA_H
Faddeeva_erfi
double complex Faddeeva_erfi(double complex z, double relerr)
Faddeeva_erf_re
double Faddeeva_erf_re(double x)
Faddeeva_Dawson_re
double Faddeeva_Dawson_re(double x)
Faddeeva_erfi_re
double Faddeeva_erfi_re(double x)
Faddeeva_erfc_re
double Faddeeva_erfc_re(double x)
Faddeeva_Dawson
double complex Faddeeva_Dawson(double complex z, double relerr)
Faddeeva_erf
double complex Faddeeva_erf(double complex z, double relerr)
Faddeeva_erfc
double complex Faddeeva_erfc(double complex z, double relerr)
Faddeeva_w_im
double Faddeeva_w_im(double x)
Faddeeva_erfcx_re
double Faddeeva_erfcx_re(double x)
Faddeeva_w
double complex Faddeeva_w(double complex z, double relerr)
Faddeeva_erfcx
double complex Faddeeva_erfcx(double complex z, double relerr)
src
Faddeeva_c.h
Generated on
for laserfields by
1.17.0