File tree 1 file changed +4
-8
lines changed
1 file changed +4
-8
lines changed Original file line number Diff line number Diff line change @@ -11,15 +11,11 @@ export function isPowerOf2(x: i32): bool {
11
11
export function accuratePow64 ( x : f64 , y : f64 ) : f64 {
12
12
if ( ! ASC_TARGET ) { // ASC_TARGET == JS
13
13
// Engines like V8, WebKit and SpiderMonkey uses powi fast path if exponent is integer
14
- // This speculative optimization leads to loose precisions like 10 ** 208 != 1e208
15
- // or/and 10 ** -5 != 1e-5 anymore. For avoid this behaviour we are forcing exponent
14
+ // This speculative optimization leads to loose precisions like 10 ** -5 != 1e-5 anymore.
15
+ // For avoid this behaviour we are forcing exponent
16
16
// to fractional form and compensate this afterwards.
17
- if ( isFinite ( y ) && Math . abs ( y ) >= 2 && Math . trunc ( y ) == y ) {
18
- if ( y < 0 ) {
19
- return Math . pow ( x , y + 0.5 ) / Math . pow ( x , 0.5 ) ;
20
- } else {
21
- return Math . pow ( x , y - 0.5 ) * Math . pow ( x , 0.5 ) ;
22
- }
17
+ if ( isFinite ( y ) && y <= 2 && Math . trunc ( y ) == y ) {
18
+ return Math . pow ( x , y + 0.5 ) / Math . pow ( x , 0.5 ) ;
23
19
}
24
20
}
25
21
return Math . pow ( x , y ) ;
You can’t perform that action at this time.
0 commit comments