Peter Kovacs <kpeter@inf.elte.hu> [Thu, 06 Aug 2009 20:28:28 +0200] rev 808
Traits class + named parameters for MinMeanCycle (#179)
- Add a Traits class defining LargeValue, Tolerance, Path types.
LargeValue is used for internal computations, it is 'long long'
if the length type is integer, otherwise it is 'double'.
- Add named template parameters for LargeValue and Path types.
- Improve numerical stability: remove divisions from the internal
computations. If the arc lengths are integers, then all used
values are integers (except for the cycleMean() query function,
of course).
Peter Kovacs <kpeter@inf.elte.hu> [Thu, 06 Aug 2009 20:12:43 +0200] rev 807
Rework and fix the implementation of MinMeanCycle (#179)
- Fix the handling of the cycle means.
- Many implementation improvements:
- More efficient data storage for the strongly connected
components.
- Better handling of BFS queues.
- Merge consecutive BFS searches (perform two BFS searches
instead of three).
This version is about two times faster on average and an order of
magnitude faster if there are a lot of strongly connected components.