UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

104 lines (87 loc) 2.58 kB
// Class: haxe.io.FPHelper var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./../../hxClasses_stub").default; var $import = require("./../../import_stub").default; function haxe__$Int64__$_$_$Int64() {return require("./../../haxe/_Int64/___Int64");} function Std() {return require("./../../Std");} // Constructor var FPHelper = function(){} // Meta FPHelper.__name__ = ["haxe","io","FPHelper"]; FPHelper.prototype = { }; FPHelper.prototype.__class__ = FPHelper.prototype.constructor = $hxClasses["haxe.io.FPHelper"] = FPHelper; // Init // Statics FPHelper.i32ToFloat = function(i) { var sign = 1 - (i >>> 31 << 1); var exp = i >>> 23 & 255; var sig = i & 8388607; if(sig == 0 && exp == 0) { return 0.0; } return sign * (1 + Math.pow(2,-23) * sig) * Math.pow(2,exp - 127); } FPHelper.floatToI32 = function(f) { if(f == 0) { return 0; } var af = f < 0 ? -f : f; var exp = Math.floor(Math.log(af) / 0.6931471805599453); if(exp < -127) { exp = -127; } else if(exp > 128) { exp = 128; } var sig = Math.round((af / Math.pow(2,exp) - 1) * 8388608); if(sig == 8388608 && exp < 128) { sig = 0; ++exp; } return (f < 0 ? -2147483648 : 0) | exp + 127 << 23 | sig; } FPHelper.i64ToDouble = function(low,high) { var sign = 1 - (high >>> 31 << 1); var exp = (high >> 20 & 2047) - 1023; var sig = (high & 1048575) * 4294967296. + (low >>> 31) * 2147483648. + (low & 2147483647); if(sig == 0 && exp == -1023) { return 0.0; } return sign * (1.0 + Math.pow(2,-52) * sig) * Math.pow(2,exp); } FPHelper.doubleToI64 = function(v) { var i64 = FPHelper.i64tmp; if(v == 0) { i64.low = 0; i64.high = 0; } else if(!isFinite(v)) { if(v > 0) { i64.low = 0; i64.high = 2146435072; } else { i64.low = 0; i64.high = -1048576; } } else { var av = v < 0 ? -v : v; var exp = Math.floor(Math.log(av) / 0.6931471805599453); var sig = Math.round((av / Math.pow(2,exp) - 1) * 4503599627370496.); var sig_l = (Std().default)["int"](sig); var sig_h = (Std().default)["int"](sig / 4294967296.0); i64.low = sig_l; i64.high = (v < 0 ? -2147483648 : 0) | exp + 1023 << 20 | sig_h; } return i64; } FPHelper.i64tmp = (function($this) { var $r; var this1 = new (haxe__$Int64__$_$_$Int64().default)(0,0); $r = this1; return $r; }(this)) FPHelper.LN2 = 0.6931471805599453 // Export exports.default = FPHelper;