You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							24 lines
						
					
					
						
							716 B
						
					
					
				
			
		
		
	
	
							24 lines
						
					
					
						
							716 B
						
					
					
				// 20.2.2.16 Math.fround(x)
 | 
						|
var sign = require('./_math-sign');
 | 
						|
var pow = Math.pow;
 | 
						|
var EPSILON = pow(2, -52);
 | 
						|
var EPSILON32 = pow(2, -23);
 | 
						|
var MAX32 = pow(2, 127) * (2 - EPSILON32);
 | 
						|
var MIN32 = pow(2, -126);
 | 
						|
 | 
						|
var roundTiesToEven = function (n) {
 | 
						|
  return n + 1 / EPSILON - 1 / EPSILON;
 | 
						|
};
 | 
						|
 | 
						|
module.exports = Math.fround || function fround(x) {
 | 
						|
  var $abs = Math.abs(x);
 | 
						|
  var $sign = sign(x);
 | 
						|
  var a, result;
 | 
						|
  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
 | 
						|
  a = (1 + EPSILON32 / EPSILON) * $abs;
 | 
						|
  result = a - (a - $abs);
 | 
						|
  // eslint-disable-next-line no-self-compare
 | 
						|
  if (result > MAX32 || result != result) return $sign * Infinity;
 | 
						|
  return $sign * result;
 | 
						|
};
 |