diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/README.md b/lib/node_modules/@stdlib/stats/base/dists/exponential/README.md index 27b7e0a6f73..6be2ae17e1f 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/README.md +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/README.md @@ -109,10 +109,51 @@ var y = dist.logpdf( 0.8 ); ```javascript -var objectKeys = require( '@stdlib/utils/keys' ); +var Float64Array = require( '@stdlib/array/float64' ); +var randomExponential = require( '@stdlib/random/array/exponential' ); +var dcusum = require( '@stdlib/blas/ext/base/dcusum' ); var exponential = require( '@stdlib/stats/base/dists/exponential' ); -console.log( objectKeys( exponential ) ); +// Simulate interarrival times of customers entering a store: +var lambda = 0.5; // Average rate (customers per minute) +var numCustomers = 10; + +// Generate interarrival times using the exponential distribution: +var interarrivalTimes = randomExponential( numCustomers, lambda, { + 'dtype': 'float64' +}); + +console.log( 'Simulated interarrival times for ' + numCustomers + ' customers:' ); +console.log( interarrivalTimes ); + +// Calculate cumulative arrival times by computing the cumulative sum of interarrival times: +var arrivalTimes = new Float64Array( interarrivalTimes.length ); +dcusum( interarrivalTimes.length, 0.0, interarrivalTimes, 1, arrivalTimes, 1 ); + +console.log( '\nCustomer arrival times:' ); +console.log( arrivalTimes ); + +// Probability that a customer arrives within two minutes: +var x = 2.0; +var prob = exponential.cdf( x, lambda ); +console.log( '\nProbability that a customer arrives within ' + x + ' minutes: ' + prob.toFixed(4) ); + +// Expected time until the next customer arrives: +var mean = exponential.mean( lambda ); +console.log( 'Expected interarrival time: ' + mean + ' minutes' ); + +var dist = new exponential.Exponential( lambda ); + +var median = dist.median; +console.log( 'Median interarrival time: ' + median + ' minutes' ); + +// Evaluate the PDF at x = 1.0: +var out = dist.pdf( 1.0 ); +console.log( 'PDF at x = 1: ' + out.toFixed(4) ); + +// Evaluate the MGF at t = 0.1: +out = dist.mgf( 0.1 ); +console.log( 'MGF at t = 0.5: ' + out.toFixed(4) ); ``` diff --git a/lib/node_modules/@stdlib/stats/base/dists/exponential/examples/index.js b/lib/node_modules/@stdlib/stats/base/dists/exponential/examples/index.js index c983a77fc53..ed12ae6c03e 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/exponential/examples/index.js +++ b/lib/node_modules/@stdlib/stats/base/dists/exponential/examples/index.js @@ -18,7 +18,48 @@ 'use strict'; -var objectKeys = require( '@stdlib/utils/keys' ); +var Float64Array = require( '@stdlib/array/float64' ); +var randomExponential = require( '@stdlib/random/array/exponential' ); +var dcusum = require( '@stdlib/blas/ext/base/dcusum' ); var exponential = require( './../lib' ); -console.log( objectKeys( exponential ) ); +// Simulate interarrival times of customers entering a store: +var lambda = 0.5; // Average rate (customers per minute) +var numCustomers = 10; + +// Generate interarrival times using the exponential distribution: +var interarrivalTimes = randomExponential( numCustomers, lambda, { + 'dtype': 'float64' +}); + +console.log( 'Simulated interarrival times for ' + numCustomers + ' customers:' ); +console.log( interarrivalTimes ); + +// Calculate cumulative arrival times by computing the cumulative sum of interarrival times: +var arrivalTimes = new Float64Array( interarrivalTimes.length ); +dcusum( interarrivalTimes.length, 0.0, interarrivalTimes, 1, arrivalTimes, 1 ); + +console.log( '\nCustomer arrival times:' ); +console.log( arrivalTimes ); + +// Probability that a customer arrives within two minutes: +var x = 2.0; +var prob = exponential.cdf( x, lambda ); +console.log( '\nProbability that a customer arrives within ' + x + ' minutes: ' + prob.toFixed(4) ); + +// Expected time until the next customer arrives: +var mean = exponential.mean( lambda ); +console.log( 'Expected interarrival time: ' + mean + ' minutes' ); + +var dist = new exponential.Exponential( lambda ); + +var median = dist.median; +console.log( 'Median interarrival time: ' + median + ' minutes' ); + +// Evaluate the PDF at x = 1.0: +var out = dist.pdf( 1.0 ); +console.log( 'PDF at x = 1: ' + out.toFixed(4) ); + +// Evaluate the MGF at t = 0.1: +out = dist.mgf( 0.1 ); +console.log( 'MGF at t = 0.5: ' + out.toFixed(4) );