E.V.E
v2022.03.00

◆ deta

eve::deta = {}
inlineconstexpr

Callable object computing \( \displaystyle \sum_0^\infty \frac{(-1)^n}{(kn+1)^z}\).

Defined in Header

#include <eve/module/complex.hpp>

Callable Signatures

namespace eve
{
template< eve::floating_value T >
T deta(T x) noexcept; //1
template< eve::floating_value T >
}
constexpr callable_deta_ deta
Callable object computing .
Definition: deta.hpp:61
Definition: all_of.hpp:22
SIMD-compatible representation of complex numbers.
Definition: complex.hpp:40

Parameters

Return value

Returns the Dirichlet sum \( \displaystyle \sum_0^\infty \frac{(-1)^n}{(kn+1)^z}\)

Example

Real version

#include <eve/module/complex.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
wide_ft xf = { 3.0f, 2.0f, 1.0f, 0.5f};
std::cout
<< "---- simd" << std::endl
<< "<- z = " << xf << std::endl
<< "-> deta(1, xf) = " << eve::deta(1u, xf) << std::endl
<< "-> deta(2, xf) = " << eve::deta(2u, xf) << std::endl
<< "-> deta(3, xf) = " << eve::deta(3u, xf) << std::endl;
return 0;
}
Wrapper for SIMD registers.
Definition: wide.hpp:65

Complex version

#include <eve/module/complex.hpp>
#include <eve/wide.hpp>
#include <iostream>
int main()
{
wide_ft ref1 = { 3.0f, 2.0f, 1.0f, 0.6f};
wide_ft imf1 = { 2.0f , -1.0, -5.0, 0.0};
auto zc = eve::as_complex_t<wide_ft>(ref1, imf1);
auto z = eve::as_complex_t<double>(1.0, 0.0);
auto zf= eve::as_complex_t<float >(1.0, 0.0);
std::cout
<< "---- simd" << std::endl
<< "<- z = " << z << std::endl
<< "-> deta(1, z) = " << eve::deta(1u, z) << std::endl
<< "-> deta(2, z) = " << eve::deta(2u, z) << std::endl
<< "-> deta(3, z) = " << eve::deta(3u, z) << std::endl
<< "-> deta(2, 0.2)= " << eve::deta(2u, 0.2)<< std::endl
<< "-> deta(1, 0.2)= " << eve::deta(1u, 0.2)<< std::endl
<< "-> deta(1, z) = " << eve::deta(1u, zf) << std::endl
<< "-> deta(2, z) = " << eve::deta(2u, zf) << std::endl
<< "-> deta(3, z) = " << eve::deta(3u, zf) << std::endl
<< "-> deta(2, 0.2)= " << eve::deta(2u, 0.2f)<< std::endl
<< "-> deta(1, 0.2)= " << eve::deta(1u, 0.2f)<< std::endl
<< "<- zc = " << zc << std::endl
<< "-> deta(1, zc) = " << eve::deta(1u, zc)<< std::endl;
return 0;
}