react / wstein / node_modules / browserify / node_modules / buffer / node_modules / ieee754 / index.js
80538 viewsexports.read = function (buffer, offset, isLE, mLen, nBytes) {1var e, m,2eLen = nBytes * 8 - mLen - 1,3eMax = (1 << eLen) - 1,4eBias = eMax >> 1,5nBits = -7,6i = isLE ? (nBytes - 1) : 0,7d = isLE ? -1 : 1,8s = buffer[offset + i]910i += d1112e = s & ((1 << (-nBits)) - 1)13s >>= (-nBits)14nBits += eLen15for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}1617m = e & ((1 << (-nBits)) - 1)18e >>= (-nBits)19nBits += mLen20for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}2122if (e === 0) {23e = 1 - eBias24} else if (e === eMax) {25return m ? NaN : ((s ? -1 : 1) * Infinity)26} else {27m = m + Math.pow(2, mLen)28e = e - eBias29}30return (s ? -1 : 1) * m * Math.pow(2, e - mLen)31}3233exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {34var e, m, c,35eLen = nBytes * 8 - mLen - 1,36eMax = (1 << eLen) - 1,37eBias = eMax >> 1,38rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0),39i = isLE ? 0 : (nBytes - 1),40d = isLE ? 1 : -1,41s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 04243value = Math.abs(value)4445if (isNaN(value) || value === Infinity) {46m = isNaN(value) ? 1 : 047e = eMax48} else {49e = Math.floor(Math.log(value) / Math.LN2)50if (value * (c = Math.pow(2, -e)) < 1) {51e--52c *= 253}54if (e + eBias >= 1) {55value += rt / c56} else {57value += rt * Math.pow(2, 1 - eBias)58}59if (value * c >= 2) {60e++61c /= 262}6364if (e + eBias >= eMax) {65m = 066e = eMax67} else if (e + eBias >= 1) {68m = (value * c - 1) * Math.pow(2, mLen)69e = e + eBias70} else {71m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)72e = 073}74}7576for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}7778e = (e << mLen) | m79eLen += mLen80for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}8182buffer[offset + i - d] |= s * 12883}848586