Skip to content

Commit a7138d3

Browse files
refactor: use explicit float32 casting in math/base/special/fast/absf
PR-URL: #8074 Co-authored-by: Athan Reines <[email protected]> Reviewed-by: Athan Reines <[email protected]>
1 parent 5dde2ff commit a7138d3

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

lib/node_modules/@stdlib/math/base/special/fast/absf/lib/main.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@
1818

1919
'use strict';
2020

21+
// MODULES //
22+
23+
var f32 = require( '@stdlib/number/float64/base/to-float32' );
24+
25+
26+
// VARIABLES //
27+
28+
var ZERO = f32( 0.0 );
29+
30+
2131
// MAIN //
2232

2333
/**
@@ -47,8 +57,9 @@
4757
* // returns NaN
4858
*/
4959
function absf( x ) {
50-
if ( x < 0.0 ) {
51-
return -x;
60+
x = f32( x );
61+
if ( x < ZERO ) {
62+
return f32( -x );
5263
}
5364
return x;
5465
}

lib/node_modules/@stdlib/math/base/special/fast/absf/test/test.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24+
var f32 = require( '@stdlib/number/float64/base/to-float32' );
2425
var isNegativeZerof = require( '@stdlib/math/base/assert/is-negative-zerof' );
2526
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2627
var PINF = require( '@stdlib/constants/float32/pinf' );
@@ -37,14 +38,14 @@ tape( 'main export is a function', function test( t ) {
3738
});
3839

3940
tape( 'the function computes the absolute value of a number', function test( t ) {
40-
t.strictEqual( absf( -2.0 ), 2.0, 'returns expected value' );
41-
t.strictEqual( absf( 3.0 ), 3.0, 'returns expected value' );
42-
t.strictEqual( absf( 0.0 ), 0.0, 'returns expected value' );
41+
t.strictEqual( absf( f32( -2.0 ) ), f32( 2.0 ), 'returns expected value' );
42+
t.strictEqual( absf( f32( 3.0 ) ), f32( 3.0 ), 'returns expected value' );
43+
t.strictEqual( absf( f32( 0.0 ) ), f32( 0.0 ), 'returns expected value' );
4344
t.end();
4445
});
4546

4647
tape( 'the function returns `-0` if provided `-0` (not IEEE 754 compliant)', function test( t ) {
47-
t.strictEqual( isNegativeZerof( absf( -0.0 ) ), true, 'returns expected value' );
48+
t.strictEqual( isNegativeZerof( absf( f32( -0.0 ) ) ), true, 'returns expected value' );
4849
t.end();
4950
});
5051

lib/node_modules/@stdlib/math/base/special/fast/absf/test/test.native.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
25+
var f32 = require( '@stdlib/number/float64/base/to-float32' );
2526
var isNegativeZerof = require( '@stdlib/math/base/assert/is-negative-zerof' );
2627
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2728
var PINF = require( '@stdlib/constants/float32/pinf' );
@@ -46,14 +47,14 @@ tape( 'main export is a function', opts, function test( t ) {
4647
});
4748

4849
tape( 'the function computes the absolute value of a number', opts, function test( t ) {
49-
t.strictEqual( absf( -2.0 ), 2.0, 'returns expected value' );
50-
t.strictEqual( absf( 3.0 ), 3.0, 'returns expected value' );
51-
t.strictEqual( absf( 0.0 ), 0.0, 'returns expected value' );
50+
t.strictEqual( absf( f32( -2.0 ) ), f32( 2.0 ), 'returns expected value' );
51+
t.strictEqual( absf( f32( 3.0 ) ), f32( 3.0 ), 'returns expected value' );
52+
t.strictEqual( absf( f32( 0.0 ) ), f32( 0.0 ), 'returns expected value' );
5253
t.end();
5354
});
5455

5556
tape( 'the function returns `-0` if provided `-0` (not IEEE 754 compliant)', opts, function test( t ) {
56-
t.strictEqual( isNegativeZerof( absf( -0.0 ) ), true, 'returns expected value' );
57+
t.strictEqual( isNegativeZerof( absf( f32( -0.0 ) ) ), true, 'returns expected value' );
5758
t.end();
5859
});
5960

0 commit comments

Comments
 (0)