UNPKG

quadstore

Version:

Quadstore is a LevelDB-backed RDF graph database / triplestore for JavaScript runtimes (browsers, Node.js, Deno, Bun, ...) that implements the RDF/JS interfaces and supports SPARQL queries and querying across named graphs.

66 lines 1.52 kB
const join = (encodingCase, exponent, mantissa) => { let r = '' + encodingCase; if (exponent < 10) { r += '00' + exponent; } else if (exponent < 100) { r += '0' + exponent; } else { r += exponent; } r += mantissa.toFixed(17); return r; }; const ZERO = join(3, 0, 0); const NEG_INF = join(0, 0, 0); const POS_INF = join(6, 0, 0); const NAN = join(7, 0, 0); export const encode = (stringOrNumber) => { let mantissa = typeof stringOrNumber !== 'number' ? parseFloat(stringOrNumber) : stringOrNumber; if (Number.isNaN(mantissa)) { return NAN; } if (mantissa === -Infinity) { return NEG_INF; } if (mantissa === Infinity) { return POS_INF; } if (mantissa === 0) { return ZERO; } let exponent = 0; let sign = 0; if (mantissa < 0) { sign = 1; mantissa *= -1; } while (mantissa > 10) { mantissa /= 10; exponent += 1; } while (mantissa < 1) { mantissa *= 10; exponent -= 1; } if (sign === 1) { if (exponent >= 0) { return join(1, 999 - exponent, 10 - mantissa); } else { return join(2, exponent * -1, 10 - mantissa); } } else { if (exponent < 0) { return join(4, 999 + exponent, mantissa); } else { return join(5, exponent, mantissa); } } }; //# sourceMappingURL=fpstring.js.map