Thu, 06 Aug 2009 20:31:04 +0200Rename cyclePath() to cycle() in MinMeanCycle (#179)
Peter Kovacs <kpeter@inf.elte.hu> [Thu, 06 Aug 2009 20:31:04 +0200] rev 809
Rename cyclePath() to cycle() in MinMeanCycle (#179)

Thu, 06 Aug 2009 20:28:28 +0200Traits class + named parameters for MinMeanCycle (#179)
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).

Thu, 06 Aug 2009 20:12:43 +0200Rework and fix the implementation of MinMeanCycle (#179)
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.