time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

README.md (3969B)


      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 # Entropy
     22 
     23 > [Arcsine][arcsine-distribution] distribution [differential entropy][entropy].
     24 
     25 <!-- Section to include introductory text. Make sure to keep an empty line after the intro `section` element and another before the `/section` close. -->
     26 
     27 <section class="intro">
     28 
     29 The [differential entropy][entropy] (in [nats][nats]) for an [arcsine][arcsine-distribution] random variable with minimum support `a` and maximum support `b` is
     30 
     31 <!-- <equation class="equation" label="eq:arcsine_entropy" align="center" raw="h\left( X \right) = \ln {\tfrac{\pi}{4}}" alt="Differential entropy for an arcsine distribution."> -->
     32 
     33 <div class="equation" align="center" data-raw-text="h\left( X \right) = \ln {\tfrac{\pi}{4}}" data-equation="eq:arcsine_entropy">
     34     <img src="https://cdn.jsdelivr.net/gh/stdlib-js/stdlib@51534079fef45e990850102147e8945fb023d1d0/lib/node_modules/@stdlib/stats/base/dists/arcsine/entropy/docs/img/equation_arcsine_entropy.svg" alt="Differential entropy for an arcsine distribution.">
     35     <br>
     36 </div>
     37 
     38 <!-- </equation> -->
     39 
     40 </section>
     41 
     42 <!-- /.intro -->
     43 
     44 <!-- Package usage documentation. -->
     45 
     46 <section class="usage">
     47 
     48 ## Usage
     49 
     50 ```javascript
     51 var entropy = require( '@stdlib/stats/base/dists/arcsine/entropy' );
     52 ```
     53 
     54 #### entropy( a, b )
     55 
     56 Returns the [differential entropy][entropy] of an [arcsine][arcsine-distribution] distribution with minimum support `a` and maximum support `b` (in [nats][nats]).
     57 
     58 ```javascript
     59 var v = entropy( 0.0, 1.0 );
     60 // returns ~-0.242
     61 
     62 v = entropy( 4.0, 12.0 );
     63 // returns ~1.838
     64 
     65 v = entropy( 2.0, 8.0 );
     66 // returns ~1.55
     67 ```
     68 
     69 If provided `NaN` as any argument, the function returns `NaN`.
     70 
     71 ```javascript
     72 var v = entropy( NaN, 2.0 );
     73 // returns NaN
     74 
     75 v = entropy( 2.0, NaN );
     76 // returns NaN
     77 ```
     78 
     79 If provided `a >= b`, the function returns `NaN`.
     80 
     81 ```javascript
     82 var y = entropy( 3.0, 2.0 );
     83 // returns NaN
     84 
     85 y = entropy( 3.0, 3.0 );
     86 // returns NaN
     87 ```
     88 
     89 </section>
     90 
     91 <!-- /.usage -->
     92 
     93 <!-- Package usage notes. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
     94 
     95 <section class="notes">
     96 
     97 </section>
     98 
     99 <!-- /.notes -->
    100 
    101 <!-- Package usage examples. -->
    102 
    103 <section class="examples">
    104 
    105 ## Examples
    106 
    107 <!-- eslint no-undef: "error" -->
    108 
    109 ```javascript
    110 var randu = require( '@stdlib/random/base/randu' );
    111 var EPS = require( '@stdlib/constants/float64/eps' );
    112 var entropy = require( '@stdlib/stats/base/dists/arcsine/entropy' );
    113 
    114 var a;
    115 var b;
    116 var v;
    117 var i;
    118 
    119 for ( i = 0; i < 10; i++ ) {
    120     a = ( randu()*10.0 );
    121     b = ( randu()*10.0 ) + a + EPS;
    122     v = entropy( a, b );
    123     console.log( 'a: %d, b: %d, h(X;a,b): %d', a.toFixed( 4 ), b.toFixed( 4 ), v.toFixed( 4 ) );
    124 }
    125 ```
    126 
    127 </section>
    128 
    129 <!-- /.examples -->
    130 
    131 <!-- Section to include cited references. If references are included, add a horizontal rule *before* the section. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
    132 
    133 <section class="references">
    134 
    135 </section>
    136 
    137 <!-- /.references -->
    138 
    139 <!-- Section for all links. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
    140 
    141 <section class="links">
    142 
    143 [arcsine-distribution]: https://en.wikipedia.org/wiki/Arcsine_distribution
    144 
    145 [entropy]: https://en.wikipedia.org/wiki/Entropy_%28information_theory%29
    146 
    147 [nats]: https://en.wikipedia.org/wiki/Nat_%28unit%29
    148 
    149 </section>
    150 
    151 <!-- /.links -->