npn
v1.1
Dieses Paket ist ein Boolean -Match. Es berechnet lediglich den kanonischen Vertreter, der für jede NPN -Äquivalenzklasse eindeutig ist, für eine bestimmte boolesche Funktion, die durch Wahrheitstabelle dargestellt wird.
Das Backend dieses Pakets wird durch C ++ zur Effizienz implementiert.
Derzeit unterstützt dieses Paket die Booleschen Funktionen mit Anzahl der Eingänge <= 8.
pip install npn import npn
# the truth table of f(x_2, x_1, x_0) as [f(0, 0, 0), f(0, 0, 1), f(0, 1, 0), f(0, 1, 1), ...]
tt = [ True , True , True , False , True , True , True , True ]
c = npn . npn_canonical_representative ( tt ) # [True, True, True, True, True, True, True, False]
c_int = npn . tt_to_int ( c ) # 254 (11111110)
c , phase , perm , output_inv = npn . npn_canonical_representative ( tt , return_details = True , refinement = True )return_details auf True , um die NPN -Transformationsinformationen ( phase, perm, output_inv ) zurückzugeben. Zum Beispiel sollte phase = [False, False, True] , perm = [0, 1, 2] und output_inv = False Means (x_0, x_1, x_2) auf (x_0, x_1, x_2) abgebildet werden, dann sollte die dritte Variable ( x_2 ) invertiert werden, und das Endergebnis sollte nicht invertiert sein.refinement auf True , um die Berechnung zu beschleunigen und gleichzeitig die lexikografische Reihenfolge der Wahrheitstabellen zu brechen. Weitere Informationen finden Sie unter "Erstellen eines besseren Booleschen Maters und Symmetriedetektors". Kompilieren Sie die gemeinsame Bibliothek libnpn.dll und libnpn.so über CMake unter Windows and Linux -Umgebung, platzieren Sie sie dann in den npn -Ordner
python setup.py sdistZum Hochladen auf PYPI laufen lassen
twine upload . d ist n pn-X.X.tar.gzpip install pytest # if you haven't install it
python -m pytest