List view
The main "focus" of this version is consistency. The following issues should be addressed. - [ ] Select is not zero-index and therefore `select(rank(i))!=i` but `select(rank(i)+1)==i` - [ ] Range boundary inconsistencies. Sometimes the right boundary is inclusive and sometimes it is exclusive. Other issues that should be addressed: - [ ] Return iterators instead of containers. Functions (like interval_symbols) write their result in contains or return containers. This forces the client to always allocate memory, even in situations where the output is consumed in a sequential manner. By returning an iterator instead of an container this issue can be addressed and the client has the freedom over memory allocation. - [ ] Make all objects truly immutable so for example a csa_sada could be "queried" from multiple threads - [ ] Adding a constructor to all bitvectors which takes a begin and end iterator to the (sorted) positions of set bits. - [ ] The structure of the benchmarks is rather complex. We should investigate how the structure can be simplified (e.g. using CMake instead of Makefiles). - [ ] int_vector_mapper should replace int_vector_buffer. This will reduce redundant code and improve maintainability. - [ ] New coder interface. - [ ] Decouple csa_sada from enc_vector (add symbol_lte for ranges, which contain an increasing sequence). - [ ] Optimize the min-max-tree (use the optimization described in Section 4 of http://arxiv.org/pdf/1111.5220v2.pdf to half space of the additional data) - [ ] Move to cmake and remove all Makefile only build processes - [ ] include libdivsufsort as a submodule instead of directly in the codebase
Overdue by 10 year(s)•Due by April 14, 2015•2/4 issues closed