[m-rev.] for review: Implement two more transitive closure algorithms.

Peter Wang novalazy at gmail.com
Wed Jan 25 15:01:24 AEDT 2023


On Wed, 25 Jan 2023 14:31:16 +1100 Julien Fischer <jfischer at opturion.com> wrote:
> 
> Hi Peter,
> 
> On Tue, 24 Jan 2023, Peter Wang wrote:
> 
> > Implement two transitive closure algorithms in the digraph module:
> >
> >  - Basic_TC by Yannis Ioannidis et al.
> >
> >  - STACK_TC by Esko Nuutila, a refinement of the SIMPLE_TC algorithm
> >    previously implemented
> >
> > On 115 graphs randomly generated by tests/hard_coded/digraph_tc.m,
> > ranging from 100 to 3000 vertices:
> >
> > - basic_tc ran from 0.79 to 1.66 times as fast as the existing
> >   simple_tc implementation (mean 1.158, stddev 0.157)
> >
> > - basic_tc ran from 0.83 to 1.69 times as fast as stack_tc
> >   (mean 1.111, stddev 0.157)
> >
> > Therefore, after this commit, I will delete the simple_tc and stack_tc
> > implementations, but they will be available in the version history.
> 
> For the digraph module in the standard library, that's fair enough.
> I suggest making a renamed copy of the digraph module that contains the
> alternative transitive closure implementations and adding it to the
> benchmark suite.

You mean tests/benchmarks? I suppose I could move the benchmark code
currently in tests/hard_coded/digraph_tc.m to a driver program in
tests/benchmarks.

Peter


More information about the reviews mailing list