Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
binary-sortable-hash
Advanced tools
Hash an array of numbers into a sortable(ish) binary number.
Hash arrays of numbers into a binary string from which you can reconstruct the original values, with configurable precision loss. The generated hashes sort well, so similar input values cause large shared prefixes in hashes. (as seen in geohashing)
sortable.encode([0]) === '011111111111111111111111111111111111111111111111111111111111';
sortable.decode(011111111111111111111111111111111111111111111111111111111111, 1) === -8.673617379884035e-17
sortable.encode([10, 11, -10]) === '110001001001110110011001100100001011100110001001100110011011';
Hash a lat/lon array representing Röcken Germany
[10, -10, 10]
and then restore it, using different
hash sizes.
var sortable = require('sortable-hash');
var rocken = {lat: 51.2408, lon: 12.1161}
//normalize scalars to +-100
var normalized = [100*rocken.lat/180, 100*rocken.lon/90]
var hash = sortable.encode(normalized)
// => '110010010010000100101111010001010001001110011100001100111111'
sortable.decode(hash, 2);
// => [ 51.24080015346408, 12.116099959239364 ]
var lowerFidelityHash = sortable.encode(normalized, 10)
// => 1100100100
sortable.decode(lowerFidelityHash, 2)
// => [50.625, 14.0625]
var hexadecimalHash = parseInt(hash, 2).toString(16)
// => c9212f45139c300 (limited precision beyond 53bits)
note: If you need precision when converting integers above 53 bits consider using bigint
Hash the array values
, which may only contain Numbers in the range of
[-100, 100]
.
options
can either be an object with these possible keys:
precision
: Number of bits (read: length) of the resulting binary hashor a Number, in which case it sets options.precision
.
Decode string
into an Array of Numbers.
options
can either be an object with these possible keys:
num
: number of elements initially passed to hash.encode
. (required)Or a Number, in which case it sets options.num
With npm do:
$ npm install binary-sortable-hash
This is the idea of geohashes generalized for use with all numeric data and numbers of input fields.
binary-sortable-hash is a derivative of the awesome sortable-hash by @juliangrubber
FAQs
Hash an array of numbers into a sortable(ish) binary number.
The npm package binary-sortable-hash receives a total of 0 weekly downloads. As such, binary-sortable-hash popularity was classified as not popular.
We found that binary-sortable-hash demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.