From 1e4c2a1a0903ba9370b5079478754cff2962c92c Mon Sep 17 00:00:00 2001 From: stdlib-bot <82920195+stdlib-bot@users.noreply.github.com> Date: Thu, 14 Mar 2024 23:26:04 +0000 Subject: [PATCH] Update artifacts --- math/base/special/boxcox1p/coverage.ndjson | 1 + math/base/special/boxcox1p/index.html | 146 ++++++++ math/base/special/boxcox1p/index.js.html | 259 ++++++++++++++ math/base/special/boxcox1p/main.js.html | 394 +++++++++++++++++++++ math/base/special/boxcox1p/native.js.html | 295 +++++++++++++++ 5 files changed, 1095 insertions(+) create mode 100644 math/base/special/boxcox1p/coverage.ndjson create mode 100644 math/base/special/boxcox1p/index.html create mode 100644 math/base/special/boxcox1p/index.js.html create mode 100644 math/base/special/boxcox1p/main.js.html create mode 100644 math/base/special/boxcox1p/native.js.html diff --git a/math/base/special/boxcox1p/coverage.ndjson b/math/base/special/boxcox1p/coverage.ndjson new file mode 100644 index 000000000..9ca0fe90b --- /dev/null +++ b/math/base/special/boxcox1p/coverage.ndjson @@ -0,0 +1 @@ +[231,231,100,16,16,100,2,2,100,231,231,100,"601c72c0495f2515161fe50ade666b477d0a2c4f","2024-03-14 19:23:51 -0400"] diff --git a/math/base/special/boxcox1p/index.html b/math/base/special/boxcox1p/index.html new file mode 100644 index 000000000..b8ec17e56 --- /dev/null +++ b/math/base/special/boxcox1p/index.html @@ -0,0 +1,146 @@ + + + + +
++ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ +File | ++ | Statements | ++ | Branches | ++ | Functions | ++ | Lines | ++ |
---|---|---|---|---|---|---|---|---|---|
index.js | +
+
+ |
+ 100% | +58/58 | +100% | +1/1 | +100% | +0/0 | +100% | +58/58 | +
main.js | +
+
+ |
+ 100% | +103/103 | +100% | +13/13 | +100% | +1/1 | +100% | +103/103 | +
native.js | +
+
+ |
+ 100% | +70/70 | +100% | +2/2 | +100% | +1/1 | +100% | +70/70 | +
+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 | 1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x + | /** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +/** +* Compute a one-parameter Box-Cox transformation of `1+x`. +* +* @module @stdlib/math/base/special/boxcox1p +* +* @example +* var boxcox1p = require( '@stdlib/math/base/special/boxcox1p' ); +* +* var v = boxcox1p( 1.0, 2.5 ); +* // returns ~1.8627 +* +* v = boxcox1p( 4.0, 2.5 ); +* // returns ~21.9607 +* +* v = boxcox1p( 10.0, 2.5 ); +* // returns ~160.1246 +* +* v = boxcox1p( 2.0, 0.0 ); +* // returns ~1.0986 +* +* v = boxcox1p( -1.0, 2.5 ); +* // returns -0.4 +* +* v = boxcox1p( 0.0, -1.0 ); +* // returns 0.0 +* +* v = boxcox1p( -1.0, -1.0 ); +* // returns -Infinity +*/ + +// MODULES // + +var boxcox1p = require( './main.js' ); + + +// EXPORTS // + +module.exports = boxcox1p; + |
+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 | 1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +11087x +11087x +11087x +1003x +1003x +11087x +1000x +1000x +9084x +9084x +11087x +7648x +7648x +7648x +7648x +2860x +7648x +11087x +2866x +2866x +6218x +11087x +1x +1x +1x +1x +1x + | /** +* @license Apache-2.0 +* +* Copyright (c) 2018 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var log1p = require( '@stdlib/math/base/special/log1p' ); +var abs = require( '@stdlib/math/base/special/abs' ); +var expm1 = require( '@stdlib/math/base/special/expm1' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var NINF = require( '@stdlib/constants/float64/ninf' ); + + +// MAIN // + +/** +* Computes a one-parameter Box-Cox transformation of `1+x`. +* +* ## Method +* +* When computing a one-parameter Box-Cox transformation +* +* - If \\( \lambda << 1 \\) and \\( \ln( x ) < 1.0 \\), then the product \\( \lambda \cdot \ln(x) \\) can lose precision, and, furthermore, \\( \operatorname{expm1}(x) = x \\) for \\( x < \epsilon \\). +* - For double-precision floating-point numbers, the range of the natural log is \\( \[-744.44, 709.78\] and \\( \epsilon \\) is the smallest value produced. +* - The value range means that we will have \\( |\lambda \cdot \ln(x)| < \epsilon \\) whenever \\( |\lambda| \leq \frac{\epsilon}{-\ln(d) \\), where \\( d \\) is the minimum double-precision floating-point number, thus corresponding to the value \\( \approx 2.98 \times 10^{-19} \\). +* +* For small `x` values, the same method described above applies with the modification that the smallest value returned by \\( \operatorname{log1p}(x) \\) is the minimum representable value, not \\( \epsilon \\). Furthermore, we need to guard against underflow when \\( \operatorname{log1p}(x) < \epsilon \\). +* +* @param {number} x - input value +* @param {number} lambda - power parameter +* @returns {number} Box-Cox transformation of `1+x` +* +* @example +* var v = boxcox1p( 1.0, 2.5 ); +* // returns ~1.8627 +* +* @example +* var v = boxcox1p( 4.0, 2.5 ); +* // returns ~21.9607 +* +* @example +* var v = boxcox1p( 10.0, 2.5 ); +* // returns ~160.1246 +* +* @example +* var v = boxcox1p( 2.0, 0.0 ); +* // returns ~1.0986 +* +* @example +* var v = boxcox1p( -1.0, 2.5 ); +* // returns -0.4 +* +* @example +* var v = boxcox1p( 0.0, -1.0 ); +* // returns 0.0 +* +* @example +* var v = boxcox1p( -1.0, -1.0 ); +* // returns -Infinity +*/ +function boxcox1p( x, lambda ) { + var lgx; + if ( isnan( x ) || isnan( lambda ) || x < -1.0 ) { + return NaN; + } + if ( x === -1.0 && lambda < 0.0 ) { + return NINF; + } + lgx = log1p( x ); + if ( + abs( lambda ) < 1.0e-19 || + + // Guard against underflow... + ( + abs( lgx ) < 1.0e-289 && + abs( lambda ) < 1.0e273 + ) + ) { + return lgx; + } + return expm1( lambda*lgx ) / lambda; +} + + +// EXPORTS // + +module.exports = boxcox1p; + |
+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 | 1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +1x +11087x +11087x +11087x +1x +1x +1x +1x +1x + | /** +* @license Apache-2.0 +* +* Copyright (c) 2024 The Stdlib Authors. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +'use strict'; + +// MODULES // + +var addon = require( './../src/addon.node' ); + + +// MAIN // + +/** +* Computes a one-parameter Box-Cox transformation of `1+x`. +* +* @param {number} x - input value +* @param {number} lambda - power parameter +* @returns {number} Box-Cox transformation of `1+x` +* +* @example +* var v = boxcox1p( 1.0, 2.5 ); +* // returns ~1.8627 +* +* @example +* var v = boxcox1p( 4.0, 2.5 ); +* // returns ~21.9607 +* +* @example +* var v = boxcox1p( 10.0, 2.5 ); +* // returns ~160.1246 +* +* @example +* var v = boxcox1p( 2.0, 0.0 ); +* // returns ~1.0986 +* +* @example +* var v = boxcox1p( -1.0, 2.5 ); +* // returns -0.4 +* +* @example +* var v = boxcox1p( 0.0, -1.0 ); +* // returns 0.0 +* +* @example +* var v = boxcox1p( -1.0, -1.0 ); +* // returns -Infinity +*/ +function boxcox1p( x, lambda ) { + return addon( x, lambda ); +} + + +// EXPORTS // + +module.exports = boxcox1p; + |