E.V.E
v2022.09.01

◆ double_factorial

eve::double_factorial = {}
inlineconstexpr

Computes the double factorial of n

THe double factorial is defined as \(\displaystyle (2n)!! = \prod_{i=1}^n (2i)\) and \(\displaystyle (2n+1)!! = \prod_{i=0}^n (2i+1)\)

Defined in header

#include <eve/module/special.hpp>

Callable Signatures

namespace eve
{
template< eve::unsigned_value N >
eve::as_double_as<N, double> double_factorial(N n) noexcept;
}
constexpr callable_double_factorial_ double_factorial
Computes the double factorial of n
Definition: double_factorial.hpp:52
Definition: all_of.hpp:22

Parameters

Return value

The value of the double factorial of n is returned.

Example

#include <eve/module/special.hpp>
#include <eve/wide.hpp>
#include <iomanip>
#include <iostream>
int main()
{
w32_t pi32 = {1, 2, 3, 4, 5, 6, 181, 182};
std::cout << "---- simd" << std::setprecision(17) << '\n'
<< " <- pi32 = " << pi32 << '\n'
<< " -> double_factorial(pi32) = " << eve::double_factorial(pi32) << '\n';
std::uint32_t xi = 18;
std::cout << "---- scalar" << '\n'
<< " xi = " << xi << '\n'
<< " -> double_factorial(xi) = " << eve::double_factorial(xi) << '\n';
return 0;
}
Wrapper for SIMD registers.
Definition: wide.hpp:65