kyosu v0.1.0
Complex Without Complexes
Loading...
Searching...
No Matches

◆ gegenbauer

auto kyosu::gegenbauer = eve::functor<gegenbauer_t>
inlineconstexpr

Computes the value of the Gegenbauer function of order \(n\).

Computes the value of the Gegenbauer function of order \(n\) and parameter \(\lambda\), \(C^{(\lambda)}_n(z)\) at z. If \(n\) is an integer, the function is a polynomial of degree \(n\).

Header file

#include <kyosu/functions.hpp>

Callable Signatures

namespace eve
{
// Regular overload
auto constexpr gegenbauer( auto n, auto lambda, auto z) noexcept; // 1
// Lanes masking
constexpr auto gegenbauer[conditional_expr auto c](/* any previous overload */) noexcept; // 2
constexpr auto gegenbauer[logical_value auto m](/* any previous overload */) noexcept; // 2
}
constexpr auto lambda
Callable object computing The Dirichlet .
Definition lambda.hpp:70
constexpr auto gegenbauer
Computes the value of the Gegenbauer function of order .
Definition gegenbauer.hpp:82

Parameters

Return value

1.The value of the function at z is returned. real input z is treated as complex(z).

  1. The operation is performed conditionnaly.

External references

Example

// revision 1
#include <eve/wide.hpp>
#include <iostream>
#include <kyosu/kyosu.hpp>
int main()
{
eve::wide xd{0.5, -1.5, 0.1, -1.0, 19.0, 25.0, 21.5, 10000.0};
eve::wide n{0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0};
eve::wide l{-4.3, -1.0, -0.52, 3.2, 4.3, -5.0, 6.1, 0.0};
double x(0.5);
std::cout << "<- xd = " << xd << '\n';
std::cout << "<- n = " << n << '\n';
std::cout << "<- l = " << l << '\n';
std::cout << "<- x = " << x << '\n';
std::cout << "-> gegenbauer(n, l, xd) = " << kyosu::gegenbauer(n, l, xd) << '\n';
std::cout << " ====================================================== " << std::endl;
std::cout << "-> gegenbauer[eve::ignore_last(2)](n, l, xd) = " << kyosu::gegenbauer[eve::ignore_last(2)](n, l, xd)
<< '\n';
std::cout << "-> gegenbauer[n > 3](n, l, xd) = " << kyosu::gegenbauer[n > 3](n, l, xd) << '\n';
std::cout << "-> gegenbauer(3.0, 2.0, xd) = " << kyosu::gegenbauer(3.0, 2.0, xd) << '\n';
std::cout << "-> gegenbauer(n, l, 2.0) = " << kyosu::gegenbauer(n, l, 2.0) << '\n';
std::cout << "-> gegenbauer(n, l, x) = " << kyosu::gegenbauer(n, l, x) << '\n';
}