diff --git a/math/base/special/logaddexp/coverage.ndjson b/math/base/special/logaddexp/coverage.ndjson new file mode 100644 index 000000000..30c33a8e0 --- /dev/null +++ b/math/base/special/logaddexp/coverage.ndjson @@ -0,0 +1 @@ +[173,173,100,12,12,100,2,2,100,173,173,100,"a2ed2a57008a88e74e94185443d3634b1f194223","2024-03-02 12:07:40 -0500"] diff --git a/math/base/special/logaddexp/index.html b/math/base/special/logaddexp/index.html new file mode 100644 index 000000000..a2ca8c1e7 --- /dev/null +++ b/math/base/special/logaddexp/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% | +46/46 | +100% | +1/1 | +100% | +0/0 | +100% | +46/46 | +
main.js | +
+
+ |
+ 100% | +68/68 | +100% | +9/9 | +100% | +1/1 | +100% | +68/68 | +
native.js | +
+
+ |
+ 100% | +59/59 | +100% | +2/2 | +100% | +1/1 | +100% | +59/59 | +
+ 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 | 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 the natural logarithm of \\( exp(x) + exp(y) \\). +* +* @module @stdlib/math/base/special/logaddexp +* +* @example +* var logaddexp = require( '@stdlib/math/base/special/logaddexp' ); +* +* var v = logaddexp( 90.0, 90.0 ); +* // returns ~90.6931 +* +* v = logaddexp( -20.0, 90.0 ); +* // returns 90.0 +* +* v = logaddexp( 0.0, -100 ); +* // returns ~3.7201e-44 +*/ + +// MODULES // + +var main = require( './main.js' ); + + +// EXPORTS // + +module.exports = main; + |
+ 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 | 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 +1405x +1405x +1405x +3x +3x +1405x +1x +1x +1401x +1405x +695x +695x +706x +1405x +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 isnan = require( '@stdlib/math/base/assert/is-nan' ); +var exp = require( '@stdlib/math/base/special/exp' ); +var log1p = require( '@stdlib/math/base/special/log1p' ); +var LN2 = require( '@stdlib/constants/float64/ln-two' ); + + +// MAIN // + +/** +* Computes the natural logarithm of \\( \exp(x) + \exp(y) \\). +* +* @param {number} x - input value +* @param {number} y - input value +* @returns {number} natural logarithm of \\( \exp(x) + \exp(y) \\) +* +* @example +* var v = logaddexp( 90.0, 90.0 ); +* // returns ~90.6931 +* +* @example +* var v = logaddexp( -20.0, 90.0 ); +* // returns 90.0 +* +* @example +* var v = logaddexp( 0.0, -100 ); +* // returns ~3.7201e-44 +*/ +function logaddexp( x, y ) { + var d; + if ( isnan( x ) || isnan( y ) ) { + return NaN; + } + if ( x === y ) { + return x + LN2; + } + d = x - y; + if ( d > 0.0 ) { + return x + log1p( exp( -d ) ); + } + return y + log1p( exp( d ) ); +} + + +// EXPORTS // + +module.exports = logaddexp; + |
+ 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 | 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 +1405x +1405x +1405x +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 the natural logarithm of `exp(x) + exp(y)`. +* +* @private +* @param {number} x - first number +* @param {number} y - second number +* @returns {number} natural logarithm of \\( \exp(x) + \exp(y) \\) +* +* @example +* var v = logaddexp( 90.0, 90.0 ); +* // returns ~90.6931 +* +* @example +* var v = logaddexp( -20.0, 90.0 ); +* // returns 90.0 +* +* @example +* var v = logaddexp( NaN, 1.0 ); +* // returns NaN +* +* @example +* var v = logaddexp( 0.0, -100.0 ); +* // returns ~3.7201e-44 +*/ +function logaddexp( x, y ) { + return addon( x, y ); +} + + +// EXPORTS // + +module.exports = logaddexp; + |