Commit Graph
10872 Commits
Author SHA1 Message Date
Bill March 4e3740298b fixed line that referred to nearest neighbor search 2012-06-04 16:01:16 +00:00
Ryan Curtin 4e7c68c374 Add two more kernels. They need to be parameterized. 2012-06-02 05:09:30 +00:00
Ryan Curtin 6211a2c245 Parent distance is the interesting one to track, not furthest child distance.
Fix a few bugs so that furthest descendant distance is correct.
2012-05-28 21:21:06 +00:00
Ryan Curtin a5e73dcc71 No far set in root node. 2012-05-28 04:11:57 +00:00
Ryan Curtin 05a7fd57a8 No far set in root node. 2012-05-28 04:11:22 +00:00
Ryan Curtin 8dae279570 Fix a couple bugs in furthest child and descendant determination. 2012-05-27 22:36:29 +00:00
Ryan Curtin 89f21592c4 Store furthest child distance and furthest descendant distance. This can allow
better pruning rules.
2012-05-27 19:39:16 +00:00
Ryan Curtin 60e1694cc9 Relax the separation constraint to include equality (in accordance with the
paper).
2012-05-27 19:04:50 +00:00
Ryan Curtin 28499a50d0 Some slightly ugly additions -- but which give an order of magnitude speedup
during cover tree construction.  It turned out that when we were handing the
new near and far set to a child, we did not remove points with distance further
than the far set bound, meaning that the far sets were way larger than they
needed to be.  Preliminary results indicate fewer distance calculations during
tree-building than Langford's original implementation.
2012-05-27 06:13:51 +00:00
Ryan Curtin 0fb10c805d Rewrite swapping code. 2012-05-25 14:38:43 +00:00
Ryan Curtin 34102cb807 Halfway transitioned to newer implementation, which does not try so hard to
conserve memory.
2012-05-25 03:34:27 +00:00
Ryan Curtin e9a930c78c Work for older CMake versions (2.8.2) and finding older Armadillo versions. 2012-05-24 17:26:37 +00:00
Ryan Curtin 94b87e91ef This test does not compile with Armadillo 3.2; I have not yet had a chance to
figure out why.
2012-05-23 17:39:44 +00:00
Ryan Curtin 26325d338a Count kernel evaluations. 2012-05-21 18:59:26 +00:00
Ryan Curtin 6f3cc23f2f Revamp breadth-first descent to consider tree levels so it is the proper
breadth-first descent.
2012-05-21 18:51:21 +00:00
Ryan Curtin 628b7767c2 Don't used squared distance in tree construction. 2012-05-21 17:11:22 +00:00
Ryan Curtin 07d93db37b Consider queryProducts kernel evaluations too. 2012-05-21 16:27:09 +00:00
Ryan Curtin 4cd5899897 Put ugly global variable in so it compiles. This will be cleaned later... 2012-05-21 16:09:43 +00:00
Ryan Curtin 14370b9695 Needs to be the square root, not actually K(q, q). 2012-05-21 16:06:46 +00:00
Ryan Curtin dcc2bf6172 Update kernels in ugly ways that need to be removed later. 2012-05-21 15:54:42 +00:00
Ryan Curtin 08e203341f Check in modifications. 2012-05-21 15:54:30 +00:00
Ryan Curtin a9581ba870 We can do polynomial kernels too. 2012-05-20 17:53:27 +00:00
Ryan Curtin 5e8f67e200 Add a kernel which I'll remove later. I don't like it... 2012-05-20 17:53:20 +00:00
Ryan Curtin c652644a6b Rewrite to only use one queue. Not very happy with this implementation. 2012-05-19 03:44:34 +00:00
Ryan Curtin 8c9380aa2c Use unsafe_col() 'cause it's faster. 2012-05-18 23:03:13 +00:00
Ryan Curtin c1e8043196 Initialize products to DBL_MIN. 2012-05-18 22:33:32 +00:00
Ryan Curtin d0c81255b3 Ensmallen and randomize. 2012-05-18 22:30:35 +00:00
Ryan Curtin 3b3a802192 This file doesn't exist. I didn't need it. 2012-05-18 22:09:51 +00:00
Ryan Curtin af7500b9d8 Reimplement single-tree search. It's faster now. 2012-05-18 22:00:35 +00:00
Ryan Curtin 171d9dc24d UL and ULL extensions for older GCC. 2012-05-18 21:56:22 +00:00
Ryan Curtin 174fc0514d unsafe_col() is faster. 2012-05-18 03:30:20 +00:00
Ryan Curtin 858356907d Avoid double-evaluation of base case. 2012-05-18 03:25:21 +00:00
Ryan Curtin ee59215607 Add template specalization for linear kernel. 2012-05-17 19:09:24 +00:00
Ryan Curtin 6511fbb92d Don't get it backwards... 2012-05-17 18:40:56 +00:00
Ryan Curtin 7a9c7cb12d Add maxip executable. 2012-05-17 18:10:14 +00:00
Ryan Curtin c4eb63a837 Give number of prunes. 2012-05-17 18:10:06 +00:00
Ryan Curtin 121c87b0d0 It helps if the conditional is right, too. 2012-05-17 17:26:59 +00:00
Ryan Curtin e06600362a Clarify error message; k can be equal to the number of points. 2012-05-17 17:26:10 +00:00
Ryan Curtin 1833987d8a Add simple first test for MaxIP. 2012-05-17 16:55:58 +00:00
Ryan Curtin ee99f80295 Add maxip to project build. 2012-05-17 16:55:50 +00:00
Ryan Curtin 609523cd78 Add CMake configuration so MaxIP gets compiled. 2012-05-17 16:55:35 +00:00
Ryan Curtin 10788af881 Add MaxIP class. 2012-05-17 16:55:26 +00:00
Ryan Curtin 443e8d8c06 Add rules for the MaxIP single-tree search. 2012-05-17 16:55:16 +00:00
Ryan Curtin f3c9fa6b35 Add the IPMetric, which is the "inner product" metric which calculates the
metric induced by a kernel.
2012-05-17 16:54:53 +00:00
Ryan Curtin 2f988945d8 Remove debugging output. 2012-05-17 15:57:00 +00:00
Ryan Curtin 70de44b54c Add directory for implementation of MaxIP. I think it needs a better name... 2012-05-16 20:41:27 +00:00
Ryan Curtin a4aed0d744 Add a dual-tree test for cover trees. 2012-05-16 18:59:22 +00:00
Ryan Curtin b3ba215036 Add rules for cover tree search. This breaks the nice abstractions I was trying
for.
2012-05-16 18:58:36 +00:00
Ryan Curtin 067c07ecc7 Add preferred traverser and dual cover tree traverser (which doesn't prune at
the moment).
2012-05-16 18:57:39 +00:00
Ryan Curtin 6cdc78c9a0 Add a preferred dual tree traverser. 2012-05-16 18:46:38 +00:00