std::hermite, std::hermitef, std::hermitel - cppreference.com

From cppreference.com

Defined in header

<cmath>

doublehermite(unsignedintn,doublex);floathermite(unsignedintn,floatx);longdoublehermite(unsignedintn,longdoublex); (1)(since C++17)
(until C++23)/* floating-point-type */hermite(unsignedintn,/* floating-point-type */x);(since C++23)floathermitef(unsignedintn,floatx); (2) (since C++17)longdoublehermitel(unsignedintn,longdoublex); (3) (since C++17)

Additional overloads

Defined in header

<cmath>

template<classInteger>doublehermite(unsignedintn,Integerx); (A) (since C++17)1-3) Computes the (physicist's)

Hermite polynomials

of the degree n and argument x. The library provides overloads of std::hermite for all cv-unqualified floating-point types as the type of the parameter x.(since C++23)

A) Additional overloads are provided for all integer types, which are treated as double.

Parameters

n - the degree of the polynomial x - the argument, a floating-point or integer value Return value

If no errors occur, value of the order-n Hermite polynomial of x, that is

(-1)n
ex2
dn
dxn
e-x2

, is returned.

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 n is greater or equal than 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 Hermite polynomials are the polynomial solutions of the equation u,,
-2xu,
= -2nu.

The first few are:

Function Polynomial hermite(0,x)1hermite(1,x)2xhermite(2,x)4x2
- 2hermite(3,x)8x3
- 12xhermite(4,x)16x4
- 48x2
+ 12The 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::hermite(int_num,num) has the same effect as std::hermite(int_num,static_cast<double>(num)).

Example

Run this code

#include<cmath>#include<iostream>doubleH3(doublex){return8*std::pow(x,3)-12*x;}doubleH4(doublex){return16*std::pow(x,4)-48*x*x+12;}intmain(){// spot-checksstd::cout<<std::hermite(3,10)<<'='<<H3(10)<<'\n'<<std::hermite(4,10)<<'='<<H4(10)<<'\n';}Output:

7880=7880 155212=155212 See also

External links