@@ -23,9 +23,9 @@ <h1><a href="index.html">All files</a> main.js</h1>
2323 < div class ='clearfix '>
2424
2525 < div class ='fl pad1y space-right2 '>
26- < span class ="strong "> 90% </ span >
26+ < span class ="strong "> 90.72 % </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 162/180 </ span >
28+ < span class ='fraction '> 176/194 </ span >
2929 </ div >
3030
3131
@@ -44,9 +44,9 @@ <h1><a href="index.html">All files</a> main.js</h1>
4444
4545
4646 < div class ='fl pad1y space-right2 '>
47- < span class ="strong "> 90% </ span >
47+ < span class ="strong "> 90.72 % </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 162/180 </ span >
49+ < span class ='fraction '> 176/194 </ span >
5050 </ div >
5151
5252
@@ -243,7 +243,35 @@ <h1><a href="index.html">All files</a> main.js</h1>
243243< a name ='L178 '> </ a > < a href ='#L178 '> 178</ a >
244244< a name ='L179 '> </ a > < a href ='#L179 '> 179</ a >
245245< a name ='L180 '> </ a > < a href ='#L180 '> 180</ a >
246- < a name ='L181 '> </ a > < a href ='#L181 '> 181</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
246+ < a name ='L181 '> </ a > < a href ='#L181 '> 181</ a >
247+ < a name ='L182 '> </ a > < a href ='#L182 '> 182</ a >
248+ < a name ='L183 '> </ a > < a href ='#L183 '> 183</ a >
249+ < a name ='L184 '> </ a > < a href ='#L184 '> 184</ a >
250+ < a name ='L185 '> </ a > < a href ='#L185 '> 185</ a >
251+ < a name ='L186 '> </ a > < a href ='#L186 '> 186</ a >
252+ < a name ='L187 '> </ a > < a href ='#L187 '> 187</ a >
253+ < a name ='L188 '> </ a > < a href ='#L188 '> 188</ a >
254+ < a name ='L189 '> </ a > < a href ='#L189 '> 189</ a >
255+ < a name ='L190 '> </ a > < a href ='#L190 '> 190</ a >
256+ < a name ='L191 '> </ a > < a href ='#L191 '> 191</ a >
257+ < a name ='L192 '> </ a > < a href ='#L192 '> 192</ a >
258+ < a name ='L193 '> </ a > < a href ='#L193 '> 193</ a >
259+ < a name ='L194 '> </ a > < a href ='#L194 '> 194</ a >
260+ < a name ='L195 '> </ a > < a href ='#L195 '> 195</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
261+ < span class ="cline-any cline-yes "> 1x</ span >
262+ < span class ="cline-any cline-yes "> 1x</ span >
263+ < span class ="cline-any cline-yes "> 1x</ span >
264+ < span class ="cline-any cline-yes "> 1x</ span >
265+ < span class ="cline-any cline-yes "> 1x</ span >
266+ < span class ="cline-any cline-yes "> 1x</ span >
267+ < span class ="cline-any cline-yes "> 1x</ span >
268+ < span class ="cline-any cline-yes "> 1x</ span >
269+ < span class ="cline-any cline-yes "> 1x</ span >
270+ < span class ="cline-any cline-yes "> 1x</ span >
271+ < span class ="cline-any cline-yes "> 1x</ span >
272+ < span class ="cline-any cline-yes "> 1x</ span >
273+ < span class ="cline-any cline-yes "> 1x</ span >
274+ < span class ="cline-any cline-yes "> 1x</ span >
247275< span class ="cline-any cline-yes "> 1x</ span >
248276< span class ="cline-any cline-yes "> 1x</ span >
249277< span class ="cline-any cline-yes "> 1x</ span >
@@ -447,13 +475,27 @@ <h1><a href="index.html">All files</a> main.js</h1>
447475
448476var NINF = require( '@stdlib/constants/float16/ninf' );
449477var PINF = require( '@stdlib/constants/float16/pinf' );
450- var isnan = require( '@stdlib/assert/is-nan ' );
451- var abs = require( '@stdlib/math/base/special/abs ' );
452- var exponent = require( '@stdlib/number/float64 /base/exponent' );
453- var isNegativeZero = require( '@stdlib/assert/is-negative-zero ' );
478+ var isnanf = require( '@stdlib/math/base/ assert/is-nanf ' );
479+ var absf = require( '@stdlib/math/base/special/absf ' );
480+ var exponent = require( '@stdlib/number/float32 /base/exponent' );
481+ var isNegativeZerof = require( '@stdlib/math/base/ assert/is-negative-zerof ' );
454482var toWordf = require( '@stdlib/number/float32/base/to-word' );
455483
456484
485+ // VARIABLES //
486+
487+ var UINT16_NAN = 0x7E00; // 0x7E00 = 32256 => 0 11111 1000000000
488+ var UINT16_PINF = 0x7C00; // 0x7C00 = 31744 => 0 11111 0000000000
489+ var UINT16_NINF = 0xFC00; // 0xFC00 = 64512 => 1 11111 0000000000
490+ var UINT16_POSITIVE_ZERO = 0x0000; // 0x0000 = 0 => 0 00000 0000000000
491+ var UINT16_NEGATIVE_ZERO = 0x8000; // 0x8000 = 32768 => 1 00000 0000000000
492+ var FLOAT32_MANTISSA_MASK = 0x7FFFFF; // 0x7FFFFF = 8388607 => 0 11111111 11111111111111100000000
493+ var FLOAT32_IMPLICIT_BIT = 0x800000; // 0x800000 = 8388608 => 1 00000000 00000000000000000000000
494+ var FLOAT32_SUBNORMAL_STICKY_MASK = 0x1FFF; // 0x1FFF = 8191 => 0 00111111 11111110000000000000000
495+ var FLOAT32_STICKY_MASK = 0xFFF; // 0xFFF = 4095 => 1 11111111 11100000000000000000000
496+ var MAX_MANTISSA = 0x3FF; // 0x3FF = 1023 => 0 01111111111 0000000000000000000000000000000000000000000000000000
497+
498+
457499// MAIN //
458500
459501/**
@@ -483,31 +525,31 @@ <h1><a href="index.html">All files</a> main.js</h1>
483525 var sign;
484526
485527 // Handle special cases
486- if ( isnan ( x ) ) { // NaN
487- return 0x7E00 ;
528+ if ( isnanf ( x ) ) { // NaN
529+ return UINT16_NAN ;
488530 }
489531 if ( x === PINF ) {
490- return 0x7C00 ; // +Infinity
532+ return UINT16_PINF ; // +Infinity
491533 }
492534 if ( x === NINF ) {
493- return 0xFC00 ; // -Infinity
535+ return UINT16_NINF ; // -Infinity
494536 }
495537 if ( x === 0 ) {
496- if ( isNegativeZero ( x ) ) {
497- return 0x8000 ;
538+ if ( isNegativeZerof ( x ) ) {
539+ return UINT16_NEGATIVE_ZERO ;
498540 }
499- return 0x0000 ;
541+ return UINT16_POSITIVE_ZERO ;
500542 }
501543
502544 if ( x < 0 ) {
503545 sign = 1;
504546 } else {
505547 sign = 0;
506548 }
507- x = abs ( x );
549+ x = absf ( x );
508550 bits = toWordf( x );
509551
510- mant = bits & 0x7FFFFF ; // 23-bit mantissa
552+ mant = bits & FLOAT32_MANTISSA_MASK ; // 23-bit mantissa
511553
512554 // Store unbiased exponent of a 32-bit floating-point number.
513555 f32Exponent = exponent( x );
@@ -518,9 +560,9 @@ <h1><a href="index.html">All files</a> main.js</h1>
518560 // Handle overflow (infinity in float16)
519561 if ( f16Exponent >= 31 ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
520562< span class ="cstat-no " title ="statement not covered " > if ( sign ) {</ span >
521- < span class ="cstat-no " title ="statement not covered " > return 0xFC00 ; // -Infinity</ span >
563+ < span class ="cstat-no " title ="statement not covered " > return UINT16_NINF ; // -Infinity</ span >
522564< span class ="cstat-no " title ="statement not covered " > }</ span >
523- < span class ="cstat-no " title ="statement not covered " > return 0x7C00 ; // +Infinity</ span >
565+ < span class ="cstat-no " title ="statement not covered " > return UINT16_PINF ; // +Infinity</ span >
524566< span class ="cstat-no " title ="statement not covered " > }</ span >
525567
526568 // Handle underflow (subnormal or zero in float16)
@@ -534,7 +576,7 @@ <h1><a href="index.html">All files</a> main.js</h1>
534576 shift = 1 - f16Exponent;
535577
536578 // Create an 11-bit mantissa by adding the implicit leading 1 bit and extracting the top 10 bits from mantissa:
537- mantissa = ( 0x800000 | mant ) >>> 13;
579+ mantissa = ( FLOAT32_IMPLICIT_BIT | mant ) >>> 13;
538580
539581 // Determine the round bit and sticky bits based on the shift amount to apply correct rounding:
540582 if ( shift < 11 ) {
@@ -546,7 +588,7 @@ <h1><a href="index.html">All files</a> main.js</h1>
546588
547589 // If no sticky bits found in the 11-bit mantissa, check the remaining bits from the original mantissa:
548590 if ( !stickyBits ) {
549- stickyBits = ( mant & 0x1FFF ) !== 0;
591+ stickyBits = ( mant & FLOAT32_SUBNORMAL_STICKY_MASK ) !== 0;
550592 }
551593 }< span class ="branch-0 cbranch-no " title ="branch not covered " > else {</ span >
552594< span class ="cstat-no " title ="statement not covered " > // When the shift is 11 or greater, the round bit comes from original mantissa</ span >
@@ -574,23 +616,23 @@ <h1><a href="index.html">All files</a> main.js</h1>
574616 roundBit = ( mant >>> 12 ) & 1;
575617
576618 // Check sticky bits (all bits below bit 12)
577- stickyBits = ( mant & 0xFFF ) !== 0;
619+ stickyBits = ( mant & FLOAT32_STICKY_MASK ) !== 0;
578620
579621 // Round up if roundBit is 1 AND (sticky bits OR mantissa is odd)
580622 if ( roundBit && ( stickyBits < span class ="branch-0 cbranch-no " title ="branch not covered " > || ( mantissa & 1 ) </ span > ) ) {
581623 mantissa += 1;
582624
583625 // Check for mantissa overflow (carries into exponent)
584- if ( mantissa > 0x3FF ) {
626+ if ( mantissa > MAX_MANTISSA ) {
585627 f16Exponent += 1;
586628 mantissa = 0;
587629
588630 // Check for exponent overflow
589631 if ( f16Exponent >= 31 ) < span class ="branch-0 cbranch-no " title ="branch not covered " > {</ span >
590632< span class ="cstat-no " title ="statement not covered " > if ( sign ) {</ span >
591- < span class ="cstat-no " title ="statement not covered " > return 0xFC00 ; // -Infinity</ span >
633+ < span class ="cstat-no " title ="statement not covered " > return UINT16_NINF ; // -Infinity</ span >
592634< span class ="cstat-no " title ="statement not covered " > }</ span >
593- < span class ="cstat-no " title ="statement not covered " > return 0x7C00 ; // +Infinity</ span >
635+ < span class ="cstat-no " title ="statement not covered " > return UINT16_PINF ; // +Infinity</ span >
594636< span class ="cstat-no " title ="statement not covered " > }</ span >
595637 }
596638 }
@@ -610,7 +652,7 @@ <h1><a href="index.html">All files</a> main.js</h1>
610652 < div class ='footer quiet pad2 space-top1 center small '>
611653 Code coverage generated by
612654 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
613- at 2025-12-02T09:24:40.377Z
655+ at 2025-12-02T11:35:53.027Z
614656 </ div >
615657 < script src ="prettify.js "> </ script >
616658 < script >
0 commit comments