fix: resolve 32-bit truncation overflow in BigInt coordinate math
All checks were successful
npm-publish / publish (push) Successful in 4s

- Replaced 32-bit bitwise shifts (<<) with Math.pow() and BigInt shifts to support large nsides without modulo overflow.
- Recalculated compress_bits and spread_bits to explicitly loop 64-bit indexes rather than truncating with 8-bit Uint16Array table lookups (ctab/utab).
- Restored original C/C++ geographic precision boundaries allowing the engine to successfully encode and decode high-precision pixels natively up to Order 52.
This commit is contained in:
2026-03-06 20:40:18 +00:00
parent b19b253e68
commit 9ad361f0ca
4 changed files with 795 additions and 650 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@gkucmierz/healpixjs-bigint",
"version": "1.0.1",
"version": "1.0.2",
"description": "True BigInt port of healpixjs supporting orders beyond the 32-bit (<=14) limit",
"keywords": [
"healpix",
@@ -31,4 +31,4 @@
},
"author": "Grzegorz Kućmierz",
"license": "MIT"
}
}