Commit Graph
12934 Commits
Author SHA1 Message Date
Marcus Edel 2adbba4c04 Using backtrace() become somewhat tricky when going multi-platform. Use CMake to figure out the correct header and library. 2015-03-22 20:51:50 +01:00
Marcus Edel 1588ab09a9 FindPackageHandleStandardArgs.cmake ships with CMake from version 2.8 onwards, since we require CMake 2.8.5 delete the outdated copy. 2015-03-22 20:51:50 +01:00
Stephen Tu 9ea13de61f fix unused parameter warning 2015-03-22 11:56:54 -07:00
Ryan Curtin 732598ddc1 Minor cleanup of backtrace code; all style fixes. 2015-03-20 17:30:04 -04:00
Ryan Curtin 8bd3f96474 Attempt 2: avoid min/max definitions. 2015-03-20 09:13:59 -04:00
Ryan Curtin a12065450b Undef max first (thabks Joseph for pointing this out). 2015-03-20 06:41:21 -04:00
Stephen Tu b9edf2beec Merge pull request #419 from stephentu/master
Cleanup: remove trailing whitespace in source files
2015-03-14 14:31:18 -07:00
Stephen Tu 507f91358b Cleanup: remove trailing whitespace in source files 2015-03-14 13:50:38 -07:00
Stephen Tu 3c32013479 Remove un-necessary string copy for GetTimer() 2015-03-14 13:44:04 -07:00
Ryan Curtin 70342dd8e5 Comment out failing tests; to be fixed shortly. 2015-03-12 16:00:25 -04:00
Ryan Curtin 2c3c33d727 Revert "An attempt at making things faster. Might work?" It didn't.
This reverts commit 226baea962279aef52e2ab9ba90691e0e0200d31.
2015-03-12 15:42:46 -04:00
Ryan Curtin 8c7c81981e An attempt at making things faster. Might work? 2015-03-12 15:42:46 -04:00
Ryan Curtin 3f763886f3 Always mark the owner. This fixes some unusual and unexpected floating point errors where the owner will not actually be set. 2015-03-12 15:42:46 -04:00
Ryan Curtin 43ab267514 Make traversal depth-first in the queries. This results in less memory usage, and some amount of speedup. 2015-03-12 15:42:46 -04:00
Ryan Curtin 5ee125c678 Fix a bug where we pruned too tightly. Provide a little more debugging output for errors, too (but this debugging is commented out by default). 2015-03-12 15:42:46 -04:00
Ryan Curtin 8d30f34835 More accurate counting of calculations. 2015-03-12 15:42:46 -04:00
Ryan Curtin 4003537371 Make the search *actually* breadth-first. Significant speedups result! 2015-03-12 15:42:46 -04:00
Ryan Curtin 727edc7a24 Use one-leaf trees for better performance. 2015-03-12 15:42:46 -04:00
Ryan Curtin 01ec8a54be A tighter, but random, prune. Minor speedup. Also add a commented-out check for the lower bounds, and fix a minor bug that screwed them up. 2015-03-12 15:42:46 -04:00
Ryan Curtin b2fc22aefd Pre-emptive prunes. Potentially a slowdown. Not always, though, I don't think. I may revert this. 2015-03-12 15:42:46 -04:00
Ryan Curtin 030d36d7fa Implement Rescore(). Minor speedup. 2015-03-12 15:42:46 -04:00
Ryan Curtin 536c639f88 Prune nodes whose points and children are pruned. This gives significant speedup, and on my little test dataset, this is the fastest algorithm yet that I have created. 2015-03-12 15:42:46 -04:00
Ryan Curtin 078eef08d5 Update lower bounds when possible. Surprisingly, no speedup anywhere? 2015-03-12 15:42:46 -04:00
Ryan Curtin ba7f71b367 Don't perform cluster 1-NN unless we have to. 2015-03-12 15:42:46 -04:00
Ryan Curtin e650149355 Unmap intercluster distances (oops). Minor speedup. 2015-03-12 15:42:46 -04:00
Ryan Curtin 95cb008c6d Start applying prune on intercluster distances. Not quite done yet. 2015-03-12 15:42:46 -04:00
Ryan Curtin f440ca00db Perform tree update at start of iteration. Cache some variables inside DTNNKMeans. 2015-03-12 15:42:46 -04:00
Ryan Curtin 928fd6dde0 Coalesce and decoalesce the tree. 2015-03-12 15:42:46 -04:00
Ryan Curtin 4ab12266cb Avoid iterating over every point when pruned. Cache the amount the upper bounds and lower bounds must change when the node becomes unpruned. 2015-03-12 15:42:46 -04:00
Ryan Curtin 99b8d56dc1 Add static point prunes. Fairly significant runtime improvement. 2015-03-12 15:42:46 -04:00
Ryan Curtin 51e14ecf1a Fix a bug. And LastUpperBound() doesn't work. The bugfix speeds thigns up, too. 2015-03-12 15:42:46 -04:00
Ryan Curtin 853b4bf6e6 Basic static pruning. Minor speedup. 2015-03-12 15:42:46 -04:00
Ryan Curtin 670a56a58f Refactor to apply mappings earlier. 2015-03-12 15:42:46 -04:00
Ryan Curtin 2201a2f05d Do mapping correctly; handle cover trees right. 2015-03-12 15:42:46 -04:00
Ryan Curtin 45a731f7b4 Make DTNNKMeans work again. Next up, tree coalescion. (Is that a word?) 2015-03-12 15:42:46 -04:00
Ryan Curtin 1d2edb9c20 Refactor DTNNKMeans according to the new algorithm. Lots of stuff torn out. It'll go back in when the time is right. 2015-03-12 15:42:46 -04:00
Ryan Curtin 06b279cace Handle cover trees. They don't have two leaves. This still won't work *quite* right for coalescing/decoalescing though. 2015-03-12 15:42:46 -04:00
Ryan Curtin 905be1e614 Test with regular kd-trees and cover trees. The test conditions for the cover tree need to be adapted a little bit. 2015-03-12 15:42:46 -04:00
Ryan Curtin 540480ea66 Round four. Start over. This time, I proved that the algorithm is right before implementing it. This should help make debugging a lot easier. 2015-03-12 15:42:46 -04:00
Ryan Curtin 55c72afc77 Use default leaf size. 2015-03-12 15:42:45 -04:00
Ryan Curtin 595ae211e2 Try to keep the query and reference levels equal. 2015-03-12 15:42:45 -04:00
Ryan Curtin 3dc8249ce7 Use existing bounds, if we can. 2015-03-12 15:42:45 -04:00
Ryan Curtin 076fceb62d Update reference to Github. 2015-03-12 15:42:45 -04:00
Ryan Curtin 70deac5abb Allow autodetection of number of centroids. 2015-03-12 15:42:45 -04:00
Ryan Curtin 506c405bb8 Make the 'clustering' timer encompass everything. Including the tree building time. 2015-03-12 15:42:45 -04:00
Ryan Curtin e2be4fb391 Compute max cluster distance after failed prune. This gives us another chance at a prune, and gives very minor speedup. 2015-03-12 15:42:45 -04:00
Ryan Curtin e36e25f2d9 Coalesce the tree before kNN. Speedup! This is a fairly significant speedup, actually. 2015-03-12 15:42:45 -04:00
Ryan Curtin 820ba7490a Refactoring, and tighten a bound for minor speedup. 2015-03-12 15:42:45 -04:00
Ryan Curtin 72f2ddd519 Refactoring to reduce runtime of tree update. It speeds things up in terms of distance computations too, a bit. 2015-03-12 15:42:45 -04:00
Ryan Curtin b3c521ff48 Refactor: remove unnecessary temporary. 2015-03-12 15:42:45 -04:00