initial project import from KDevelop
Eulerian path in LCA.
Still needs a unit test.
Huzzah, Eulerian path/circuit!
And some broken hand-rolled dfs implementation.
Unit test for Eulerian path/circuit.
Make eulerian_path self-contained.
Remove hand-rolled DFS stuff.
Add vertex_level for calculating vertex height/depth (??).
Thereby reducing eulerian_path to its primary role.
Find the representative element of the input in Θ(n).
RMQ!
Neaten up sparse_table, change interface, add test of size 7.
Use references for M1 and M2.
translate(i, j, n): ith element, jth power => sparse table index
query_sparse_table(i, j, n, M): RMQ the sparse table.
Idea for a sparse_table class.
More tests.
The eternal question, to assert or throw?
Tidying up.
Add RMQ preprocessing as final step of LCA preprocessing!
translate(): Use return type deduction.
Renames and comments.
Change interface of LCA preprocess() to output all results.
Move representative_element into general algorithms; add fixture data for LCA.
representative_element: use iterators instead of indices.
represenative_element: Change requirement on input iterator from Input to Forward.
bugfix: range-based version had a stupid bug because it was not part of a unit test.
Add range-based version to unit tests.