Normalized Hermite Polynomial
Evaluate a normalized Hermite polynomial using double-precision floating-point arithmetic.
The normalized (aka "probabilist") Hermite polynomials are given by
Usage
var normhermitepoly = require( '@stdlib/math/base/tools/normhermitepoly' );
normhermitepoly( n, x )
Evaluates a normalized Hermite polynomial of degree n
using double-precision floating-point arithmetic.
var v = normhermitepoly( 1, 1.0 );
// returns 1.0
v = normhermitepoly( 1, 0.5 );
// returns 0.5
v = normhermitepoly( 0, 0.5 );
// returns 1.0
v = normhermitepoly( 2, 0.5 );
// returns -0.75
v = normhermitepoly( -1, 0.5 );
// returns NaN
normhermitepoly.factory( n )
Returns a function for evaluating a normalized Hermite polynomial of degree n
using double-precision floating-point arithmetic.
var polyval = normhermitepoly.factory( 2 );
var v = polyval( 0.5 );
// returns -0.75
Examples
var uniform = require( '@stdlib/random/array/uniform' );
var zeros = require( '@stdlib/array/zeros' );
var dmap = require( '@stdlib/strided/base/dmap' );
var logEach = require( '@stdlib/console/log-each' );
var normhermitepoly = require( '@stdlib/math/base/tools/normhermitepoly' );
// Generate random values at which to evaluate a polynomial:
var x = uniform( 10, -50.0, 50.0, {
'dtype': 'float64'
});
// Create a polynomial function of degree 1:
var f = normhermitepoly.factory( 1 );
// Allocate an output array:
var y = zeros( x.length, 'float64' );
// Evaluate the polynomial:
dmap( x.length, x, 1, y, 1, f );
logEach( 'He_%d(%.3f) = %.3f', 1, x, y );
// Create a polynomial function of degree 2:
f = normhermitepoly.factory( 2 );
// Allocate an output array:
y = zeros( x.length, 'float64' );
// Evaluate the polynomial:
dmap( x.length, x, 1, y, 1, f );
logEach( 'He_%d(%.3f) = %.3f', 2, x, y );
// Create a polynomial function of degree 3:
f = normhermitepoly.factory( 3 );
// Allocate an output array:
y = zeros( x.length, 'float64' );
// Evaluate the polynomial:
dmap( x.length, x, 1, y, 1, f );
logEach( 'He_%d(%.3f) = %.3f', 3, x, y );