Dirac Delta

Evaluate the Dirac delta function in single-precision floating-point format.

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 diracDeltaf = require( '@stdlib/math/base/special/dirac-deltaf' );

diracDeltaf( x )

Evaluates the Dirac delta function in single-precision floating-point format.

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

v = diracDeltaf( 3.14 );
// returns 0.0

v = diracDeltaf( NaN );
// returns NaN

Examples

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

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

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

C APIs

Usage

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

stdlib_base_dirac_deltaf( x )

Evaluates the Dirac delta function in single-precision floating-point format.

float x = stdlib_base_dirac_deltaf( 0.0f );
// returns Infinity

x = stdlib_base_dirac_deltaf( 3.14f );
// returns 0.0f

The function accepts the following arguments:

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

Examples

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

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

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