# Heaviside Function
> Evaluate the [Heaviside function][heaviside-function].
The [Heaviside function][heaviside-function] is defined as
and is discontinuous at `0`. Depending on the context, the [Heaviside function][heaviside-function] may be defined as a continuous function. To define the [Heaviside function][heaviside-function] such that the function has rotational symmetry,
To define the [Heaviside function][heaviside-function] as a left-continuous function,
To define the [Heaviside function][heaviside-function] as a right-continuous function,
## Usage
```javascript
var heaviside = require( '@stdlib/math/base/special/heaviside' );
```
#### heaviside( x\[, continuity] )
Evaluates the [Heaviside function][heaviside-function].
```javascript
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`.
```javascript
var v = heaviside( 0.0 );
// returns NaN
```
To define the [Heaviside function][heaviside-function] as a continuous function, set the `continuity` parameter.
```javascript
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
```javascript
var linspace = require( '@stdlib/array/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 ] ) );
}
```
[heaviside-function]: https://en.wikipedia.org/wiki/Heaviside_step_function