Arcsine distribution quantile function.
The quantile function for an arcsine random variable is
for 0 <= p <= 1, where a is the minimum support and b is the maximum support. The parameters must satisfy a < b.
var quantile = require( '@stdlib/stats/base/dists/arcsine/quantile' );Evaluates the quantile function for an arcsine distribution with parameters a (minimum support) and b (maximum support).
var y = quantile( 0.8, 0.0, 1.0 );
// returns ~0.905
y = quantile( 0.5, 0.0, 10.0 );
// returns ~5.0If provided a probability p outside the interval [0,1], the function returns NaN.
var y = quantile( 1.9, 0.0, 1.0 );
// returns NaN
y = quantile( -0.1, 0.0, 1.0 );
// returns NaNIf provided NaN as any argument, the function returns NaN.
var y = quantile( NaN, 0.0, 1.0 );
// returns NaN
y = quantile( 0.0, NaN, 1.0 );
// returns NaN
y = quantile( 0.0, 0.0, NaN );
// returns NaNIf provided a >= b, the function returns NaN.
var y = quantile( 0.4, 2.0, 1.0 );
// returns NaNReturns a function for evaluating the quantile function of an arcsine distribution with parameters a (minimum support) and b (maximum support).
var myquantile = quantile.factory( 0.0, 4.0 );
var y = myquantile( 0.8 );
// returns ~3.618var uniform = require( '@stdlib/random/array/uniform' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var quantile = require( '@stdlib/stats/base/dists/arcsine/quantile' );
var opts = {
'dtype': 'float64'
};
var p = uniform( 25, 0.0, 1.0, opts );
var a = uniform( p.length, 0.0, 10.0, opts );
var b = uniform( a.length, 10.0, 50.0, opts );
logEachMap( 'p: %0.4f, a: %0.4f, b: %0.4f, Q(p;a,b): %0.4f', p, a, b, quantile );#include "stdlib/stats/base/dists/arcsine/quantile.h"Evaluates the quantile function for an arcsine distribution.
double out = stdlib_base_dists_arcsine_quantile( 0.8, 0.0, 1.0 );
// returns ~0.905The function accepts the following arguments:
- p:
[in] doubleinput value. - a:
[in] doubleminimum support. - b:
[in] doublemaximum support.
double stdlib_base_dists_arcsine_quantile( const double p, const double a, const double b );#include "stdlib/stats/base/dists/arcsine/quantile.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 a;
double b;
double p;
double y;
int i;
for ( i = 0; i < 25; i++ ) {
p = random_uniform( 0.0, 1.0 );
a = random_uniform( -20.0, 0.0);
b = random_uniform( a, a+40.0 );
y = stdlib_base_dists_arcsine_quantile( p, a, b );
printf( "p: %lf, a: %lf, b: %lf, Q(p;a,b): %lf\n", p, a, b, y );
}
}