Laplace distribution differential entropy.
The differential entropy (in nats) for a Laplace random variable with location μ and scale b > 0 is
where e is Euler's number.
var entropy = require( '@stdlib/stats/base/dists/laplace/entropy' );Returns the differential entropy for a Laplace distribution with location parameter mu and scale parameter b (in nats).
var y = entropy( 2.0, 1.0 );
// returns ~1.693
y = entropy( 0.0, 1.0 );
// returns ~1.693
y = entropy( -1.0, 4.0 );
// returns ~3.079If provided NaN as any argument, the function returns NaN.
var y = entropy( NaN, 1.0 );
// returns NaN
y = entropy( 0.0, NaN );
// returns NaNIf provided b <= 0, the function returns NaN.
var y = entropy( 0.0, 0.0 );
// returns NaN
y = entropy( 0.0, -1.0 );
// returns NaNvar uniform = require( '@stdlib/random/array/uniform' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var entropy = require( '@stdlib/stats/base/dists/laplace/entropy' );
var opts = {
'dtype': 'float64'
};
var mu = uniform( 10, -5.0, 5.0, opts );
var b = uniform( 10, 0.0, 20.0, opts );
logEachMap( 'µ: %0.4f, b: %0.4f, h(X;µ,b): %0.4f', mu, b, entropy );#include "stdlib/stats/base/dists/laplace/entropy.h"Returns the differential entropy for a Laplace distribution with location mu and scale b.
double out = stdlib_base_dists_laplace_entropy( 0.0, 1.0 );
// returns ~1.693The function accepts the following arguments:
- mu:
[in] doublelocation parameter. - b:
[in] doublescale parameter.
double stdlib_base_dists_laplace_entropy( const double mu, const double b );#include "stdlib/stats/base/dists/laplace/entropy.h"
#include <stdlib.h>
#include <stdio.h>
static double random_uniform( const double min, const double max ) {
double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
return min + ( v*(max-min) );
}
int main( void ) {
double mu;
double b;
double y;
int i;
for ( i = 0; i < 25; i++ ) {
mu = random_uniform( -5.0, 5.0 );
b = random_uniform( 0.0, 20.0 );
y = stdlib_base_dists_laplace_entropy( mu, b );
printf( "µ: %lf, b: %lf, h(X;µ,b): %lf\n", mu, b, y );
}
}