Dirac Delta

Evaluate the Dirac delta function.

The Dirac delta function may be loosely defined as

delta equals StartLayout Enlarged left-brace 1st Row 1st Column normal infinity 2nd Column if x equals 0 2nd Row 1st Column 0 2nd Column if x not-equals 0 EndLayout

and is constrained to satisfy the identity

integral Subscript negative normal infinity Superscript plus normal infinity Baseline delta left-parenthesis x right-parenthesis d x equals 1

Note that the Dirac delta function is not a function in the traditional sense, as any real-valued function which is zero everywhere except at a single point, must have an integral equal to 0.

Usage

var diracDelta = require( '@stdlib/math/base/special/dirac-delta' );

diracDelta( x )

Evaluates the Dirac delta function.

var v = diracDelta( 0.0 );
// returns Infinity

v = diracDelta( 3.14 );
// returns 0.0

v = diracDelta( NaN );
// returns NaN

Examples

var linspace = require( '@stdlib/array/base/linspace' );
var diracDelta = require( '@stdlib/math/base/special/dirac-delta' );

var x = linspace( -1.0, 1.0, 101 );

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

C APIs

Usage

#include "stdlib/math/base/special/dirac_delta.h"

stdlib_base_dirac_delta( x )

Evaluates the Dirac delta function.

double x = stdlib_base_dirac_delta( 0.0 );
// returns Infinity

x = stdlib_base_dirac_delta( 3.14 );
// returns 0.0

The function accepts the following arguments:

  • x: [in] double input value.
double stdlib_base_dirac_delta( const double x );

Examples

#include "stdlib/math/base/special/dirac_delta.h"
#include <stdlib.h>
#include <stdio.h>

int main( void ) {
    const double x[] = { -1.0, -0.5, 0.0, 0.5, 1.0, 3.14, 2.0 };

    double v;
    int i;
    for ( i = 0; i < 7; i++ ) {
        v = stdlib_base_dirac_delta( x[ i ] );
        printf( "dirac(%lf) = %lf\n", x[ i ], v );
    }
}
Did you find this page helpful?