{"_id":"quick-scale","_rev":"4-d90fb67873b09399efb40b79bd3c6618","name":"quick-scale","dist-tags":{"latest":"0.2.0"},"versions":{"0.0.1":{"name":"quick-scale","version":"0.0.1","description":"Create a Fast Linear Scaling Function. CPU Optimized. Reversible. Rounding.","main":"./quick-scale.js","scripts":{"format":"npx prettier --arrow-parens=avoid --print-width=240 --trailing-comma=none --write *.js","test":"node test.js"},"type":"module","repository":{"type":"git","url":"git+https://github.com/DanielJDufour/quick-scale.git"},"keywords":["linear","math","scale"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/quick-scale/issues"},"homepage":"https://github.com/DanielJDufour/quick-scale#readme","gitHead":"7a28a5a89c3cd4a3d085ff84e6d3a198ecd14d66","_id":"quick-scale@0.0.1","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-Qc6SQWnAzwJBbD+9pSG06FOCMeeu5cJRKmdFFRVM865NNz+YLdzQPRcysS53wvTeP4YjZ2zIj/Zeys0yZ/CKNg==","shasum":"741ce07fca31b59e397c929c8f0fdcd2f10037e6","tarball":"https://registry.npmjs.org/quick-scale/-/quick-scale-0.0.1.tgz","fileCount":5,"unpackedSize":13517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1PBe4DzG2V4jez6Fgo1a7najAVwWT8VDTYY3SenfiDgIgMQ5qTQxvpTirEikU+/mNwVbMpRNLtjFbpoEbZ0DHyU4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibfE9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqIIRAApNtdUnxC5M7JoTw5/MlXExePmN9RIFe1bpl8d0tr+FmprBSS\r\nY8JklaKnVT36sfKPVGFcwK2FOHDPOeSfyfgAe+Cw5Q94kXU7iIJH1GDOyaFe\r\nybHd+HkJJR+JOqS0gXovsW9QqHRWIdimstvQIBkbmORGj4IMk8H4UZH6wdra\r\nbcuQziEgeGIsNzWgQO71T7HG3Q8OgQMKlubOCPx8zkwXCFp1uVIMzcXIdz2K\r\n8FGVYnasK0ERPzJ6qoiyl6f/FZMrLW7NHy25X7x+IhoG8x1t7J5/gku2TbD0\r\nUsk8xHVWynky0Ux9shSn9gX3RsB3Psgzko73r0HlwjakUT4umrLK5BRSkUsW\r\nq1Pu13qpanKKKYbBnyhgcqEAI9I8JDnABbeCGFqigyuBeg5ZHCb/tdQCDzKq\r\nxwqxKCeXK3TuPzaE+mcULwbI/ZJU60B82Xhm85fz8ChjMPgvLPSboy4i/e6P\r\nMoTcdZGlxJ01LEtcpCH23gY7CDLKivVnCrnfi9M4U6GBS+ROpu4KXuAjTpDp\r\n+kHOZkhatZNUTkR0SJ5wUh7ECTrlt6AIiCsw1oKYOcEQZbr22JNrSThW1H6D\r\njiZwmArViR9n1kv3B+we/+MlvCp8UooXp9XreVIl2Ej4LA3ykjrQs2GjG1vf\r\nrMMo9qX5uTZj3itUm5pDyWdCZIdWwHM+urQ=\r\n=+BlP\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quick-scale_0.0.1_1651372348992_0.2503702138853776"},"_hasShrinkwrap":false},"0.0.2":{"name":"quick-scale","version":"0.0.2","description":"Create a Fast Linear Scaling Function. CPU Optimized. Reversible. Rounding.","main":"./quick-scale.js","scripts":{"format":"npx prettier --arrow-parens=avoid --print-width=240 --trailing-comma=none --write *.js","test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/quick-scale.git"},"keywords":["linear","math","scale"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/quick-scale/issues"},"homepage":"https://github.com/DanielJDufour/quick-scale#readme","gitHead":"237d0f8258347bfe2b1bb2e5e76630871ca19148","_id":"quick-scale@0.0.2","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-Bjvns2nzSGYTs+tuH1Vn8nCZwQ5ku0Y+zSznGWzL6fLqS/ySywR2khSc6vpj2XAkehJiqobFT9OwVc/3zwMz4w==","shasum":"0cd350ffb2d90a6a81a8151d62ed6e8d5ffcac3c","tarball":"https://registry.npmjs.org/quick-scale/-/quick-scale-0.0.2.tgz","fileCount":5,"unpackedSize":13958,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUfCP2r/2TMxa6lSfeAeRyG3Ack5mw6dZqHw7n+QLAEgIgZmUivFk0FAO4Lsb5tvNOTM/wyj9SJ3wgHUwo0Ndd5pQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibpzgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqUDw/+PCrSXz43KBEpJsP9riU98uBlKclqI5RA8b6AXOubm22nWP5o\r\nYBoNP7G8C5isISojaqIRjhXAapNQOjDNy2qM3mCGS384RWXJ2TCR604cDzU/\r\n8pSeE5dO6ZnxKMukpD0LGrK5BvXwl6zzUpfpVZcaLMsxJqbp7sI6SYpcRY5v\r\nf2Ud5b/dV67ayndlz0DjODXNn66dgfJjxnWVV+RODnHCsLDdjo3pNJHm72uz\r\ngYTF83NrIleTUlrrz5rZPT99qCEhEYKc2TTLriSjO9A/JQjsFAXfj+T4Cij+\r\nX9KYXnTgnLQ5szNcUt0pedOoqYPhWjxfGww8hApkWY0/6F4vkXybL7diR1Bj\r\n1nBd3wc6NP2+jaUghBgqF51alyBjps0Y+KbSoC8dfra56karTQFy0rK233eR\r\nUCR+y//DGWTRYf8UT8W8cmlZsPmhBX0uOLZBIJ/jiw3h35jK7pAUQ/GJf+p0\r\nH9/sjXRipKs+hBfFznWZe0ONR1VfX8LOkOPcjANJhAwXJdy3e6oexmJId6he\r\nt/pgOaf7TPQO4UU+K0g99dzhqDlrKuUwv4lhi+xV4wP2r6gxB5PGQIp9XzL4\r\nqqmt7WzzSXtFcvxgksPKCdQjRQPp25zHLPKD/kjccQOBeesGjNBrcPFYbyOR\r\n1DW81uE8yJTN10dDowekTUkN9IGdXXI9ITw=\r\n=5mw3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quick-scale_0.0.2_1651416288522_0.772949127564136"},"_hasShrinkwrap":false},"0.0.3":{"name":"quick-scale","version":"0.0.3","description":"Create a Fast Linear Scaling Function. CPU Optimized. Reversible. Rounding.","main":"./quick-scale.js","types":"quick-scale.d.ts","scripts":{"format":"npx prettier --arrow-parens=avoid --print-width=240 --trailing-comma=none --write *.js *.ts","test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/quick-scale.git"},"keywords":["linear","math","scale"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/quick-scale/issues"},"homepage":"https://github.com/DanielJDufour/quick-scale#readme","gitHead":"e293803ada7f382aed3f19af765ea1ec9df4dfa9","_id":"quick-scale@0.0.3","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-5kKopbNTxJokHIVRtwpvth/ddFa9eD7xq3ojXOSSiONnCpAYwbsg8gOtMXJ0mglsnQ5Amiz+R3gUa54dGuc+Mg==","shasum":"6da6383690df328b727f973973fbc4f6391a75cd","tarball":"https://registry.npmjs.org/quick-scale/-/quick-scale-0.0.3.tgz","fileCount":6,"unpackedSize":14324,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC+ekc7Z+nylpHZFoGu787XdW241Vd48xl7XLLY0GZ5wIgBOYnByihGfjIUNMnWyqA5UQTaUZqJty/0cQWqWB9lmI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicGoMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRrA//Wg+UxjWLoRqKlsnIlcnRPYAVFTYnYzzcGMAr2Wt+bwSBDj8/\r\nQAH+86HnkJMsj5XrA8FwThxHVsZaxDtyVLz4aSNFmnBKtC2sWG5e/6aIjBqd\r\nk9XYxPVDM4yuDLB1r81q5SWYuSLNVBKOFj4x+sATVemqdwlw6wdK7LcK9psg\r\nz1Gda0Gwx3gPgnV3tvBqTTuEGh23n+XiFnVWHdvcadd+niZdiJP3NuZcPGXq\r\n3ZInAiZGwX326Jip9+IDrC1PUo7XcqFAv4nxdGf2ZSSiamOjGC0dc4wDkPN6\r\n856CcBGjP/lRrzBgo3MW9X01w1GwnAmdmfHtruDGT+8SXcPDVXsuOyr3ZSK6\r\ncZ3qhL7bMLyCv3wL36MJydlTI6A6I/fV96E63pLCyxhipid1duy5lzI1uwHs\r\n3TeOaCliXpOxQOvskKFIU4MZz65+QRO2zgCUHx4vxm049z0VrfRi5jSlvcrk\r\npTMrs9v0jskeJFi+E7DZ4gEtiYBqaoDSpEugtHweOi5B7Pb7IzCf5CYtGY01\r\nRcuU0kgRpIML4DGoo78gIyebsHbiUNOdUOg+k2S8HSYZDVMG8DSRFsfZMw9B\r\nXBSFemBL/dkfXprnrz1k/V6zhOuLdsnpWy4l82Ci6/on8Y4wFx9JfQduxxkG\r\nIzly6vLH/NSqH+4cqW0takNJBQS++b69sMQ=\r\n=CC+A\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quick-scale_0.0.3_1651534348041_0.5602096921041126"},"_hasShrinkwrap":false},"0.1.0":{"name":"quick-scale","version":"0.1.0","description":"Create a Fast Linear Scaling Function. CPU Optimized. Reversible. Rounding.","main":"./quick-scale.js","types":"quick-scale.d.ts","scripts":{"format":"npx prettier --arrow-parens=avoid --print-width=240 --trailing-comma=none --write *.js *.ts","test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/quick-scale.git"},"keywords":["linear","math","scale"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/quick-scale/issues"},"homepage":"https://github.com/DanielJDufour/quick-scale#readme","gitHead":"d27065f2314294523d66040a22f649a63be0e821","_id":"quick-scale@0.1.0","_nodeVersion":"18.0.0","_npmVersion":"8.6.0","dist":{"integrity":"sha512-bIlJjYX72KWb5w6G8YMyHr2/DEOYtAbYs0l+qwQoVM3Jw/6QUkAUErjSCPgIg+jHbuH+pdUhqWjDwHpM7r72FQ==","shasum":"d9c1c500b837505acd432e0b7128098d5af600c5","tarball":"https://registry.npmjs.org/quick-scale/-/quick-scale-0.1.0.tgz","fileCount":6,"unpackedSize":14382,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDq2xyjMDGTXEAr5j+FYS3FZNhuOOOqece7N3cHQp6ZEAIgUKxrRKmEX/r7DhwBNE9viHzcRbAMKGOWIsGxd+uXOX8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicxRdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpgrw/9GxvGl+8KKyG0+1EFUHRXuHQIaCuF7YK/pEGA+a/CNFvi8LT2\r\nRlYbeAYOcEX5yBcA1PhWwhTgcu/5IRE/ZRsG2UWQLWHAOh/hBjLbwHt6JxV4\r\nCvC/+BelFmnJgzSIkSGQUqQ3IZ3enuu+eV+RReU+2ghvrhg2cbchjxlWPEQR\r\nNgzqvYPOc/yB/HCoJAGmqkkIUq/87vJ5NZQY2WQL+HPpLedAmSuBgVp1wo7G\r\ncnAP7q4cn/sf5B6WpnjRRfWfwxavAlzON+e5G64NOua0niHxDNBXfWiCUeQh\r\n8sBQ5z/IQDnNxJjA7fpTI0OH0b0bhNCjbqKCzRHTxtlPPSlx1A6CPpFfIOgN\r\nL+52gH7s9TSG+rHoOSDTd/1xbq25Fv9OEZPliAnwxQ35z+JZAkk8a4vH1PJK\r\nZpkq2sVtJYljUqIBWGbzT6c4uaH/4TCMWYbxvklf5SQ6zOOroQvmajZSWuGG\r\nXnwSQI1U0694PrzPgK72sBasAQZxkAhL9yv1J/miiaLfl7lj95eia6pCkgJk\r\nFhTc+9c2A8Q26+fQgi6LniK5falBXDChTharp7mJ4m96sLsjJKE3MI8s6scX\r\nI7W9tBbjhYuBOk5k2rahdcP7VVVoawWce1vcv9G4NrYoHRys3iJqiwkMNTiB\r\n88/cl89Uu6FIxnWb26EbkKsQY1MAqyai14Q=\r\n=S5o0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quick-scale_0.1.0_1651709021227_0.6374632701566012"},"_hasShrinkwrap":false},"0.2.0":{"name":"quick-scale","version":"0.2.0","description":"Create a Fast Linear Scaling Function. CPU Optimized. Reversible. Rounding.","main":"./quick-scale.js","types":"quick-scale.d.ts","scripts":{"format":"npx prettier --arrow-parens=avoid --print-width=240 --trailing-comma=none --write *.js *.ts","test":"node test.js"},"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/quick-scale.git"},"keywords":["linear","math","scale"],"author":{"name":"Daniel J. Dufour"},"license":"CC0-1.0","bugs":{"url":"https://github.com/DanielJDufour/quick-scale/issues"},"homepage":"https://github.com/DanielJDufour/quick-scale#readme","devDependencies":{"flug":"^2.3.1"},"gitHead":"04c616313dcbb87748f2fc9ec290720bbc334fa1","_id":"quick-scale@0.2.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-w+uGmP/faGjA4ryW5NkSa+R5wcZ9TnHrHtrraGlfq3rVdgpvJ8fzKIIFpgQqcXjv3DxS8al3xWuqBQ4EJaq/eA==","shasum":"d8da146f95116e899df97dc1975b19dff5e588e1","tarball":"https://registry.npmjs.org/quick-scale/-/quick-scale-0.2.0.tgz","fileCount":6,"unpackedSize":14927,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFMDfZkGq5ojpJBBQ+seY+jkgPoV9YjVnjr+xiXhnFcZAiAnYX+4MQvLa4EnYqa6MH2MKURa+kdB0WAA6GmA+s7YAQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjhVSyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpJlQ/9HtUen3peKHrpGFk6WyO72dgpGEp0TI1COM4QwJai0ZCooaYp\r\nLywy5eSTm+fvo9CZsYPfWwP5zbtsKtB/oqyLl7m1s3HiOeKoYQdaJXUskEAh\r\nwjb8rCI2CGaa9HGBmdmGXuz7n3hPys65FUehkc2qu+i+TJsAWtKncTgxSl/K\r\ne3ViM45BqY3p1c6VtygHdIVMgZAhY9TVEt1eRQeShtLC2kt3Y7rE2T8rzgCr\r\nX7O4Dgxf0PSyjsY4iu2r3yqbJAM760q7NzQf0JwhpDAThuVb5FK9JzX4WrzD\r\nuicvHuRUy3HQXW5N3RdMPg84y5uhRWI8x93X9pyslI/GFgycU1KeKFunmRM2\r\nYijP2rDn08VMJoRGHoE9lwgRsXbAn6jRi4K5fK2PBHSUVG4J4v3EmNbjee/V\r\njiRoTuTPV0nd06itw/nWFZ9zUwUsSAUR4j8VXa0la2yxxC0XShQ9x2qJ7JSU\r\njBU53IayCIr4jCxn+sZ8y6qptw9aQJ20MzmLnKrI6AY83U3FgQm5zEtOzlBa\r\nHPGuU5vpOXQT2rAxe7MHaIPBLaL6x5ZM/JP4SBLNxOKQ1N6vy16As0+ZwQ7o\r\nJE+Mxar9xYQAtYnt94xMa+UY4D1MoW1eqoq59D4A1tHHGETWcBTlcbDvY41G\r\nc3sFJt1RMyzK/It3XgiFNYS+KnKeMnFqblk=\r\n=GYfS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"},"directories":{},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/quick-scale_0.2.0_1669682353886_0.9566060487283703"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-01T02:32:28.991Z","0.0.1":"2022-05-01T02:32:29.150Z","modified":"2022-11-29T00:39:14.114Z","0.0.2":"2022-05-01T14:44:48.698Z","0.0.3":"2022-05-02T23:32:28.219Z","0.1.0":"2022-05-05T00:03:41.424Z","0.2.0":"2022-11-29T00:39:14.037Z"},"maintainers":[{"name":"danieljdufour","email":"daniel.j.dufour@gmail.com"}],"description":"Create a Fast Linear Scaling Function. CPU Optimized. Reversible. Rounding.","homepage":"https://github.com/DanielJDufour/quick-scale#readme","keywords":["linear","math","scale"],"repository":{"type":"git","url":"git+https://github.com/DanielJDufour/quick-scale.git"},"author":{"name":"Daniel J. Dufour"},"bugs":{"url":"https://github.com/DanielJDufour/quick-scale/issues"},"license":"CC0-1.0","readme":"# quick-scale\n> Create a Fast Linear Scaling Function\n\n### features\n- CPU Optimized\n- Reversible\n- Rounding\n\n### why\nThere's a lot of [alternatives](#alternatives), but I believe quick-scale provides a mix of features not found together in another package,\nincluding the ability to simply reverse the scale and define a strategy for when the range is zero.\n\n### install\n```bash\nnpm install quick-scale\n```\n\n### basic usage\nIn this basic example, we scale values from an unsigned 16-bit range\n(common in satellite imagery) to an unsigned 8-bit range (common in JPG and PNG files).\n```js\nimport { createScaleFunction } from \"quick-scale\";\n\n// the [min, max] values for a 16-bit image\nconst old_range = [0, 65536];\n\n// the [min, max] values for an 8-bit RGB image\nconst new_range = [0, 255];\n\nconst scale = createScaleFunction(old_range, new_range);\n\n// apply this scale function to a bunch of numbers\nscale(65535); // highest possible input value\n255\n\nscale(0); // lowest possible input value\n0\n\nscale(32767); // a value close to the middle\n127.49805447470817\n```\n\n### advanced usages\nWe can round, flip and do more advanced things by passing in an options object:\n```js\nconst scale = createScaleFunction(old_range, new_range, {\n  // flip the scale, so higher and lower values are reversed\n  // the typical use case is if you want higher data values to appear\n  // darker in an RGB(A) image\n  flip: true,\n\n  // sometimes the difference between the min and max of a source range\n  // will be zero, like when an image transparency band is all 255\n  // if you'd like to provide a value to return in this case, set no_range_value\n  no_range_value: -99,\n\n  // if your input range is zero and you don't set no_range_value,\n  // then quick-scale will return the \"highest\", \"lowest\", or \"middle\" value of the new range\n  // the default is to return the highest value of the new range\n  no_range_value_strategy: \"lowest\",\n\n  // round the result\n  round: true\n});\n\nscale(65535);\n0 // the highest value becomes the lowest because flip was set to true\n\nscale(0);\n255 // the lowest value becomes the highest because flip was set to true\n\nscale(32767);\n128 // rounded result\n```\n\n### alternatives\n- https://github.com/d3/d3-scale\n- https://github.com/AoDev/scale-number\n- https://github.com/javiercejudo/rescale-util\n- https://github.com/javiercejudo/linear-converter\n","readmeFilename":"README.md"}