std::assoc_laguerre, std::assoc_laguerref, std::assoc_laguerrel
|   Defined in header  <cmath>
  | 
||
| (1) | ||
float       assoc_laguerre ( unsigned int n, unsigned int m, float x ); double      assoc_laguerre ( unsigned int n, unsigned int m, double x );  | 
(since C++17)  (until C++23)  | 
|
|   /* floating-point-type */ assoc_laguerre( unsigned int n, unsigned int m, /* floating-point-type */ x );  | 
(since C++23) | |
|   float       assoc_laguerref( unsigned int n, unsigned int m, float x );  | 
(2) | (since C++17) | 
|   long double assoc_laguerrel( unsigned int n, unsigned int m, long double x );  | 
(3) | (since C++17) | 
|   Defined in header  <cmath>
  | 
||
|   template< class Integer > double assoc_laguerre ( unsigned int n, unsigned int m, Integer x );  | 
(A) | (since C++17) | 
std::assoc_laguerre for all cv-unqualified floating-point types as the type of the parameter x.(since C++23)Parameters
| n | - | the degree of the polynomial, an unsigned integer value | 
| m | - | the order of the polynomial, an unsigned integer value | 
| x | - | the argument, a floating-point or integer value | 
Return value
If no errors occur, value of the associated Laguerre polynomial of x, that is (-1)m| dm | 
| dxm | 
n+m(x), is returned (where L
n+m(x) is the unassociated Laguerre polynomial, std::laguerre(n + m, x)).
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 or m is greater or equal to 128, the behavior is implementation-defined
 
Notes
Implementations that do not support C++17, but support ISO 29124:2010, provide this function 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.
Implementations that do not support ISO 29124:2010 but support TR 19768:2007 (TR1), provide this function in the header tr1/cmath and namespace std::tr1.
An implementation of this function is also available in boost.math.
The associated Laguerre polynomials are the polynomial solutions of the equation xy,,
+(m+1-x)y,
+ny = 0.
The first few are:
| Function | Polynomial | ||
|---|---|---|---|
| assoc_laguerre(0, m, x) | 1 | ||
| assoc_laguerre(1, m, x) | -x + m + 1 | ||
| assoc_laguerre(2, m, x) |  
 - 2(m + 2)x + (m + 1)(m + 2)]  | ||
| assoc_laguerre(3, m, x) |      
 - 3(m + 3)x2 - 3(m + 2)(m + 3)x + (m + 1)(m + 2)(m + 3)]  | 
The additional overloads are not required to be provided exactly as (A). They only need to be sufficient to ensure that for their argument num of integer type, std::assoc_laguerre(int_num1, int_num2, num) has the same effect as std::assoc_laguerre(int_num1, int_num2, static_cast<double>(num)).
Example
#include <cmath> #include <iostream> double L1(unsigned m, double x) { return -x + m + 1; } double L2(unsigned m, double x) { return 0.5 * (x * x - 2 * (m + 2) * x + (m + 1) * (m + 2)); } int main() { // spot-checks std::cout << std::assoc_laguerre(1, 10, 0.5) << '=' << L1(10, 0.5) << '\n' << std::assoc_laguerre(2, 10, 0.5) << '=' << L2(10, 0.5) << '\n'; }
Output:
10.5=10.5 60.125=60.125
See also
|    (C++17)(C++17)(C++17)  | 
  Laguerre polynomials  (function)  | 
External links
| Weisstein, Eric W. "Associated Laguerre Polynomial." From MathWorld — A Wolfram Web Resource. |