Skip to content

Commit b31dfcc

Browse files
authored
Merge pull request #2 from plotly/revise-packages
Revise point-cluster packages
2 parents d40b4a3 + 03b1c95 commit b31dfcc

File tree

2 files changed

+6
-53
lines changed

2 files changed

+6
-53
lines changed

package.json

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "point-cluster",
2+
"name": "@plotly/point-cluster",
33
"version": "3.1.8",
44
"description": "Fast nd point clustering.",
55
"main": "index.js",
@@ -9,7 +9,7 @@
99
},
1010
"repository": {
1111
"type": "git",
12-
"url": "git://github.com/dy/point-cluster.git"
12+
"url": "git://github.com/plotly/point-cluster.git"
1313
},
1414
"keywords": [
1515
"snap-points-2d",
@@ -41,9 +41,7 @@
4141
"license": "MIT",
4242
"dependencies": {
4343
"array-bounds": "^1.0.1",
44-
"array-normalize": "^1.1.4",
4544
"binary-search-bounds": "^2.0.4",
46-
"bubleify": "^2.0.0",
4745
"clamp": "^1.0.1",
4846
"defined": "^1.0.0",
4947
"dtype": "^2.0.0",
@@ -55,12 +53,10 @@
5553
},
5654
"devDependencies": {
5755
"almost-equal": "^1.1.0",
56+
"bubleify": "^2.0.0",
5857
"canvas-fit": "^1.5.0",
5958
"gauss-random": "^1.0.1",
60-
"math-float64-bits": "^1.0.1",
6159
"math-float64-from-bits": "^1.0.0",
62-
"math-uint8-bits": "^1.0.0",
63-
"regl": "^1.3.1",
6460
"snap-points-2d": "^3.2.0",
6561
"tape": "^4.8.0"
6662
}

research.js

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,14 @@
22

33

44
const t = require('tape');
5-
const cluster = require('./');
65
const random = require('gauss-random')
76
const bitsf64 = require('math-float64-from-bits')
8-
const ui8bits = require('math-uint8-bits')
9-
const f64bits = require('math-float64-bits')
7+
// const f64bits = require('math-float64-bits')
108

119

1210
t('packing 1e6 array', t => {
1311
let y = new Float64Array(1e6)
14-
let x = new Float64Array(1e6)
12+
1513
console.time(1)
1614
y.subarray(0e5, 1e5)
1715
y.subarray(1e5, 2e5)
@@ -31,17 +29,14 @@ t('float64 packing', t => {
3129
// uint8 (level) + uint32 (id) + float32→normalized uint16 (x)
3230

3331
let f64 = new Float64Array(1)
34-
let view = new DataView(f64.buffer)
35-
let ui8 = new Uint8Array(f64.buffer)
36-
let ui16 = new Uint16Array(f64.buffer)
3732
let ui32 = new Uint32Array(f64.buffer)
3833

3934
// view.setUint8(7, parseInt('10000000', 2))
4035
// view.setUint8(6, parseInt('00000000', 2))
4136
// ui8[7] = 0xff
4237
// ui16[2] = 0x1000
4338
ui32[1] = 0x00ff0000 & 0x01 << 16 | 0x0000ffff & 0xffff
44-
console.log(f64[0], f64bits(f64[0]))
39+
console.log(f64[0] /* , f64bits(f64[0]) */)
4540

4641
let sign = '0' // ignore sign
4742
let exp = '00000000000' // write levels as exponent
@@ -122,41 +117,3 @@ function data(N=1e6, f) {
122117

123118
return points
124119
}
125-
126-
127-
128-
/*
129-
// use x-sort if required
130-
if (options.sort) {
131-
// pack levels: uint8, x-coord: uint16 and id: uint32 to float64
132-
let packed = new Float64Array(n)
133-
let packedInt = new Uint32Array(packed.buffer)
134-
for (let i = 0; i < n; i++) {
135-
packedInt[i * 2] = i
136-
packedInt[i * 2 + 1] = (0x3ff00000 & (levels[i] << 20) | 0x0000ffff & ((1 - points[i * 2]) * 0xffff))
137-
}
138-
139-
// do native sort
140-
packed.sort()
141-
142-
// unpack data back
143-
let sortedLevels = new Uint8Array(n)
144-
let sortedWeights = new Uint32Array(n)
145-
let sortedIds = new Uint32Array(n)
146-
let sortedPoints = new Float64Array(n * 2)
147-
for (let i = 0; i < n; i++) {
148-
let id = packedInt[(n - i - 1) * 2]
149-
sortedLevels[i] = levels[id]
150-
sortedWeights[i] = weights[id]
151-
sortedIds[i] = ids[id]
152-
sortedPoints[i * 2] = points[id * 2]
153-
sortedPoints[i * 2 + 1] = points[id * 2 + 1]
154-
}
155-
156-
ids = sortedIds
157-
levels = sortedLevels
158-
points = sortedPoints
159-
weights = sortedWeights
160-
}
161-
162-
*/

0 commit comments

Comments
 (0)