Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
69
Task/K-d-tree/J/k-d-tree-1.j
Normal file
69
Task/K-d-tree/J/k-d-tree-1.j
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
coclass 'kdnode'
|
||||
create=:3 :0
|
||||
Axis=: ({:$y)|<.2^.#y
|
||||
Mask=: Axis~:i.{:$y
|
||||
if. 3>#y do.
|
||||
Leaf=:1
|
||||
Points=: y
|
||||
else.
|
||||
Leaf=:0
|
||||
data=. y /: Axis|."1 y
|
||||
n=. <.-:#data
|
||||
Points=: ,:n{data
|
||||
Left=: conew&'kdnode' n{.data
|
||||
Right=: conew&'kdnode' (1+n)}.data
|
||||
end.
|
||||
)
|
||||
|
||||
distance=: +/&.:*:@:-"1
|
||||
|
||||
nearest=:3 :0
|
||||
_ 0 nearest y
|
||||
:
|
||||
n=.' ',~":N_base_=:N_base_+1
|
||||
dists=. Points distance y
|
||||
ndx=. (i. <./) dists
|
||||
nearest=. ndx { Points
|
||||
range=. ndx { dists
|
||||
if. Leaf do.
|
||||
range;nearest return.
|
||||
else.
|
||||
d0=. x <. range
|
||||
p0=. nearest
|
||||
if. d0=0 do. 0;y return. end.
|
||||
if. 0={./:Axis|."1 y,Points do.
|
||||
'dist pnt'=.d0 nearest__Left y
|
||||
if. dist > d0 do.
|
||||
d0;p0 return.
|
||||
end.
|
||||
if. dist < d0 do.
|
||||
if. dist > (Mask#pnt) distance Mask#,Points do.
|
||||
'dist2 pnt2'=. d0 nearest__Right y
|
||||
if. dist2 < dist do. dist2;pnt2 return. end.
|
||||
end.
|
||||
end.
|
||||
else.
|
||||
'dist pnt'=. d0 nearest__Right y
|
||||
if. dist > d0 do.
|
||||
d0;p0 return.
|
||||
end.
|
||||
if. dist < d0 do.
|
||||
if. dist > (Mask#pnt) distance Mask#,Points do.
|
||||
'dist2 pnt2'=. d0 nearest__Left y
|
||||
if. dist2 < dist do. dist2;pnt2 return. end.
|
||||
end.
|
||||
end.
|
||||
end.
|
||||
end.
|
||||
dist;pnt return.
|
||||
)
|
||||
|
||||
coclass 'kdtree'
|
||||
create=:3 :0
|
||||
root=: conew&'kdnode' y
|
||||
)
|
||||
nearest=:3 :0
|
||||
N_base_=:0
|
||||
'dist point'=. nearest__root y
|
||||
dist;N_base_;point
|
||||
)
|
||||
5
Task/K-d-tree/J/k-d-tree-2.j
Normal file
5
Task/K-d-tree/J/k-d-tree-2.j
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
tree=:conew&'kdtree' (2,3), (5,4), (9,6), (4,7), (8,1),: (7,2)
|
||||
nearest__tree 9 2
|
||||
┌───────┬─┬───┐
|
||||
│1.41421│4│8 1│
|
||||
└───────┴─┴───┘
|
||||
5
Task/K-d-tree/J/k-d-tree-3.j
Normal file
5
Task/K-d-tree/J/k-d-tree-3.j
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
tree=:conew&'kdtree' dataset=:?1000 3$0
|
||||
nearest__tree pnt
|
||||
┌─────────┬──┬──────────────────────────┐
|
||||
│0.0387914│12│0.978082 0.767632 0.392523│
|
||||
└─────────┴──┴──────────────────────────┘
|
||||
10
Task/K-d-tree/J/k-d-tree-4.j
Normal file
10
Task/K-d-tree/J/k-d-tree-4.j
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
build0=:3 :0
|
||||
data=: y
|
||||
)
|
||||
|
||||
distance=: +/&.:*:@:-"1
|
||||
|
||||
nearest0=:3 :0
|
||||
nearest=. data {~ (i. <./) |data distance y
|
||||
(nearest distance y);(#data);nearest
|
||||
)
|
||||
10
Task/K-d-tree/J/k-d-tree-5.j
Normal file
10
Task/K-d-tree/J/k-d-tree-5.j
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
build0 (2,3), (5,4), (9,6), (4,7), (8,1),: (7,2)
|
||||
nearest0 9 2
|
||||
┌───────┬─┬───┐
|
||||
│1.41421│6│8 1│
|
||||
└───────┴─┴───┘
|
||||
build0 dataset
|
||||
nearest0 pnt
|
||||
┌─────────┬────┬──────────────────────────┐
|
||||
│0.0387914│1000│0.978082 0.767632 0.392523│
|
||||
└─────────┴────┴──────────────────────────┘
|
||||
6
Task/K-d-tree/J/k-d-tree-6.j
Normal file
6
Task/K-d-tree/J/k-d-tree-6.j
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
tree=:conew&'kdtree' (2,3), (5,4), (9,6), (4,7), (8,1),: (7,2)
|
||||
timespacex 'nearest__tree 9 2'
|
||||
0.000487181 19328
|
||||
build0 (2,3), (5,4), (9,6), (4,7), (8,1),: (7,2)
|
||||
timespacex 'nearest0 9 2'
|
||||
3.62419e_5 6016
|
||||
6
Task/K-d-tree/J/k-d-tree-7.j
Normal file
6
Task/K-d-tree/J/k-d-tree-7.j
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
tree=:conew&'kdtree' dataset
|
||||
timespacex 'nearest__tree pnt'
|
||||
0.00141408 45312
|
||||
build0 dataset
|
||||
timespacex 'nearest0 pnt'
|
||||
0.00140702 22144
|
||||
Loading…
Add table
Add a link
Reference in a new issue