Normalized Hermite Polynomial

Evaluate a normalized Hermite polynomial using single-precision floating-point arithmetic.

The normalized (aka "probabilist") Hermite polynomials are given by

Usage

var normhermitepolyf = require( '@stdlib/math/base/tools/normhermitepolyf' );

normhermitepolyf( n, x )

Evaluates a normalized Hermite polynomial of degree n using single-precision floating-point arithmetic.

var v = normhermitepolyf( 1, 1.0 );
// returns 1.0

v = normhermitepolyf( 1, 0.5 );
// returns 0.5

v = normhermitepolyf( 0, 0.5 );
// returns 1.0

v = normhermitepolyf( 2, 0.5 );
// returns -0.75

v = normhermitepolyf( -1, 0.5 );
// returns NaN

normhermitepolyf.factory( n )

Returns a function for evaluating a normalized Hermite polynomial of degree n using single-precision floating-point arithmetic.

var polyval = normhermitepolyf.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 smap = require( '@stdlib/strided/base/smap' );
var logEach = require( '@stdlib/console/log-each' );
var normhermitepolyf = require( '@stdlib/math/base/tools/normhermitepolyf' );

// Generate random values at which to evaluate a polynomial:
var x = uniform( 10, -50.0, 50.0, {
    'dtype': 'float32'
});

// Create a polynomial function of degree 1:
var f = normhermitepolyf.factory( 1 );

// Allocate an output array:
var y = zeros( x.length, 'float32' );

// Evaluate the polynomial:
smap( x.length, x, 1, y, 1, f );
logEach( 'He_%d(%.3f) = %.3f', 1, x, y );

// Create a polynomial function of degree 2:
f = normhermitepolyf.factory( 2 );

// Allocate an output array:
y = zeros( x.length, 'float32' );

// Evaluate the polynomial:
smap( x.length, x, 1, y, 1, f );
logEach( 'He_%d(%.3f) = %.3f', 2, x, y );

// Create a polynomial function of degree 3:
f = normhermitepolyf.factory( 3 );

// Allocate an output array:
y = zeros( x.length, 'float32' );

// Evaluate the polynomial:
smap( x.length, x, 1, y, 1, f );
logEach( 'He_%d(%.3f) = %.3f', 3, x, y );
Did you find this page helpful?