README.md (4087B)
1 <!-- 2 3 @license Apache-2.0 4 5 Copyright (c) 2018 The Stdlib Authors. 6 7 Licensed under the Apache License, Version 2.0 (the "License"); 8 you may not use this file except in compliance with the License. 9 You may obtain a copy of the License at 10 11 http://www.apache.org/licenses/LICENSE-2.0 12 13 Unless required by applicable law or agreed to in writing, software 14 distributed under the License is distributed on an "AS IS" BASIS, 15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 See the License for the specific language governing permissions and 17 limitations under the License. 18 19 --> 20 21 # Cumulative Distribution Function 22 23 > [Discrete uniform][discrete-uniform-distribution] distribution [cumulative distribution function][cdf]. 24 25 <section class="intro"> 26 27 The [cumulative distribution function][cdf] for a [discrete uniform][discrete-uniform-distribution] random variable is 28 29 <!-- <equation class="equation" label="eq:discrete_uniform_cdf" align="center" raw="F(x)= \begin{cases} 0 & \text{for }x < a \\ \frac{\lfloor x \rfloor - a + 1}{b-a+1} & \text{for }a \le x < b \\ 1 & \text{for }x \ge b \end{cases}" alt="Cumulative distribution function for a discrete uniform distribution."> --> 30 31 <div class="equation" align="center" data-raw-text="F(x)= \begin{cases} 0 & \text{for }x < a \\ \frac{\lfloor x \rfloor - a + 1}{b-a+1} & \text{for }a \le x < b \\ 1 & \text{for }x \ge b \end{cases}" data-equation="eq:discrete_uniform_cdf"> 32 <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@591cf9d5c3a0cd3c1ceec961e5c49d73a68374cb/lib/node_modules/@stdlib/stats/base/dists/discrete-uniform/cdf/docs/img/equation_discrete_uniform_cdf.svg" alt="Cumulative distribution function for a discrete uniform distribution."> 33 <br> 34 </div> 35 36 <!-- </equation> --> 37 38 where `a` is the minimum support and `b` is the maximum support. The parameters must satisfy `a <= b`. 39 40 </section> 41 42 <!-- /.intro --> 43 44 <section class="usage"> 45 46 ## Usage 47 48 ```javascript 49 var cdf = require( '@stdlib/stats/base/dists/discrete-uniform/cdf' ); 50 ``` 51 52 #### cdf( x, a, b ) 53 54 Evaluates the [cumulative distribution function][cdf] (CDF) for a [discrete uniform][discrete-uniform-distribution] distribution with parameters `a` (minimum support) and `b` (maximum support). 55 56 ```javascript 57 var y = cdf( 9.0, 0, 10 ); 58 // returns ~0.909 59 60 y = cdf( 0.5, -2, 2 ); 61 // returns ~0.6 62 63 y = cdf( -Infinity, 2, 4 ); 64 // returns 0.0 65 66 y = cdf( Infinity, 2, 4 ); 67 // returns 1.0 68 ``` 69 70 If `a` or `b` is not an integer value, the function returns `NaN`. 71 72 ```javascript 73 var y = cdf( 0.2, 1, 5.5 ); 74 // returns NaN 75 76 y = cdf( NaN, 0, 1 ); 77 // returns NaN 78 79 y = cdf( 0.0, NaN, 1 ); 80 // returns NaN 81 82 y = cdf( 0.0, 0, NaN ); 83 // returns NaN 84 ``` 85 86 If provided `a > b`, the function returns `NaN`. 87 88 ```javascript 89 var y = cdf( 0.5, 3, 2); 90 // returns NaN 91 ``` 92 93 #### cdf.factory( a, b ) 94 95 Returns a function for evaluating the [cumulative distribution function][cdf] of a [discrete uniform][discrete-uniform-distribution] distribution with parameters `a` (minimum support) and `b` (maximum support). 96 97 ```javascript 98 var mycdf = cdf.factory( 0, 10 ); 99 var y = mycdf( 0.5 ); 100 // returns ~0.091 101 102 y = mycdf( 8.0 ); 103 // returns ~0.818 104 ``` 105 106 </section> 107 108 <!-- /.usage --> 109 110 <section class="examples"> 111 112 ## Examples 113 114 <!-- eslint no-undef: "error" --> 115 116 ```javascript 117 var randint = require( '@stdlib/random/base/discrete-uniform' ); 118 var randu = require( '@stdlib/random/base/randu' ); 119 var cdf = require( '@stdlib/stats/base/dists/discrete-uniform/cdf' ); 120 121 var randa = randint.factory( 0, 10 ); 122 var randb = randint.factory(); 123 var a; 124 var b; 125 var x; 126 var v; 127 var i; 128 129 for ( i = 0; i < 10; i++ ) { 130 x = randu() * 15.0; 131 a = randa(); 132 b = randb( a, a+randa() ); 133 v = cdf( x, a, b ); 134 console.log( 'x: %d, a: %d, b: %d, F(x;a,b): %d', x.toFixed( 4 ), a.toFixed( 4 ), b.toFixed( 4 ), v.toFixed( 4 ) ); 135 } 136 ``` 137 138 </section> 139 140 <!-- /.examples --> 141 142 <section class="links"> 143 144 [cdf]: https://en.wikipedia.org/wiki/Cumulative_distribution_function 145 146 [discrete-uniform-distribution]: https://en.wikipedia.org/wiki/Discrete_uniform_distribution 147 148 </section> 149 150 <!-- /.links -->