Heaviside Function

Evaluate the Heaviside function.

The Heaviside function is defined as

upper H left-parenthesis x right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column 1 2nd Column if x greater-than 0 2nd Row 1st Column 0 2nd Column if x less-than 0 EndLayout

and is discontinuous at 0. Depending on the context, the Heaviside function may be defined as a continuous function. To define the Heaviside function such that the function has rotational symmetry,

upper H left-parenthesis x right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column x 2nd Column if x greater-than 0 2nd Row 1st Column one-half 2nd Column if x equals 0 3rd Row 1st Column 0 2nd Column if x less-than 0 EndLayout

To define the Heaviside function as a left-continuous function,

upper H left-parenthesis x right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column x 2nd Column if x greater-than 0 2nd Row 1st Column 0 2nd Column if x less-than-or-equal-to 0 EndLayout

To define the Heaviside function as a right-continuous function,

upper H left-parenthesis x right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column x 2nd Column if x greater-than-or-equal-to 0 2nd Row 1st Column 0 2nd Column if x less-than 0 EndLayout

Usage

var heaviside = require( '@stdlib/math/base/special/heaviside' );

heaviside( x[, continuity] )

Evaluates the Heaviside function.

var v = heaviside( 3.14 );
// returns 1.0

v = heaviside( -3.14 );
// returns 0.0

v = heaviside( NaN );
// returns NaN

The continuity parameter may be one of the following values:

  • 'half-maximum': if x == 0, the function returns 0.5.
  • 'left-continuous': if x == 0, the function returns 0.0.
  • 'right-continuous': if x == 0, the function returns 1.0.

By default, the function is discontinuous at 0.

var v = heaviside( 0.0 );
// returns NaN

To define the Heaviside function as a continuous function, set the continuity parameter.

var v = heaviside( 0.0, 'half-maximum' );
// returns 0.5

v = heaviside( 0.0, 'left-continuous' );
// returns 0.0

v = heaviside( 0.0, 'right-continuous' );
// returns 1.0

Examples

var linspace = require( '@stdlib/math/utils/linspace' );
var heaviside = require( '@stdlib/math/base/special/heaviside' );

var x = linspace( -10.0, 10.0, 101 );
var i;

for ( i = 0; i < x.length; i++ ) {
    console.log( 'H(%d) = %d', x[ i ], heaviside( x[ i ] ) );
}