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 );
Did you find this page helpful?