Summer of Code - Getting Started: Difference between revisions

Line 63: Line 63:
== Adding Clustering classes and implementing missing methods in statistics package ==
== Adding Clustering classes and implementing missing methods in statistics package ==


Although the statistics package already has `knnsearch` and `rangesearch` functions, it misses classdefs for extending their functionality. Furthermore, the `KDTree` method is currently disabled, because it is very slow and poorly implemented (see GitHub issue [https://github.com/gnu-octave/statistics/issues/151 #151]. The goal of this project if to implement`KDTreeSearcher`, `ExhaustiveSearcher`, and `hnswSearcher` classdefs (including their `knnsearch` and `rangesearch` methods) along with the `createns` helper function. Beyond MATLAB compatibility, the KDTree implementation should ideally utilize a compiled oct library for faster construction and queries of points.
Although the statistics package already has {{Codeline|knnsearch}} and {{Codeline|rangesearch}} functions, it misses classdefs for extending their functionality. Furthermore, the {{Codeline|KDTree}} method in the aforementioned functions is currently disabled, because it is very slow and poorly implemented (see GitHub issue [https://github.com/gnu-octave/statistics/issues/151 #151]. The goal of this project if to implement {{Codeline|KDTreeSearcher}}, {{Codeline|ExhaustiveSearcher}}, and {{Codeline|hnswSearcher}} classes (including their {{Codeline|knnsearch}} and {{Codeline|rangesearch}} methods) along with the {{Codeline|createns}} helper function. Beyond MATLAB compatibility, the KDTree implementation should ideally utilize a compiled oct library for faster construction and queries of points.


* '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
* '''Project size''' [[#Project sizes | [?]]] and '''Difficulty'''
: ~350 hours (hard)
: ~350 hours (hard)
* '''Required skills'''
* '''Required skills'''
: Octave, classdef, good knowledge of statistical methods
: Octave, classdef, good knowledge of clustering methods
* '''Potential mentors'''
* '''Potential mentors'''
: [https://octave.discourse.group/u/pr0m1th3as Andreas Bertsatos]
: [https://octave.discourse.group/u/pr0m1th3as Andreas Bertsatos]
116

edits