std::laguer...d::laguerrel(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… std::laguerre, std::laguerref, std::laguerrel πŸ’…

okay bestie, welcome to the C++ Standard Library manual page std::laguer...d::laguerrel(3) β€” yes, the title has that little ... moment and we are simply living with it. this page is all about the Laguerre polynomial girlies. πŸ’–


🌸 NAME 🌸

std::laguerre,std::laguerref,std::laguerrel β€” std::laguerre,std::laguerref,std::laguerrel

✨ Synopsis ✨

double      laguerre( unsigned int n, double x );

double      laguerre( unsigned int n, float x );
double      laguerre( unsigned int n, long double x );  (1)
float       laguerref( unsigned int n, float x );

long double laguerrel( unsigned int n, long double x );
double      laguerre( unsigned int n, IntegralType x ); (2)
  1. Computes the non-associated Laguerre polynomials of the degree n and argument x.
  2. A set of overloads or a function template accepting an argument of any integral type. Equivalent to (1) after casting the argument to double.

As all special functions, laguerre is only guaranteed to be available in <cmath> if __STDCPP_MATH_SPEC_FUNCS__ is defined by the implementation to a value at least 201003L and if the user defines __STDCPP_WANT_MATH_SPEC_FUNCS__ before including any standard library headers. read the preprocessor tea leaves first, bestie. β˜•οΈ

πŸ’– Parameters πŸ’–

  • n β€” the degree of the polynomial, a value of unsigned integer type.
  • x β€” the argument, a value of a floating-point or integral type.

πŸ¦‹ Return value πŸ¦‹

If no errors occur, the value of the nonassociated Laguerre polynomial of x, that is e^x / n! times d^n/dx^n (x^n e^-x), is returned. slay. πŸ’«

😭 Error handling 😭

Errors may be reported as specified in math_errhandling.

  • If the argument is NaN, NaN is returned and domain error is not reported.
  • If x is negative, a domain error may occur.
  • If n is greater or equal than 128, the behavior is implementation-defined. this is the part where you do not act surprised, okay? πŸ’€

🧚 Notes 🧚

Implementations that do not support TR 29124 but support TR 19768, provide this function in the header tr1/cmath and namespace std::tr1.

An implementation of this function is also available in boost.math.

The Laguerre polynomials are the polynomial solutions of the equation xy'' + (1 - x)y' + ny = 0.

The first few are, literally as printed:

  • laguerre(0, x) = 1.
  • laguerre(1, x) = -x + 1.
  • laguerre(2, x) = 1/2 [x2 - 4x + 2].
  • laguerre(3, x) = 1/6 [-x3 - 9x2 - 18x + 6].

πŸ”₯ Example πŸ”₯

(works as shown with gcc 6.0)

// Run this code

#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1
#include <cmath>
#include <iostream>

double L1(double x)
{
    return -x + 1;
}

double L2(double x)
{
    return 0.5 * (x * x - 4 * x + 2);
}

int main()
{
    // spot-checks
    std::cout << std::laguerre(1, 0.5) << '=' << L1(0.5) << '\n'
              << std::laguerre(2, 0.5) << '=' << L2(0.5) << '\n';
}

Output:

0.5=0.5
0.125=0.125

πŸ‘‘ See also πŸ‘‘

  • assoc_laguerre β€” associated Laguerre polynomials
  • assoc_laguerref β€” (function)
  • assoc_laguerrel

Weisstein, Eric W. "Laguerre Polynomial." From MathWorld--A Wolfram Web Resource.


and that’s the tea, bestie 🫢 this iconic little page comes from cppreference.com, dated 2024.06.10, and its page title is std::laguer...d::laguerrel(3). periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from