File tree Expand file tree Collapse file tree 4 files changed +31
-21
lines changed
lib/node_modules/@stdlib/stats/base/dists/bernoulli/skewness Expand file tree Collapse file tree 4 files changed +31
-21
lines changed Original file line number Diff line number Diff line change @@ -155,9 +155,6 @@ Returns the skewness of a Bernoulli distribution with success probability 'p'.
155155``` c
156156double y = stdlib_base_dists_bernoulli_skewness( 0.1 );
157157// returns ~2.667
158-
159- y = stdlib_base_dists_bernoulli_skewness( 0.5 );
160- // returns ~0.0
161158```
162159
163160The function accepts the following arguments:
@@ -191,16 +188,21 @@ double stdlib_base_dists_bernoulli_skewness( const double p );
191188#include <stdlib.h>
192189#include <stdio.h>
193190
191+ static double random_uniform( const double min, const double max ) {
192+ double v = (double)rand() / ( (double)RAND_MAX + 1.0 );
193+ return min + ( v * ( max - min ) );
194+ }
195+
194196int main( void ) {
195- double p;
196- double y;
197- int i;
198-
199- for ( i = 0; i < 25 ; i++ ) {
200- p = ( (double)rand() / (double)RAND_MAX ) ;
201- y = stdlib_base_dists_bernoulli_skewness( p );
202- printf( "x: %lf , skew(X;p): %lf\n", p , y );
203- }
197+ double p;
198+ double y;
199+ int i;
200+
201+ for ( i = 0; i < 10 ; i++ ) {
202+ p = random_uniform( 0.1, 10.0 ) ;
203+ y = stdlib_base_dists_bernoulli_skewness( p );
204+ printf( "x: %lf , skew(X;p): %lf\n", p , y );
205+ }
204206}
205207```
206208
Original file line number Diff line number Diff line change @@ -38,7 +38,7 @@ var opts = {
3838
3939// MAIN //
4040
41- bench ( pkg , opts , function benchmark ( b ) {
41+ bench ( pkg + '::native' , opts , function benchmark ( b ) {
4242 var p ;
4343 var y ;
4444 var i ;
Original file line number Diff line number Diff line change @@ -79,9 +79,9 @@ static double tic( void ) {
7979*
8080* @return random number
8181*/
82- static double rand_double ( void ) {
83- int r = rand ();
84- return ( double ) r / ( ( double ) RAND_MAX + 1.0 );
82+ static double random_uniform ( const double min , const double max ) {
83+ double v = ( double ) rand () / ( ( double ) RAND_MAX + 1.0 );
84+ return min + ( v * ( max - min ) );
8585}
8686
8787/**
@@ -91,15 +91,18 @@ static double rand_double( void ) {
9191*/
9292static double benchmark ( void ) {
9393 double elapsed ;
94- double p ;
94+ double p [ 100 ] ;
9595 double y ;
9696 double t ;
9797 int i ;
9898
99+ for ( i = 0 ; i < 100 ; i ++ ) {
100+ p [ i ] = random_uniform ( 0.1 , 10.0 );
101+ }
102+
99103 t = tic ();
100104 for ( i = 0 ; i < ITERATIONS ; i ++ ) {
101- p = ( (double )rand () / (double )RAND_MAX ) ;
102- y = stdlib_base_dists_bernoulli_skewness ( p );
105+ y = stdlib_base_dists_bernoulli_skewness ( p [ i %100 ] );
103106 if ( y != y ) {
104107 printf ( "should not return NaN\n" );
105108 break ;
Original file line number Diff line number Diff line change 2020#include <stdlib.h>
2121#include <stdio.h>
2222
23+ static double random_uniform ( const double min , const double max ) {
24+ double v = (double )rand () / ( (double )RAND_MAX + 1.0 );
25+ return min + ( v * ( max - min ) );
26+ }
27+
2328int main ( void ) {
2429 double p ;
2530 double y ;
2631 int i ;
2732
28- for ( i = 0 ; i < 25 ; i ++ ) {
29- p = ( ( double ) rand () / ( double ) RAND_MAX ) ;
33+ for ( i = 0 ; i < 10 ; i ++ ) {
34+ p = random_uniform ( 0.1 , 10.0 ) ;
3035 y = stdlib_base_dists_bernoulli_skewness ( p );
3136 printf ( "x: %lf , skew(X;p): %lf\n" , p , y );
3237 }
You can’t perform that action at this time.
0 commit comments