product: optimize product with weak automata

Fixes #350.

* spot/twaalgos/product.cc: Implement this change.
* NEWS, spot/twaalgos/product.hh: Mention it.
* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::sat_mark): New method.
* tests/python/_product_weak.ipynb: New file.
* tests/Makefile.am: Add it.
* tests/python/automata.ipynb, tests/python/highlighting.ipynb,
tests/python/product.ipynb, tests/core/prodor.test: Adjust test cases.
This commit is contained in:
Alexandre Duret-Lutz 2018-05-23 18:34:31 +02:00
parent b655038803
commit a738801edf
11 changed files with 15348 additions and 1605 deletions

5
NEWS
View file

@ -89,6 +89,11 @@ New in spot 2.5.3.dev (not yet released)
They are most welcome in Python, since we used to redefine
them every now and them.
- spot::product() and spot::product_or() learned so produce an
automaton with a simpler acceptance condition if one of the
argument is a weak automaton. In this case the resulting
acceptance condition is (usually) that of the other argument.
- spot::parity_product() and spot::parity_product_or() were dropped.
The code was buggy, hard to maintain, and these functions do not
seem to be used.