E.V.E
v2022.09.01

◆ faddeeva

eve::faddeeva = {}
inlineconstexpr

Callable object computing \(e^{-z^2}\mathrm{erfc}(-iz)\) the scaled complex error func.

Defined in Header

#include <eve/module/complex.hpp>

Callable Signatures

namespace eve
{
template< like<complex> T >
T faddeeva(T z) noexcept;
}
constexpr callable_faddeeva_ faddeeva
Callable object computing the scaled complex error func.
Definition: faddeeva.hpp:60
Definition: all_of.hpp:22

Parameters

Return value

Returns \(e^{-z^2}\mathrm{erfc}(-iz)\) the scaled complex error func

Example

Complex version

#include <eve/module/complex.hpp>
#include <eve/wide.hpp>
#include <iostream>
//using wide_ft = eve::wide <double, eve::fixed<4>>;
int main()
{
// wide_ft ref = { 1.0, 1.0, -1.0, 0.5};
// wide_ft imf = { 0.0 , -1.0, -5.0, 0.0};
// auto z = eve::as_complex_t<wide_ft>(ref, imf);
// std::cout
// << "---- simd" << std::endl
// << "<- z = " << z << std::endl
// << "-> faddeeva(z) = " << eve::faddeeva(z) << std::endl;
auto pr = [](double x, double y){
auto z = cft{x, y};
std::cout << " z " << z << std::endl;
auto fz = eve::faddeeva(z);
std::cout << "fz "<< fz << std::endl;
// std::cout << "z = " << z << "-> fad(z) = "<< fz << std::endl;
};
pr(1.0, 1.0);
pr(0.5, 1.0);
pr(10, 10);
pr(65, 0);
pr(0.01, 1);
pr(1.0e-4, 2);
pr(0.785398163397448, 0);
return 0;
}
constexpr callable_nan_ nan
Computes the IEEE NaN constant.
Definition: nan.hpp:53
constexpr callable_inf_ inf
Computes the infinity ieee value.
Definition: inf.hpp:58
Lightweight type-wrapper.
Definition: as.hpp:29
SIMD-compatible representation of complex numbers.
Definition: complex.hpp:40