Add some helper methods in order to implement a slightly different way to compute the max over an envelope tree.
Implement a first version of a different way to compute the maximum in the envelope tree without directly getting the canonical nodes.
Update benchmarking tools.
Change the binary search in the envelope so that we can specify a minimum and maximum index for the search.
Change the borderline cases assignment for the crossing breakpoint index to avoid assigning -1 to an unsigned long long
Keep a copy of the previous version in order to do some benchmarks.
Implement a cascading version of the algorithm which restricts the successive searches in the envelope (this is supposed to be faster but it does not seem to be the case).
Add some helper methods in order to implement a slightly different way to compute the max over an envelope tree.
Implement a first version of a different way to compute the maximum in the envelope tree without directly getting the canonical nodes.
Update benchmarking tools.
Change the binary search in the envelope so that we can specify a minimum and maximum index for the search.
Change the borderline cases assignment for the crossing breakpoint index to avoid assigning -1 to an unsigned long long
Keep a copy of the previous version in order to do some benchmarks.
Implement a cascading version of the algorithm which restricts the successive searches in the envelope (this is supposed to be faster but it does not seem to be the case).
Add some extra benchmarks.
Merge branch 'partial_cascading' of https://github.com/rbost/SubmatrixQueries into partial_cascading

Conflicts:
	envelope_tree.h
	tests.cpp
	tests.h
Improve the new Monge matrix generator in order to have a good distribution of the values for the columns (we want to have large envelopes for the column tree).
Merge branch 'partial_cascading'
Improve the test program output