This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
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.
26 lines
745 B
26 lines
745 B
// 20.2.2.16 Math.fround(x) |
|
var $export = require('./$.export') |
|
, sign = require('./$.math-sign') |
|
, pow = Math.pow |
|
, EPSILON = pow(2, -52) |
|
, EPSILON32 = pow(2, -23) |
|
, MAX32 = pow(2, 127) * (2 - EPSILON32) |
|
, MIN32 = pow(2, -126); |
|
|
|
var roundTiesToEven = function(n){ |
|
return n + 1 / EPSILON - 1 / EPSILON; |
|
}; |
|
|
|
|
|
$export($export.S, 'Math', { |
|
fround: function fround(x){ |
|
var $abs = Math.abs(x) |
|
, $sign = sign(x) |
|
, a, result; |
|
if($abs < MIN32)return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; |
|
a = (1 + EPSILON32 / EPSILON) * $abs; |
|
result = a - (a - $abs); |
|
if(result > MAX32 || result != result)return $sign * Infinity; |
|
return $sign * result; |
|
} |
|
}); |