Commit Graph
10852 Commits
Author SHA1 Message Date
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
Ryan Curtin 1110261953 Correctly handle cases where implicit nodes are created. 2012-05-16 18:44:38 +00:00
Ryan Curtin 063a62a288 I didn't do this right; I forgot about the "UpdateAfterRecursion" step and broke
everything.  So... revert to the recursive implementation for now.
2012-05-11 16:56:03 +00:00
Ryan Curtin ea6b8b0d5d Add DualTreeBreadthFirstTraverser (at this moment, not rigorously tested). 2012-05-10 01:11:32 +00:00
Ryan Curtin 61896da157 Well, that would break everything... 2012-05-09 22:29:37 +00:00
Ryan Curtin 9910cd107e Make this an iterative implementation. 2012-05-09 22:11:04 +00:00
Ryan Curtin b7a2c6dd5c This bothers me a lot more than it should.
(used to say "5mins,4.3secs", now says "5mins, 4.3secs")
2012-05-09 20:30:16 +00:00
Ryan Curtin dea573c5f0 Use DualTreeDepthFirstTraverser for naive and dual-tree calculations, and remove
all of the guts we previously needed but don't anymore (ComputeBaseCase,
ComputeDualNeighborsRecursion, ComputeSingleNeighborsRecursion).
2012-05-09 20:26:37 +00:00
Ryan Curtin cb3af4bdfd Add implementation of rules for dual-tree search. 2012-05-09 20:26:02 +00:00
Ryan Curtin 19578142f1 Add an option to use cover trees. 2012-05-09 20:25:47 +00:00
Ryan Curtin 46f8a38d07 Add dual_tree_depth_first_traverser.hpp to build list. 2012-05-09 20:25:01 +00:00
Ryan Curtin bc32a30281 Include statistic.hpp (so we have EmptyStatistic). 2012-05-09 20:24:50 +00:00
Ryan Curtin 5218ec8afc Save just a little time where we can. 2012-05-09 20:24:39 +00:00
Ryan Curtin 19853300b7 Add a dual-tree depth-first traverser. 2012-05-09 20:20:14 +00:00
Ryan Curtin 18743fcac2 Remove unnecessary debug output. 2012-05-09 20:18:18 +00:00
Ryan Curtin bf25afc0bd Fix some formatting and style issues, and then add a test for nearest-neighbors
cover tree.
2012-05-04 00:15:10 +00:00
Ryan Curtin bc78baf138 Use the tree's preferred traverser type. 2012-05-04 00:14:44 +00:00
Ryan Curtin 52fde2b15a Update API to use TreeType::MinDistance() because other tree types may not have
a bound object.
2012-05-04 00:14:29 +00:00
Ryan Curtin 115d43c1e8 Update our traversers so that they don't consider self-children. I am not too
happy with how unclean it is, but I expect it'll get cleaned later.
2012-05-04 00:13:55 +00:00
Ryan Curtin 48a8fe65f2 Modify CoverTree API towards a more standard API. It can be used with
NeighborSearch now... although it probably will fail miserably.
2012-05-04 00:12:44 +00:00
Ryan Curtin 12434a3776 Modify the API of BinarySpaceTree to include a few more methods. Starting to
settle on a more standard tree API.
2012-05-04 00:09:22 +00:00