Skip to content

Commit 2105db7

Browse files
authored
refactor: reuse variance in stats/base/dists/betaprime/stdev
PR-URL: #11368 Reviewed-by: Athan Reines <kgryte@gmail.com>
1 parent 06dbaf0 commit 2105db7

File tree

3 files changed

+10
-30
lines changed

3 files changed

+10
-30
lines changed

lib/node_modules/@stdlib/stats/base/dists/betaprime/stdev/lib/main.js

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
// MODULES //
2222

23-
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2423
var sqrt = require( '@stdlib/math/base/special/sqrt' );
24+
var variance = require( '@stdlib/stats/base/dists/betaprime/variance' );
2525

2626

2727
// MAIN //
@@ -66,17 +66,7 @@ var sqrt = require( '@stdlib/math/base/special/sqrt' );
6666
* // returns NaN
6767
*/
6868
function stdev( alpha, beta ) {
69-
var bm1;
70-
if (
71-
isnan( alpha ) ||
72-
alpha <= 0.0 ||
73-
isnan( beta ) ||
74-
beta <= 2.0
75-
) {
76-
return NaN;
77-
}
78-
bm1 = beta - 1.0;
79-
return sqrt( ( alpha * ( alpha + bm1 ) ) / ( ( bm1-1.0 ) * bm1*bm1 ) );
69+
return sqrt( variance( alpha, beta ) );
8070
}
8171

8272

lib/node_modules/@stdlib/stats/base/dists/betaprime/stdev/manifest.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@
3939
"libpath": [],
4040
"dependencies": [
4141
"@stdlib/math/base/napi/binary",
42-
"@stdlib/math/base/assert/is-nan",
43-
"@stdlib/math/base/special/sqrt"
42+
"@stdlib/math/base/special/sqrt",
43+
"@stdlib/stats/base/dists/betaprime/variance"
4444
]
4545
},
4646
{
@@ -55,8 +55,8 @@
5555
"libraries": [],
5656
"libpath": [],
5757
"dependencies": [
58-
"@stdlib/math/base/assert/is-nan",
59-
"@stdlib/math/base/special/sqrt"
58+
"@stdlib/math/base/special/sqrt",
59+
"@stdlib/stats/base/dists/betaprime/variance"
6060
]
6161
},
6262
{
@@ -71,8 +71,8 @@
7171
"libraries": [],
7272
"libpath": [],
7373
"dependencies": [
74-
"@stdlib/math/base/assert/is-nan",
75-
"@stdlib/math/base/special/sqrt"
74+
"@stdlib/math/base/special/sqrt",
75+
"@stdlib/stats/base/dists/betaprime/variance"
7676
]
7777
}
7878
]

lib/node_modules/@stdlib/stats/base/dists/betaprime/stdev/src/main.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
*/
1818

1919
#include "stdlib/stats/base/dists/betaprime/stdev.h"
20-
#include "stdlib/math/base/assert/is_nan.h"
2120
#include "stdlib/math/base/special/sqrt.h"
21+
#include "stdlib/stats/base/dists/betaprime/variance.h"
2222

2323
/**
2424
* Returns the standard deviation of a beta prime distribution.
@@ -32,15 +32,5 @@
3232
* // returns ~0.866
3333
*/
3434
double stdlib_base_dists_betaprime_stdev( const double alpha, const double beta ) {
35-
double bm1;
36-
if (
37-
stdlib_base_is_nan( alpha ) ||
38-
stdlib_base_is_nan( beta ) ||
39-
alpha <= 0.0 ||
40-
beta <= 2.0
41-
) {
42-
return 0.0 / 0.0; // NaN
43-
}
44-
bm1 = beta - 1.0;
45-
return stdlib_base_sqrt( ( alpha * ( alpha + bm1 ) ) / ( ( bm1 - 1.0 ) * bm1 * bm1 ) );
35+
return stdlib_base_sqrt( stdlib_base_dists_betaprime_variance( alpha, beta ) );
4636
}

0 commit comments

Comments
 (0)