ruby_abc 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.yardopts +7 -0
- data/LICENSE +51 -52
- data/README.md +96 -37
- data/bin/ruby_abc +103 -0
- data/ext/ruby_abc/extconf.rb +58 -0
- data/ext/{ruby_abc.c → ruby_abc/ruby_abc.c} +45 -72
- data/ext/ruby_abc/ruby_abc.map +6 -0
- data/ext/{ruby_abc_wrapper.c → ruby_abc/ruby_abc_wrapper.c} +0 -0
- data/ext/ruby_abc/ruby_abc_wrapper.h +39 -0
- data/lib/ruby_abc/version.rb +4 -0
- data/lib/ruby_abc.rb +247 -225
- data/share/bash_completion/ruby_abc.bash-completion.sh +24 -0
- data/share/osu018.genlib +66 -0
- data/share/simple.genlib +25 -0
- data/test/test_ruby_abc.rb +1 -1
- metadata +19 -1727
- data/Rakefile +0 -83
- data/bin/rubyabc_synthesis +0 -71
- data/ext/abc/CMakeLists.txt +0 -103
- data/ext/abc/Makefile +0 -213
- data/ext/abc/abc.rc +0 -146
- data/ext/abc/abcexe.dsp +0 -103
- data/ext/abc/abclib.dsp +0 -5948
- data/ext/abc/abcspace.dsw +0 -44
- data/ext/abc/arch_flags.c +0 -17
- data/ext/abc/copyright.txt +0 -23
- data/ext/abc/depends.sh +0 -13
- data/ext/abc/i10.aig +0 -752
- data/ext/abc/lib/pthread.h +0 -1369
- data/ext/abc/lib/sched.h +0 -178
- data/ext/abc/lib/semaphore.h +0 -166
- data/ext/abc/lib/x64/pthreadVC2.dll +0 -0
- data/ext/abc/lib/x64/pthreadVC2.lib +0 -0
- data/ext/abc/lib/x86/pthreadVC2.dll +0 -0
- data/ext/abc/lib/x86/pthreadVC2.lib +0 -0
- data/ext/abc/readme.md +0 -111
- data/ext/abc/readmeaig +0 -47
- data/ext/abc/src/aig/aig/aig.h +0 -713
- data/ext/abc/src/aig/aig/aigCanon.c +0 -701
- data/ext/abc/src/aig/aig/aigCheck.c +0 -168
- data/ext/abc/src/aig/aig/aigCuts.c +0 -673
- data/ext/abc/src/aig/aig/aigDfs.c +0 -1136
- data/ext/abc/src/aig/aig/aigDoms.c +0 -1154
- data/ext/abc/src/aig/aig/aigDup.c +0 -1335
- data/ext/abc/src/aig/aig/aigFact.c +0 -734
- data/ext/abc/src/aig/aig/aigFanout.c +0 -194
- data/ext/abc/src/aig/aig/aigFrames.c +0 -140
- data/ext/abc/src/aig/aig/aigInter.c +0 -301
- data/ext/abc/src/aig/aig/aigJust.c +0 -316
- data/ext/abc/src/aig/aig/aigMan.c +0 -486
- data/ext/abc/src/aig/aig/aigMem.c +0 -610
- data/ext/abc/src/aig/aig/aigMffc.c +0 -316
- data/ext/abc/src/aig/aig/aigObj.c +0 -536
- data/ext/abc/src/aig/aig/aigOper.c +0 -606
- data/ext/abc/src/aig/aig/aigOrder.c +0 -176
- data/ext/abc/src/aig/aig/aigPack.c +0 -404
- data/ext/abc/src/aig/aig/aigPart.c +0 -1613
- data/ext/abc/src/aig/aig/aigPartReg.c +0 -629
- data/ext/abc/src/aig/aig/aigPartSat.c +0 -618
- data/ext/abc/src/aig/aig/aigRepar.c +0 -403
- data/ext/abc/src/aig/aig/aigRepr.c +0 -559
- data/ext/abc/src/aig/aig/aigRet.c +0 -975
- data/ext/abc/src/aig/aig/aigRetF.c +0 -214
- data/ext/abc/src/aig/aig/aigScl.c +0 -708
- data/ext/abc/src/aig/aig/aigShow.c +0 -368
- data/ext/abc/src/aig/aig/aigSplit.c +0 -330
- data/ext/abc/src/aig/aig/aigTable.c +0 -277
- data/ext/abc/src/aig/aig/aigTest.c +0 -39
- data/ext/abc/src/aig/aig/aigTiming.c +0 -356
- data/ext/abc/src/aig/aig/aigTruth.c +0 -103
- data/ext/abc/src/aig/aig/aigTsim.c +0 -526
- data/ext/abc/src/aig/aig/aigUtil.c +0 -1575
- data/ext/abc/src/aig/aig/aigWin.c +0 -189
- data/ext/abc/src/aig/aig/aig_.c +0 -53
- data/ext/abc/src/aig/aig/module.make +0 -31
- data/ext/abc/src/aig/gia/gia.c +0 -52
- data/ext/abc/src/aig/gia/gia.h +0 -1667
- data/ext/abc/src/aig/gia/giaAgi.c +0 -238
- data/ext/abc/src/aig/gia/giaAig.c +0 -676
- data/ext/abc/src/aig/gia/giaAig.h +0 -78
- data/ext/abc/src/aig/gia/giaAiger.c +0 -1479
- data/ext/abc/src/aig/gia/giaAigerExt.c +0 -326
- data/ext/abc/src/aig/gia/giaBalAig.c +0 -1095
- data/ext/abc/src/aig/gia/giaBalLut.c +0 -982
- data/ext/abc/src/aig/gia/giaBalMap.c +0 -326
- data/ext/abc/src/aig/gia/giaBidec.c +0 -305
- data/ext/abc/src/aig/gia/giaCCof.c +0 -349
- data/ext/abc/src/aig/gia/giaCSat.c +0 -1105
- data/ext/abc/src/aig/gia/giaCSatOld.c +0 -804
- data/ext/abc/src/aig/gia/giaCTas.c +0 -1790
- data/ext/abc/src/aig/gia/giaCTas2.c +0 -208
- data/ext/abc/src/aig/gia/giaCex.c +0 -392
- data/ext/abc/src/aig/gia/giaClp.c +0 -422
- data/ext/abc/src/aig/gia/giaCof.c +0 -1002
- data/ext/abc/src/aig/gia/giaCone.c +0 -590
- data/ext/abc/src/aig/gia/giaConstr.c +0 -52
- data/ext/abc/src/aig/gia/giaCut.c +0 -646
- data/ext/abc/src/aig/gia/giaDfs.c +0 -582
- data/ext/abc/src/aig/gia/giaDup.c +0 -4791
- data/ext/abc/src/aig/gia/giaEdge.c +0 -1000
- data/ext/abc/src/aig/gia/giaEmbed.c +0 -1876
- data/ext/abc/src/aig/gia/giaEnable.c +0 -650
- data/ext/abc/src/aig/gia/giaEquiv.c +0 -2416
- data/ext/abc/src/aig/gia/giaEra.c +0 -602
- data/ext/abc/src/aig/gia/giaEra2.c +0 -1963
- data/ext/abc/src/aig/gia/giaEsop.c +0 -541
- data/ext/abc/src/aig/gia/giaFalse.c +0 -552
- data/ext/abc/src/aig/gia/giaFanout.c +0 -338
- data/ext/abc/src/aig/gia/giaForce.c +0 -1106
- data/ext/abc/src/aig/gia/giaFrames.c +0 -996
- data/ext/abc/src/aig/gia/giaFront.c +0 -295
- data/ext/abc/src/aig/gia/giaFx.c +0 -487
- data/ext/abc/src/aig/gia/giaGiarf.c +0 -1079
- data/ext/abc/src/aig/gia/giaGig.c +0 -506
- data/ext/abc/src/aig/gia/giaGlitch.c +0 -786
- data/ext/abc/src/aig/gia/giaHash.c +0 -816
- data/ext/abc/src/aig/gia/giaHcd.c +0 -689
- data/ext/abc/src/aig/gia/giaIf.c +0 -2536
- data/ext/abc/src/aig/gia/giaIff.c +0 -444
- data/ext/abc/src/aig/gia/giaIiff.c +0 -62
- data/ext/abc/src/aig/gia/giaIiff.h +0 -54
- data/ext/abc/src/aig/gia/giaIso.c +0 -1331
- data/ext/abc/src/aig/gia/giaIso2.c +0 -776
- data/ext/abc/src/aig/gia/giaIso3.c +0 -167
- data/ext/abc/src/aig/gia/giaJf.c +0 -1805
- data/ext/abc/src/aig/gia/giaKf.c +0 -1341
- data/ext/abc/src/aig/gia/giaLf.c +0 -2301
- data/ext/abc/src/aig/gia/giaMan.c +0 -1126
- data/ext/abc/src/aig/gia/giaMem.c +0 -598
- data/ext/abc/src/aig/gia/giaMf.c +0 -1741
- data/ext/abc/src/aig/gia/giaMffc.c +0 -313
- data/ext/abc/src/aig/gia/giaMfs.c +0 -477
- data/ext/abc/src/aig/gia/giaMini.c +0 -574
- data/ext/abc/src/aig/gia/giaMuxes.c +0 -915
- data/ext/abc/src/aig/gia/giaNf.c +0 -2420
- data/ext/abc/src/aig/gia/giaOf.c +0 -1866
- data/ext/abc/src/aig/gia/giaPack.c +0 -207
- data/ext/abc/src/aig/gia/giaPat.c +0 -135
- data/ext/abc/src/aig/gia/giaPf.c +0 -1354
- data/ext/abc/src/aig/gia/giaProp.c +0 -176
- data/ext/abc/src/aig/gia/giaQbf.c +0 -701
- data/ext/abc/src/aig/gia/giaResub.c +0 -292
- data/ext/abc/src/aig/gia/giaRetime.c +0 -304
- data/ext/abc/src/aig/gia/giaRex.c +0 -545
- data/ext/abc/src/aig/gia/giaSat.c +0 -427
- data/ext/abc/src/aig/gia/giaSat3.c +0 -136
- data/ext/abc/src/aig/gia/giaSatEdge.c +0 -537
- data/ext/abc/src/aig/gia/giaSatLE.c +0 -1083
- data/ext/abc/src/aig/gia/giaSatLut.c +0 -1225
- data/ext/abc/src/aig/gia/giaSatMap.c +0 -554
- data/ext/abc/src/aig/gia/giaSatoko.c +0 -274
- data/ext/abc/src/aig/gia/giaScl.c +0 -300
- data/ext/abc/src/aig/gia/giaScript.c +0 -783
- data/ext/abc/src/aig/gia/giaShow.c +0 -1164
- data/ext/abc/src/aig/gia/giaShrink.c +0 -154
- data/ext/abc/src/aig/gia/giaShrink6.c +0 -492
- data/ext/abc/src/aig/gia/giaShrink7.c +0 -373
- data/ext/abc/src/aig/gia/giaSim.c +0 -905
- data/ext/abc/src/aig/gia/giaSim2.c +0 -706
- data/ext/abc/src/aig/gia/giaSort.c +0 -273
- data/ext/abc/src/aig/gia/giaSpeedup.c +0 -805
- data/ext/abc/src/aig/gia/giaSplit.c +0 -578
- data/ext/abc/src/aig/gia/giaStg.c +0 -528
- data/ext/abc/src/aig/gia/giaStr.c +0 -1865
- data/ext/abc/src/aig/gia/giaSupMin.c +0 -165
- data/ext/abc/src/aig/gia/giaSupp.c +0 -886
- data/ext/abc/src/aig/gia/giaSweep.c +0 -777
- data/ext/abc/src/aig/gia/giaSweeper.c +0 -1185
- data/ext/abc/src/aig/gia/giaSwitch.c +0 -829
- data/ext/abc/src/aig/gia/giaTim.c +0 -1017
- data/ext/abc/src/aig/gia/giaTis.c +0 -213
- data/ext/abc/src/aig/gia/giaTruth.c +0 -639
- data/ext/abc/src/aig/gia/giaTsim.c +0 -757
- data/ext/abc/src/aig/gia/giaUnate.c +0 -255
- data/ext/abc/src/aig/gia/giaUtil.c +0 -2136
- data/ext/abc/src/aig/gia/module.make +0 -89
- data/ext/abc/src/aig/hop/cudd2.c +0 -360
- data/ext/abc/src/aig/hop/cudd2.h +0 -86
- data/ext/abc/src/aig/hop/hop.h +0 -356
- data/ext/abc/src/aig/hop/hopBalance.c +0 -401
- data/ext/abc/src/aig/hop/hopCheck.c +0 -115
- data/ext/abc/src/aig/hop/hopDfs.c +0 -591
- data/ext/abc/src/aig/hop/hopMan.c +0 -169
- data/ext/abc/src/aig/hop/hopMem.c +0 -120
- data/ext/abc/src/aig/hop/hopObj.c +0 -277
- data/ext/abc/src/aig/hop/hopOper.c +0 -378
- data/ext/abc/src/aig/hop/hopTable.c +0 -232
- data/ext/abc/src/aig/hop/hopTruth.c +0 -274
- data/ext/abc/src/aig/hop/hopUtil.c +0 -578
- data/ext/abc/src/aig/hop/hop_.c +0 -53
- data/ext/abc/src/aig/hop/module.make +0 -10
- data/ext/abc/src/aig/ioa/ioa.h +0 -87
- data/ext/abc/src/aig/ioa/ioaReadAig.c +0 -465
- data/ext/abc/src/aig/ioa/ioaUtil.c +0 -146
- data/ext/abc/src/aig/ioa/ioaWriteAig.c +0 -599
- data/ext/abc/src/aig/ioa/module.make +0 -3
- data/ext/abc/src/aig/ivy/attr.h +0 -418
- data/ext/abc/src/aig/ivy/ivy.h +0 -562
- data/ext/abc/src/aig/ivy/ivyBalance.c +0 -414
- data/ext/abc/src/aig/ivy/ivyCanon.c +0 -149
- data/ext/abc/src/aig/ivy/ivyCheck.c +0 -278
- data/ext/abc/src/aig/ivy/ivyCut.c +0 -995
- data/ext/abc/src/aig/ivy/ivyCutTrav.c +0 -478
- data/ext/abc/src/aig/ivy/ivyDfs.c +0 -498
- data/ext/abc/src/aig/ivy/ivyDsd.c +0 -831
- data/ext/abc/src/aig/ivy/ivyFanout.c +0 -314
- data/ext/abc/src/aig/ivy/ivyFastMap.c +0 -1569
- data/ext/abc/src/aig/ivy/ivyFraig.c +0 -2972
- data/ext/abc/src/aig/ivy/ivyHaig.c +0 -535
- data/ext/abc/src/aig/ivy/ivyMan.c +0 -552
- data/ext/abc/src/aig/ivy/ivyMem.c +0 -121
- data/ext/abc/src/aig/ivy/ivyMulti.c +0 -312
- data/ext/abc/src/aig/ivy/ivyMulti8.c +0 -432
- data/ext/abc/src/aig/ivy/ivyObj.c +0 -481
- data/ext/abc/src/aig/ivy/ivyOper.c +0 -298
- data/ext/abc/src/aig/ivy/ivyResyn.c +0 -201
- data/ext/abc/src/aig/ivy/ivyRwr.c +0 -618
- data/ext/abc/src/aig/ivy/ivyRwrAlg.c +0 -413
- data/ext/abc/src/aig/ivy/ivySeq.c +0 -1142
- data/ext/abc/src/aig/ivy/ivyShow.c +0 -343
- data/ext/abc/src/aig/ivy/ivyTable.c +0 -272
- data/ext/abc/src/aig/ivy/ivyUtil.c +0 -824
- data/ext/abc/src/aig/ivy/ivy_.c +0 -53
- data/ext/abc/src/aig/ivy/module.make +0 -22
- data/ext/abc/src/aig/miniaig/abcOper.h +0 -249
- data/ext/abc/src/aig/miniaig/miniaig.h +0 -346
- data/ext/abc/src/aig/miniaig/minilut.h +0 -288
- data/ext/abc/src/aig/miniaig/module.make +0 -1
- data/ext/abc/src/aig/miniaig/ndr.h +0 -521
- data/ext/abc/src/aig/saig/module.make +0 -26
- data/ext/abc/src/aig/saig/saig.h +0 -200
- data/ext/abc/src/aig/saig/saigCone.c +0 -181
- data/ext/abc/src/aig/saig/saigConstr.c +0 -484
- data/ext/abc/src/aig/saig/saigConstr2.c +0 -1013
- data/ext/abc/src/aig/saig/saigDual.c +0 -240
- data/ext/abc/src/aig/saig/saigDup.c +0 -600
- data/ext/abc/src/aig/saig/saigGlaCba.c +0 -840
- data/ext/abc/src/aig/saig/saigGlaPba.c +0 -589
- data/ext/abc/src/aig/saig/saigGlaPba2.c +0 -558
- data/ext/abc/src/aig/saig/saigInd.c +0 -409
- data/ext/abc/src/aig/saig/saigIoa.c +0 -405
- data/ext/abc/src/aig/saig/saigIso.c +0 -628
- data/ext/abc/src/aig/saig/saigIsoFast.c +0 -353
- data/ext/abc/src/aig/saig/saigIsoSlow.c +0 -1224
- data/ext/abc/src/aig/saig/saigMiter.c +0 -1317
- data/ext/abc/src/aig/saig/saigOutDec.c +0 -205
- data/ext/abc/src/aig/saig/saigPhase.c +0 -1081
- data/ext/abc/src/aig/saig/saigRefSat.c +0 -986
- data/ext/abc/src/aig/saig/saigRetFwd.c +0 -248
- data/ext/abc/src/aig/saig/saigRetMin.c +0 -705
- data/ext/abc/src/aig/saig/saigRetStep.c +0 -236
- data/ext/abc/src/aig/saig/saigScl.c +0 -115
- data/ext/abc/src/aig/saig/saigSimFast.c +0 -451
- data/ext/abc/src/aig/saig/saigSimMv.c +0 -956
- data/ext/abc/src/aig/saig/saigSimSeq.c +0 -518
- data/ext/abc/src/aig/saig/saigStrSim.c +0 -976
- data/ext/abc/src/aig/saig/saigSwitch.c +0 -573
- data/ext/abc/src/aig/saig/saigSynch.c +0 -665
- data/ext/abc/src/aig/saig/saigTempor.c +0 -256
- data/ext/abc/src/aig/saig/saigTrans.c +0 -428
- data/ext/abc/src/aig/saig/saigUnfold2.c +0 -497
- data/ext/abc/src/aig/saig/saigWnd.c +0 -816
- data/ext/abc/src/aig/saig/saig_.c +0 -52
- data/ext/abc/src/base/abc/abc.h +0 -1064
- data/ext/abc/src/base/abc/abcAig.c +0 -1505
- data/ext/abc/src/base/abc/abcBarBuf.c +0 -513
- data/ext/abc/src/base/abc/abcBlifMv.c +0 -1167
- data/ext/abc/src/base/abc/abcCheck.c +0 -953
- data/ext/abc/src/base/abc/abcDfs.c +0 -1910
- data/ext/abc/src/base/abc/abcFanOrder.c +0 -652
- data/ext/abc/src/base/abc/abcFanio.c +0 -366
- data/ext/abc/src/base/abc/abcFunc.c +0 -1273
- data/ext/abc/src/base/abc/abcHie.c +0 -843
- data/ext/abc/src/base/abc/abcHieCec.c +0 -764
- data/ext/abc/src/base/abc/abcHieGia.c +0 -582
- data/ext/abc/src/base/abc/abcHieNew.c +0 -1635
- data/ext/abc/src/base/abc/abcInt.h +0 -60
- data/ext/abc/src/base/abc/abcLatch.c +0 -778
- data/ext/abc/src/base/abc/abcLib.c +0 -400
- data/ext/abc/src/base/abc/abcMinBase.c +0 -841
- data/ext/abc/src/base/abc/abcNames.c +0 -802
- data/ext/abc/src/base/abc/abcNetlist.c +0 -511
- data/ext/abc/src/base/abc/abcNtk.c +0 -2298
- data/ext/abc/src/base/abc/abcObj.c +0 -1075
- data/ext/abc/src/base/abc/abcRefs.c +0 -457
- data/ext/abc/src/base/abc/abcShow.c +0 -458
- data/ext/abc/src/base/abc/abcSop.c +0 -1356
- data/ext/abc/src/base/abc/abcUtil.c +0 -3269
- data/ext/abc/src/base/abc/abc_.c +0 -52
- data/ext/abc/src/base/abc/module.make +0 -23
- data/ext/abc/src/base/abci/abc.c +0 -44490
- data/ext/abc/src/base/abci/abcAttach.c +0 -409
- data/ext/abc/src/base/abci/abcAuto.c +0 -256
- data/ext/abc/src/base/abci/abcBalance.c +0 -629
- data/ext/abc/src/base/abci/abcBidec.c +0 -156
- data/ext/abc/src/base/abci/abcBm.c +0 -2050
- data/ext/abc/src/base/abci/abcBmc.c +0 -122
- data/ext/abc/src/base/abci/abcCas.c +0 -128
- data/ext/abc/src/base/abci/abcCascade.c +0 -1062
- data/ext/abc/src/base/abci/abcCollapse.c +0 -957
- data/ext/abc/src/base/abci/abcCut.c +0 -700
- data/ext/abc/src/base/abci/abcDar.c +0 -4807
- data/ext/abc/src/base/abci/abcDarUnfold2.c +0 -69
- data/ext/abc/src/base/abci/abcDebug.c +0 -213
- data/ext/abc/src/base/abci/abcDec.c +0 -666
- data/ext/abc/src/base/abci/abcDetect.c +0 -1264
- data/ext/abc/src/base/abci/abcDress.c +0 -214
- data/ext/abc/src/base/abci/abcDress2.c +0 -500
- data/ext/abc/src/base/abci/abcDress3.c +0 -320
- data/ext/abc/src/base/abci/abcDsd.c +0 -710
- data/ext/abc/src/base/abci/abcEco.c +0 -58
- data/ext/abc/src/base/abci/abcEspresso.c +0 -255
- data/ext/abc/src/base/abci/abcExact.c +0 -3024
- data/ext/abc/src/base/abci/abcExtract.c +0 -752
- data/ext/abc/src/base/abci/abcFlop.c +0 -40
- data/ext/abc/src/base/abci/abcFpga.c +0 -288
- data/ext/abc/src/base/abci/abcFpgaFast.c +0 -195
- data/ext/abc/src/base/abci/abcFraig.c +0 -816
- data/ext/abc/src/base/abci/abcFx.c +0 -1207
- data/ext/abc/src/base/abci/abcFxu.c +0 -292
- data/ext/abc/src/base/abci/abcGen.c +0 -830
- data/ext/abc/src/base/abci/abcHaig.c +0 -557
- data/ext/abc/src/base/abci/abcIf.c +0 -830
- data/ext/abc/src/base/abci/abcIfMux.c +0 -422
- data/ext/abc/src/base/abci/abcIfif.c +0 -349
- data/ext/abc/src/base/abci/abcIvy.c +0 -1149
- data/ext/abc/src/base/abci/abcLog.c +0 -242
- data/ext/abc/src/base/abci/abcLut.c +0 -793
- data/ext/abc/src/base/abci/abcLutmin.c +0 -785
- data/ext/abc/src/base/abci/abcMap.c +0 -1064
- data/ext/abc/src/base/abci/abcMeasure.c +0 -483
- data/ext/abc/src/base/abci/abcMerge.c +0 -358
- data/ext/abc/src/base/abci/abcMffc.c +0 -1252
- data/ext/abc/src/base/abci/abcMfs.c +0 -469
- data/ext/abc/src/base/abci/abcMini.c +0 -237
- data/ext/abc/src/base/abci/abcMiter.c +0 -1196
- data/ext/abc/src/base/abci/abcMulti.c +0 -660
- data/ext/abc/src/base/abci/abcMv.c +0 -381
- data/ext/abc/src/base/abci/abcNpn.c +0 -392
- data/ext/abc/src/base/abci/abcNpnSave.c +0 -740
- data/ext/abc/src/base/abci/abcNtbdd.c +0 -619
- data/ext/abc/src/base/abci/abcOdc.c +0 -1132
- data/ext/abc/src/base/abci/abcOrder.c +0 -136
- data/ext/abc/src/base/abci/abcPart.c +0 -1206
- data/ext/abc/src/base/abci/abcPlace.c +0 -260
- data/ext/abc/src/base/abci/abcPrint.c +0 -2008
- data/ext/abc/src/base/abci/abcProve.c +0 -354
- data/ext/abc/src/base/abci/abcQbf.c +0 -319
- data/ext/abc/src/base/abci/abcQuant.c +0 -436
- data/ext/abc/src/base/abci/abcReach.c +0 -327
- data/ext/abc/src/base/abci/abcRec3.c +0 -1433
- data/ext/abc/src/base/abci/abcReconv.c +0 -776
- data/ext/abc/src/base/abci/abcRefactor.c +0 -418
- data/ext/abc/src/base/abci/abcRenode.c +0 -326
- data/ext/abc/src/base/abci/abcReorder.c +0 -117
- data/ext/abc/src/base/abci/abcRestruct.c +0 -1511
- data/ext/abc/src/base/abci/abcResub.c +0 -1957
- data/ext/abc/src/base/abci/abcRewrite.c +0 -420
- data/ext/abc/src/base/abci/abcRpo.c +0 -442
- data/ext/abc/src/base/abci/abcRr.c +0 -1005
- data/ext/abc/src/base/abci/abcSat.c +0 -1020
- data/ext/abc/src/base/abci/abcSaucy.c +0 -3346
- data/ext/abc/src/base/abci/abcScorr.c +0 -454
- data/ext/abc/src/base/abci/abcSense.c +0 -216
- data/ext/abc/src/base/abci/abcSpeedup.c +0 -965
- data/ext/abc/src/base/abci/abcStrash.c +0 -848
- data/ext/abc/src/base/abci/abcSweep.c +0 -1030
- data/ext/abc/src/base/abci/abcSymm.c +0 -246
- data/ext/abc/src/base/abci/abcTim.c +0 -637
- data/ext/abc/src/base/abci/abcTiming.c +0 -1398
- data/ext/abc/src/base/abci/abcUnate.c +0 -178
- data/ext/abc/src/base/abci/abcUnreach.c +0 -366
- data/ext/abc/src/base/abci/abcVerify.c +0 -1109
- data/ext/abc/src/base/abci/abcXsim.c +0 -231
- data/ext/abc/src/base/abci/abciUnfold2.c +0 -186
- data/ext/abc/src/base/abci/fahout_cut.c +0 -358
- data/ext/abc/src/base/abci/module.make +0 -75
- data/ext/abc/src/base/acb/acb.c +0 -52
- data/ext/abc/src/base/acb/acb.h +0 -1038
- data/ext/abc/src/base/acb/acbAbc.c +0 -302
- data/ext/abc/src/base/acb/acbAig.c +0 -52
- data/ext/abc/src/base/acb/acbCom.c +0 -735
- data/ext/abc/src/base/acb/acbFunc.c +0 -56
- data/ext/abc/src/base/acb/acbMfs.c +0 -1644
- data/ext/abc/src/base/acb/acbPar.h +0 -70
- data/ext/abc/src/base/acb/acbPush.c +0 -372
- data/ext/abc/src/base/acb/acbSets.c +0 -54
- data/ext/abc/src/base/acb/acbSets.h +0 -61
- data/ext/abc/src/base/acb/acbUtil.c +0 -479
- data/ext/abc/src/base/acb/module.make +0 -8
- data/ext/abc/src/base/bac/bac.c +0 -52
- data/ext/abc/src/base/bac/bac.h +0 -1017
- data/ext/abc/src/base/bac/bacBac.c +0 -298
- data/ext/abc/src/base/bac/bacBlast.c +0 -587
- data/ext/abc/src/base/bac/bacCom.c +0 -728
- data/ext/abc/src/base/bac/bacLib.c +0 -52
- data/ext/abc/src/base/bac/bacNtk.c +0 -603
- data/ext/abc/src/base/bac/bacOper.c +0 -365
- data/ext/abc/src/base/bac/bacPrs.h +0 -363
- data/ext/abc/src/base/bac/bacPrsBuild.c +0 -356
- data/ext/abc/src/base/bac/bacPrsTrans.c +0 -211
- data/ext/abc/src/base/bac/bacPtr.c +0 -470
- data/ext/abc/src/base/bac/bacPtrAbc.c +0 -486
- data/ext/abc/src/base/bac/bacReadBlif.c +0 -453
- data/ext/abc/src/base/bac/bacReadSmt.c +0 -42
- data/ext/abc/src/base/bac/bacReadVer.c +0 -875
- data/ext/abc/src/base/bac/bacWriteBlif.c +0 -236
- data/ext/abc/src/base/bac/bacWriteSmt.c +0 -52
- data/ext/abc/src/base/bac/bacWriteVer.c +0 -703
- data/ext/abc/src/base/bac/module.make +0 -15
- data/ext/abc/src/base/cba/cba.c +0 -52
- data/ext/abc/src/base/cba/cba.h +0 -1024
- data/ext/abc/src/base/cba/cbaBlast.c +0 -1069
- data/ext/abc/src/base/cba/cbaCba.c +0 -58
- data/ext/abc/src/base/cba/cbaCom.c +0 -731
- data/ext/abc/src/base/cba/cbaNtk.c +0 -1183
- data/ext/abc/src/base/cba/cbaPrs.h +0 -520
- data/ext/abc/src/base/cba/cbaReadBlif.c +0 -646
- data/ext/abc/src/base/cba/cbaReadVer.c +0 -2182
- data/ext/abc/src/base/cba/cbaTypes.h +0 -169
- data/ext/abc/src/base/cba/cbaWriteBlif.c +0 -218
- data/ext/abc/src/base/cba/cbaWriteVer.c +0 -1016
- data/ext/abc/src/base/cba/module.make +0 -8
- data/ext/abc/src/base/cmd/cmd.c +0 -2611
- data/ext/abc/src/base/cmd/cmd.h +0 -81
- data/ext/abc/src/base/cmd/cmdAlias.c +0 -126
- data/ext/abc/src/base/cmd/cmdApi.c +0 -127
- data/ext/abc/src/base/cmd/cmdAuto.c +0 -684
- data/ext/abc/src/base/cmd/cmdFlag.c +0 -110
- data/ext/abc/src/base/cmd/cmdHist.c +0 -180
- data/ext/abc/src/base/cmd/cmdInt.h +0 -92
- data/ext/abc/src/base/cmd/cmdLoad.c +0 -209
- data/ext/abc/src/base/cmd/cmdPlugin.c +0 -773
- data/ext/abc/src/base/cmd/cmdStarter.c +0 -259
- data/ext/abc/src/base/cmd/cmdUtils.c +0 -756
- data/ext/abc/src/base/cmd/module.make +0 -10
- data/ext/abc/src/base/exor/exor.c +0 -958
- data/ext/abc/src/base/exor/exor.h +0 -189
- data/ext/abc/src/base/exor/exorBits.c +0 -425
- data/ext/abc/src/base/exor/exorCubes.c +0 -190
- data/ext/abc/src/base/exor/exorLink.c +0 -749
- data/ext/abc/src/base/exor/exorList.c +0 -1156
- data/ext/abc/src/base/exor/exorUtil.c +0 -228
- data/ext/abc/src/base/exor/module.make +0 -6
- data/ext/abc/src/base/io/io.c +0 -3157
- data/ext/abc/src/base/io/ioAbc.h +0 -172
- data/ext/abc/src/base/io/ioInt.h +0 -57
- data/ext/abc/src/base/io/ioJson.c +0 -270
- data/ext/abc/src/base/io/ioReadAiger.c +0 -599
- data/ext/abc/src/base/io/ioReadBaf.c +0 -177
- data/ext/abc/src/base/io/ioReadBblif.c +0 -348
- data/ext/abc/src/base/io/ioReadBench.c +0 -391
- data/ext/abc/src/base/io/ioReadBlif.c +0 -1707
- data/ext/abc/src/base/io/ioReadBlifAig.c +0 -1019
- data/ext/abc/src/base/io/ioReadBlifMv.c +0 -2363
- data/ext/abc/src/base/io/ioReadDsd.c +0 -313
- data/ext/abc/src/base/io/ioReadEdif.c +0 -240
- data/ext/abc/src/base/io/ioReadEqn.c +0 -244
- data/ext/abc/src/base/io/ioReadPla.c +0 -600
- data/ext/abc/src/base/io/ioReadPlaMo.c +0 -813
- data/ext/abc/src/base/io/ioReadVerilog.c +0 -102
- data/ext/abc/src/base/io/ioUtil.c +0 -871
- data/ext/abc/src/base/io/ioWriteAiger.c +0 -956
- data/ext/abc/src/base/io/ioWriteBaf.c +0 -173
- data/ext/abc/src/base/io/ioWriteBblif.c +0 -116
- data/ext/abc/src/base/io/ioWriteBench.c +0 -340
- data/ext/abc/src/base/io/ioWriteBlif.c +0 -1410
- data/ext/abc/src/base/io/ioWriteBlifMv.c +0 -476
- data/ext/abc/src/base/io/ioWriteBook.c +0 -998
- data/ext/abc/src/base/io/ioWriteCnf.c +0 -120
- data/ext/abc/src/base/io/ioWriteDot.c +0 -854
- data/ext/abc/src/base/io/ioWriteEqn.c +0 -257
- data/ext/abc/src/base/io/ioWriteGml.c +0 -121
- data/ext/abc/src/base/io/ioWriteList.c +0 -293
- data/ext/abc/src/base/io/ioWritePla.c +0 -460
- data/ext/abc/src/base/io/ioWriteSmv.c +0 -265
- data/ext/abc/src/base/io/ioWriteVerilog.c +0 -662
- data/ext/abc/src/base/io/module.make +0 -31
- data/ext/abc/src/base/main/abcapis.h +0 -106
- data/ext/abc/src/base/main/abcapis_old.h +0 -84
- data/ext/abc/src/base/main/libSupport.c +0 -211
- data/ext/abc/src/base/main/main.c +0 -12
- data/ext/abc/src/base/main/main.h +0 -171
- data/ext/abc/src/base/main/mainFrame.c +0 -742
- data/ext/abc/src/base/main/mainInit.c +0 -168
- data/ext/abc/src/base/main/mainInt.h +0 -207
- data/ext/abc/src/base/main/mainLib.c +0 -93
- data/ext/abc/src/base/main/mainMC.c +0 -203
- data/ext/abc/src/base/main/mainReal.c +0 -386
- data/ext/abc/src/base/main/mainUtils.c +0 -294
- data/ext/abc/src/base/main/module.make +0 -7
- data/ext/abc/src/base/pla/module.make +0 -7
- data/ext/abc/src/base/pla/pla.c +0 -52
- data/ext/abc/src/base/pla/pla.h +0 -297
- data/ext/abc/src/base/pla/plaCom.c +0 -507
- data/ext/abc/src/base/pla/plaFxch.c +0 -854
- data/ext/abc/src/base/pla/plaHash.c +0 -347
- data/ext/abc/src/base/pla/plaMan.c +0 -300
- data/ext/abc/src/base/pla/plaMerge.c +0 -55
- data/ext/abc/src/base/pla/plaRead.c +0 -224
- data/ext/abc/src/base/pla/plaSimple.c +0 -339
- data/ext/abc/src/base/pla/plaWrite.c +0 -112
- data/ext/abc/src/base/test/module.make +0 -1
- data/ext/abc/src/base/test/test.c +0 -70
- data/ext/abc/src/base/ver/module.make +0 -4
- data/ext/abc/src/base/ver/ver.h +0 -122
- data/ext/abc/src/base/ver/verCore.c +0 -3037
- data/ext/abc/src/base/ver/verFormula.c +0 -479
- data/ext/abc/src/base/ver/verParse.c +0 -131
- data/ext/abc/src/base/ver/verStream.c +0 -450
- data/ext/abc/src/base/ver/verWords.c +0 -53
- data/ext/abc/src/base/ver/ver_.c +0 -53
- data/ext/abc/src/base/wlc/module.make +0 -17
- data/ext/abc/src/base/wlc/wlc.c +0 -274
- data/ext/abc/src/base/wlc/wlc.h +0 -392
- data/ext/abc/src/base/wlc/wlcAbc.c +0 -275
- data/ext/abc/src/base/wlc/wlcAbs.c +0 -1912
- data/ext/abc/src/base/wlc/wlcAbs2.c +0 -410
- data/ext/abc/src/base/wlc/wlcBlast.c +0 -1692
- data/ext/abc/src/base/wlc/wlcCom.c +0 -1559
- data/ext/abc/src/base/wlc/wlcGraft.c +0 -573
- data/ext/abc/src/base/wlc/wlcJson.c +0 -54
- data/ext/abc/src/base/wlc/wlcNtk.c +0 -1268
- data/ext/abc/src/base/wlc/wlcPth.c +0 -173
- data/ext/abc/src/base/wlc/wlcReadSmt.c +0 -1784
- data/ext/abc/src/base/wlc/wlcReadVer.c +0 -1308
- data/ext/abc/src/base/wlc/wlcShow.c +0 -337
- data/ext/abc/src/base/wlc/wlcSim.c +0 -251
- data/ext/abc/src/base/wlc/wlcStdin.c +0 -255
- data/ext/abc/src/base/wlc/wlcUif.c +0 -290
- data/ext/abc/src/base/wlc/wlcWin.c +0 -166
- data/ext/abc/src/base/wlc/wlcWriteVer.c +0 -450
- data/ext/abc/src/bdd/bbr/bbr.h +0 -93
- data/ext/abc/src/bdd/bbr/bbrCex.c +0 -172
- data/ext/abc/src/bdd/bbr/bbrImage.c +0 -1327
- data/ext/abc/src/bdd/bbr/bbrNtbdd.c +0 -218
- data/ext/abc/src/bdd/bbr/bbrReach.c +0 -615
- data/ext/abc/src/bdd/bbr/bbr_.c +0 -52
- data/ext/abc/src/bdd/bbr/module.make +0 -4
- data/ext/abc/src/bdd/cas/cas.h +0 -66
- data/ext/abc/src/bdd/cas/casCore.c +0 -1265
- data/ext/abc/src/bdd/cas/casDec.c +0 -512
- data/ext/abc/src/bdd/cas/module.make +0 -3
- data/ext/abc/src/bdd/cudd/Makefile +0 -124
- data/ext/abc/src/bdd/cudd/cuBdd.make +0 -41
- data/ext/abc/src/bdd/cudd/cudd.h +0 -1054
- data/ext/abc/src/bdd/cudd/cudd.make +0 -42
- data/ext/abc/src/bdd/cudd/cuddAPI.c +0 -4444
- data/ext/abc/src/bdd/cudd/cuddAddAbs.c +0 -588
- data/ext/abc/src/bdd/cudd/cuddAddApply.c +0 -949
- data/ext/abc/src/bdd/cudd/cuddAddFind.c +0 -316
- data/ext/abc/src/bdd/cudd/cuddAddInv.c +0 -209
- data/ext/abc/src/bdd/cudd/cuddAddIte.c +0 -647
- data/ext/abc/src/bdd/cudd/cuddAddNeg.c +0 -296
- data/ext/abc/src/bdd/cudd/cuddAddWalsh.c +0 -399
- data/ext/abc/src/bdd/cudd/cuddAndAbs.c +0 -384
- data/ext/abc/src/bdd/cudd/cuddAnneal.c +0 -822
- data/ext/abc/src/bdd/cudd/cuddApa.c +0 -979
- data/ext/abc/src/bdd/cudd/cuddApprox.c +0 -2213
- data/ext/abc/src/bdd/cudd/cuddBddAbs.c +0 -725
- data/ext/abc/src/bdd/cudd/cuddBddCorr.c +0 -515
- data/ext/abc/src/bdd/cudd/cuddBddIte.c +0 -1328
- data/ext/abc/src/bdd/cudd/cuddBridge.c +0 -1021
- data/ext/abc/src/bdd/cudd/cuddCache.c +0 -1100
- data/ext/abc/src/bdd/cudd/cuddCheck.c +0 -887
- data/ext/abc/src/bdd/cudd/cuddClip.c +0 -566
- data/ext/abc/src/bdd/cudd/cuddCof.c +0 -335
- data/ext/abc/src/bdd/cudd/cuddCompose.c +0 -1760
- data/ext/abc/src/bdd/cudd/cuddDecomp.c +0 -2185
- data/ext/abc/src/bdd/cudd/cuddEssent.c +0 -1475
- data/ext/abc/src/bdd/cudd/cuddExact.c +0 -1028
- data/ext/abc/src/bdd/cudd/cuddExport.c +0 -1384
- data/ext/abc/src/bdd/cudd/cuddGenCof.c +0 -2175
- data/ext/abc/src/bdd/cudd/cuddGenetic.c +0 -957
- data/ext/abc/src/bdd/cudd/cuddGroup.c +0 -2173
- data/ext/abc/src/bdd/cudd/cuddHarwell.c +0 -576
- data/ext/abc/src/bdd/cudd/cuddInit.c +0 -319
- data/ext/abc/src/bdd/cudd/cuddInt.h +0 -1232
- data/ext/abc/src/bdd/cudd/cuddInteract.c +0 -437
- data/ext/abc/src/bdd/cudd/cuddLCache.c +0 -1465
- data/ext/abc/src/bdd/cudd/cuddLevelQ.c +0 -569
- data/ext/abc/src/bdd/cudd/cuddLinear.c +0 -1373
- data/ext/abc/src/bdd/cudd/cuddLiteral.c +0 -272
- data/ext/abc/src/bdd/cudd/cuddMatMult.c +0 -715
- data/ext/abc/src/bdd/cudd/cuddPriority.c +0 -2035
- data/ext/abc/src/bdd/cudd/cuddRead.c +0 -525
- data/ext/abc/src/bdd/cudd/cuddRef.c +0 -816
- data/ext/abc/src/bdd/cudd/cuddReorder.c +0 -2143
- data/ext/abc/src/bdd/cudd/cuddSat.c +0 -1338
- data/ext/abc/src/bdd/cudd/cuddSign.c +0 -326
- data/ext/abc/src/bdd/cudd/cuddSolve.c +0 -374
- data/ext/abc/src/bdd/cudd/cuddSplit.c +0 -694
- data/ext/abc/src/bdd/cudd/cuddSubsetHB.c +0 -1337
- data/ext/abc/src/bdd/cudd/cuddSubsetSP.c +0 -1657
- data/ext/abc/src/bdd/cudd/cuddSymmetry.c +0 -1706
- data/ext/abc/src/bdd/cudd/cuddTable.c +0 -3179
- data/ext/abc/src/bdd/cudd/cuddUtil.c +0 -3929
- data/ext/abc/src/bdd/cudd/cuddWindow.c +0 -1031
- data/ext/abc/src/bdd/cudd/cuddZddCount.c +0 -357
- data/ext/abc/src/bdd/cudd/cuddZddFuncs.c +0 -1638
- data/ext/abc/src/bdd/cudd/cuddZddGroup.c +0 -1344
- data/ext/abc/src/bdd/cudd/cuddZddIsop.c +0 -919
- data/ext/abc/src/bdd/cudd/cuddZddLin.c +0 -975
- data/ext/abc/src/bdd/cudd/cuddZddMisc.c +0 -286
- data/ext/abc/src/bdd/cudd/cuddZddPort.c +0 -389
- data/ext/abc/src/bdd/cudd/cuddZddReord.c +0 -1668
- data/ext/abc/src/bdd/cudd/cuddZddSetop.c +0 -1166
- data/ext/abc/src/bdd/cudd/cuddZddSymm.c +0 -1707
- data/ext/abc/src/bdd/cudd/cuddZddUtil.c +0 -1071
- data/ext/abc/src/bdd/cudd/license +0 -32
- data/ext/abc/src/bdd/cudd/module.make +0 -61
- data/ext/abc/src/bdd/cudd/r7x8.1.mat +0 -53
- data/ext/abc/src/bdd/cudd/r7x8.1.out +0 -377
- data/ext/abc/src/bdd/cudd/testcudd.c +0 -1073
- data/ext/abc/src/bdd/dsd/dsd.h +0 -134
- data/ext/abc/src/bdd/dsd/dsdApi.c +0 -102
- data/ext/abc/src/bdd/dsd/dsdCheck.c +0 -319
- data/ext/abc/src/bdd/dsd/dsdInt.h +0 -99
- data/ext/abc/src/bdd/dsd/dsdLocal.c +0 -342
- data/ext/abc/src/bdd/dsd/dsdMan.c +0 -119
- data/ext/abc/src/bdd/dsd/dsdProc.c +0 -1613
- data/ext/abc/src/bdd/dsd/dsdTree.c +0 -1181
- data/ext/abc/src/bdd/dsd/module.make +0 -6
- data/ext/abc/src/bdd/epd/epd.c +0 -1347
- data/ext/abc/src/bdd/epd/epd.h +0 -196
- data/ext/abc/src/bdd/epd/module.make +0 -1
- data/ext/abc/src/bdd/extrab/extraBdd.h +0 -317
- data/ext/abc/src/bdd/extrab/extraBddAuto.c +0 -1563
- data/ext/abc/src/bdd/extrab/extraBddCas.c +0 -1235
- data/ext/abc/src/bdd/extrab/extraBddImage.c +0 -1162
- data/ext/abc/src/bdd/extrab/extraBddKmap.c +0 -876
- data/ext/abc/src/bdd/extrab/extraBddMisc.c +0 -2591
- data/ext/abc/src/bdd/extrab/extraBddSymm.c +0 -1474
- data/ext/abc/src/bdd/extrab/extraBddThresh.c +0 -693
- data/ext/abc/src/bdd/extrab/extraBddTime.c +0 -660
- data/ext/abc/src/bdd/extrab/extraBddUnate.c +0 -646
- data/ext/abc/src/bdd/extrab/module.make +0 -9
- data/ext/abc/src/bdd/llb/llb.c +0 -52
- data/ext/abc/src/bdd/llb/llb.h +0 -96
- data/ext/abc/src/bdd/llb/llb1Cluster.c +0 -356
- data/ext/abc/src/bdd/llb/llb1Constr.c +0 -313
- data/ext/abc/src/bdd/llb/llb1Core.c +0 -222
- data/ext/abc/src/bdd/llb/llb1Group.c +0 -474
- data/ext/abc/src/bdd/llb/llb1Hint.c +0 -226
- data/ext/abc/src/bdd/llb/llb1Man.c +0 -218
- data/ext/abc/src/bdd/llb/llb1Matrix.c +0 -430
- data/ext/abc/src/bdd/llb/llb1Pivot.c +0 -254
- data/ext/abc/src/bdd/llb/llb1Reach.c +0 -904
- data/ext/abc/src/bdd/llb/llb1Sched.c +0 -257
- data/ext/abc/src/bdd/llb/llb2Bad.c +0 -138
- data/ext/abc/src/bdd/llb/llb2Core.c +0 -777
- data/ext/abc/src/bdd/llb/llb2Driver.c +0 -222
- data/ext/abc/src/bdd/llb/llb2Dump.c +0 -104
- data/ext/abc/src/bdd/llb/llb2Flow.c +0 -1376
- data/ext/abc/src/bdd/llb/llb2Image.c +0 -482
- data/ext/abc/src/bdd/llb/llb3Image.c +0 -1095
- data/ext/abc/src/bdd/llb/llb3Nonlin.c +0 -872
- data/ext/abc/src/bdd/llb/llb4Cex.c +0 -320
- data/ext/abc/src/bdd/llb/llb4Cluster.c +0 -452
- data/ext/abc/src/bdd/llb/llb4Image.c +0 -863
- data/ext/abc/src/bdd/llb/llb4Map.c +0 -123
- data/ext/abc/src/bdd/llb/llb4Nonlin.c +0 -1185
- data/ext/abc/src/bdd/llb/llb4Sweep.c +0 -589
- data/ext/abc/src/bdd/llb/llbInt.h +0 -212
- data/ext/abc/src/bdd/llb/module.make +0 -22
- data/ext/abc/src/bdd/mtr/module.make +0 -2
- data/ext/abc/src/bdd/mtr/mtr.h +0 -187
- data/ext/abc/src/bdd/mtr/mtrBasic.c +0 -453
- data/ext/abc/src/bdd/mtr/mtrGroup.c +0 -734
- data/ext/abc/src/bdd/mtr/mtrInt.h +0 -94
- data/ext/abc/src/bdd/reo/module.make +0 -8
- data/ext/abc/src/bdd/reo/reo.h +0 -234
- data/ext/abc/src/bdd/reo/reoApi.c +0 -294
- data/ext/abc/src/bdd/reo/reoCore.c +0 -441
- data/ext/abc/src/bdd/reo/reoProfile.c +0 -370
- data/ext/abc/src/bdd/reo/reoShuffle.c +0 -230
- data/ext/abc/src/bdd/reo/reoSift.c +0 -346
- data/ext/abc/src/bdd/reo/reoSwap.c +0 -905
- data/ext/abc/src/bdd/reo/reoTest.c +0 -256
- data/ext/abc/src/bdd/reo/reoTransfer.c +0 -206
- data/ext/abc/src/bdd/reo/reoUnits.c +0 -190
- data/ext/abc/src/bool/bdc/bdc.h +0 -98
- data/ext/abc/src/bool/bdc/bdcCore.c +0 -374
- data/ext/abc/src/bool/bdc/bdcDec.c +0 -751
- data/ext/abc/src/bool/bdc/bdcInt.h +0 -165
- data/ext/abc/src/bool/bdc/bdcSpfd.c +0 -1184
- data/ext/abc/src/bool/bdc/bdcTable.c +0 -134
- data/ext/abc/src/bool/bdc/bdc_.c +0 -54
- data/ext/abc/src/bool/bdc/module.make +0 -5
- data/ext/abc/src/bool/dec/dec.h +0 -725
- data/ext/abc/src/bool/dec/decAbc.c +0 -358
- data/ext/abc/src/bool/dec/decFactor.c +0 -403
- data/ext/abc/src/bool/dec/decMan.c +0 -88
- data/ext/abc/src/bool/dec/decPrint.c +0 -289
- data/ext/abc/src/bool/dec/decUtil.c +0 -148
- data/ext/abc/src/bool/dec/module.make +0 -5
- data/ext/abc/src/bool/deco/deco.h +0 -714
- data/ext/abc/src/bool/deco/module.make +0 -1
- data/ext/abc/src/bool/kit/cloud.c +0 -993
- data/ext/abc/src/bool/kit/cloud.h +0 -254
- data/ext/abc/src/bool/kit/kit.h +0 -655
- data/ext/abc/src/bool/kit/kitAig.c +0 -126
- data/ext/abc/src/bool/kit/kitBdd.c +0 -243
- data/ext/abc/src/bool/kit/kitCloud.c +0 -378
- data/ext/abc/src/bool/kit/kitDec.c +0 -343
- data/ext/abc/src/bool/kit/kitDsd.c +0 -3285
- data/ext/abc/src/bool/kit/kitFactor.c +0 -344
- data/ext/abc/src/bool/kit/kitGraph.c +0 -402
- data/ext/abc/src/bool/kit/kitHop.c +0 -200
- data/ext/abc/src/bool/kit/kitIsop.c +0 -365
- data/ext/abc/src/bool/kit/kitPerm.c +0 -357
- data/ext/abc/src/bool/kit/kitPla.c +0 -535
- data/ext/abc/src/bool/kit/kitSop.c +0 -579
- data/ext/abc/src/bool/kit/kitTruth.c +0 -2224
- data/ext/abc/src/bool/kit/kit_.c +0 -53
- data/ext/abc/src/bool/kit/module.make +0 -11
- data/ext/abc/src/bool/lucky/lucky.c +0 -705
- data/ext/abc/src/bool/lucky/lucky.h +0 -44
- data/ext/abc/src/bool/lucky/luckyFast16.c +0 -872
- data/ext/abc/src/bool/lucky/luckyFast6.c +0 -285
- data/ext/abc/src/bool/lucky/luckyInt.h +0 -136
- data/ext/abc/src/bool/lucky/luckyRead.c +0 -333
- data/ext/abc/src/bool/lucky/luckySimple.c +0 -307
- data/ext/abc/src/bool/lucky/luckySwap.c +0 -402
- data/ext/abc/src/bool/lucky/luckySwapIJ.c +0 -102
- data/ext/abc/src/bool/lucky/module.make +0 -7
- data/ext/abc/src/bool/rpo/literal.h +0 -297
- data/ext/abc/src/bool/rpo/module.make +0 -1
- data/ext/abc/src/bool/rpo/rpo.c +0 -383
- data/ext/abc/src/bool/rpo/rpo.h +0 -61
- data/ext/abc/src/bool/rsb/module.make +0 -2
- data/ext/abc/src/bool/rsb/rsb.h +0 -65
- data/ext/abc/src/bool/rsb/rsbDec6.c +0 -770
- data/ext/abc/src/bool/rsb/rsbInt.h +0 -84
- data/ext/abc/src/bool/rsb/rsbMan.c +0 -99
- data/ext/abc/src/demo.c +0 -181
- data/ext/abc/src/generic.c +0 -52
- data/ext/abc/src/generic.h +0 -63
- data/ext/abc/src/map/amap/amap.h +0 -97
- data/ext/abc/src/map/amap/amapCore.c +0 -110
- data/ext/abc/src/map/amap/amapGraph.c +0 -399
- data/ext/abc/src/map/amap/amapInt.h +0 -376
- data/ext/abc/src/map/amap/amapLib.c +0 -374
- data/ext/abc/src/map/amap/amapLiberty.c +0 -1103
- data/ext/abc/src/map/amap/amapMan.c +0 -104
- data/ext/abc/src/map/amap/amapMatch.c +0 -622
- data/ext/abc/src/map/amap/amapMerge.c +0 -541
- data/ext/abc/src/map/amap/amapOutput.c +0 -186
- data/ext/abc/src/map/amap/amapParse.c +0 -480
- data/ext/abc/src/map/amap/amapPerm.c +0 -380
- data/ext/abc/src/map/amap/amapRead.c +0 -494
- data/ext/abc/src/map/amap/amapRule.c +0 -462
- data/ext/abc/src/map/amap/amapUniq.c +0 -317
- data/ext/abc/src/map/amap/module.make +0 -13
- data/ext/abc/src/map/cov/cov.h +0 -109
- data/ext/abc/src/map/cov/covBuild.c +0 -544
- data/ext/abc/src/map/cov/covCore.c +0 -1030
- data/ext/abc/src/map/cov/covInt.h +0 -654
- data/ext/abc/src/map/cov/covMan.c +0 -149
- data/ext/abc/src/map/cov/covMinEsop.c +0 -304
- data/ext/abc/src/map/cov/covMinMan.c +0 -118
- data/ext/abc/src/map/cov/covMinSop.c +0 -620
- data/ext/abc/src/map/cov/covMinUtil.c +0 -343
- data/ext/abc/src/map/cov/covTest.c +0 -422
- data/ext/abc/src/map/cov/module.make +0 -7
- data/ext/abc/src/map/fpga/fpga.c +0 -288
- data/ext/abc/src/map/fpga/fpga.h +0 -175
- data/ext/abc/src/map/fpga/fpgaCore.c +0 -194
- data/ext/abc/src/map/fpga/fpgaCreate.c +0 -584
- data/ext/abc/src/map/fpga/fpgaCut.c +0 -1186
- data/ext/abc/src/map/fpga/fpgaCutUtils.c +0 -476
- data/ext/abc/src/map/fpga/fpgaFanout.c +0 -146
- data/ext/abc/src/map/fpga/fpgaGENERIC.c +0 -51
- data/ext/abc/src/map/fpga/fpgaInt.h +0 -389
- data/ext/abc/src/map/fpga/fpgaLib.c +0 -255
- data/ext/abc/src/map/fpga/fpgaMatch.c +0 -800
- data/ext/abc/src/map/fpga/fpgaSwitch.c +0 -156
- data/ext/abc/src/map/fpga/fpgaTime.c +0 -267
- data/ext/abc/src/map/fpga/fpgaTruth.c +0 -171
- data/ext/abc/src/map/fpga/fpgaUtils.c +0 -990
- data/ext/abc/src/map/fpga/fpgaVec.c +0 -413
- data/ext/abc/src/map/fpga/module.make +0 -13
- data/ext/abc/src/map/if/if.h +0 -689
- data/ext/abc/src/map/if/ifCache.c +0 -100
- data/ext/abc/src/map/if/ifCheck.c +0 -204
- data/ext/abc/src/map/if/ifCom.c +0 -372
- data/ext/abc/src/map/if/ifCore.c +0 -200
- data/ext/abc/src/map/if/ifCount.h +0 -521
- data/ext/abc/src/map/if/ifCut.c +0 -1479
- data/ext/abc/src/map/if/ifData2.c +0 -52
- data/ext/abc/src/map/if/ifDec07.c +0 -1125
- data/ext/abc/src/map/if/ifDec08.c +0 -507
- data/ext/abc/src/map/if/ifDec10.c +0 -506
- data/ext/abc/src/map/if/ifDec16.c +0 -2374
- data/ext/abc/src/map/if/ifDec75.c +0 -341
- data/ext/abc/src/map/if/ifDelay.c +0 -447
- data/ext/abc/src/map/if/ifDsd.c +0 -2838
- data/ext/abc/src/map/if/ifLibBox.c +0 -401
- data/ext/abc/src/map/if/ifLibLut.c +0 -505
- data/ext/abc/src/map/if/ifMan.c +0 -720
- data/ext/abc/src/map/if/ifMap.c +0 -680
- data/ext/abc/src/map/if/ifMatch2.c +0 -62
- data/ext/abc/src/map/if/ifReduce.c +0 -466
- data/ext/abc/src/map/if/ifSat.c +0 -548
- data/ext/abc/src/map/if/ifSelect.c +0 -601
- data/ext/abc/src/map/if/ifSeq.c +0 -397
- data/ext/abc/src/map/if/ifTest.c +0 -352
- data/ext/abc/src/map/if/ifTime.c +0 -525
- data/ext/abc/src/map/if/ifTruth.c +0 -339
- data/ext/abc/src/map/if/ifTune.c +0 -1452
- data/ext/abc/src/map/if/ifUtil.c +0 -632
- data/ext/abc/src/map/if/if_.c +0 -52
- data/ext/abc/src/map/if/module.make +0 -26
- data/ext/abc/src/map/mapper/mapper.c +0 -185
- data/ext/abc/src/map/mapper/mapper.h +0 -201
- data/ext/abc/src/map/mapper/mapperCanon.c +0 -277
- data/ext/abc/src/map/mapper/mapperCore.c +0 -231
- data/ext/abc/src/map/mapper/mapperCreate.c +0 -587
- data/ext/abc/src/map/mapper/mapperCut.c +0 -1178
- data/ext/abc/src/map/mapper/mapperCutUtils.c +0 -279
- data/ext/abc/src/map/mapper/mapperFanout.c +0 -146
- data/ext/abc/src/map/mapper/mapperInt.h +0 -469
- data/ext/abc/src/map/mapper/mapperLib.c +0 -258
- data/ext/abc/src/map/mapper/mapperMatch.c +0 -664
- data/ext/abc/src/map/mapper/mapperRefs.c +0 -540
- data/ext/abc/src/map/mapper/mapperSuper.c +0 -456
- data/ext/abc/src/map/mapper/mapperSwitch.c +0 -229
- data/ext/abc/src/map/mapper/mapperTable.c +0 -407
- data/ext/abc/src/map/mapper/mapperTime.c +0 -459
- data/ext/abc/src/map/mapper/mapperTree.c +0 -1042
- data/ext/abc/src/map/mapper/mapperTruth.c +0 -315
- data/ext/abc/src/map/mapper/mapperUtils.c +0 -898
- data/ext/abc/src/map/mapper/mapperVec.c +0 -344
- data/ext/abc/src/map/mapper/module.make +0 -17
- data/ext/abc/src/map/mio/exp.h +0 -343
- data/ext/abc/src/map/mio/mio.c +0 -728
- data/ext/abc/src/map/mio/mio.h +0 -242
- data/ext/abc/src/map/mio/mioApi.c +0 -254
- data/ext/abc/src/map/mio/mioForm.c +0 -307
- data/ext/abc/src/map/mio/mioFunc.c +0 -327
- data/ext/abc/src/map/mio/mioInt.h +0 -160
- data/ext/abc/src/map/mio/mioParse.c +0 -504
- data/ext/abc/src/map/mio/mioRead.c +0 -780
- data/ext/abc/src/map/mio/mioSop.c +0 -333
- data/ext/abc/src/map/mio/mioUtils.c +0 -1752
- data/ext/abc/src/map/mio/module.make +0 -7
- data/ext/abc/src/map/mpm/module.make +0 -11
- data/ext/abc/src/map/mpm/mpm.c +0 -55
- data/ext/abc/src/map/mpm/mpm.h +0 -98
- data/ext/abc/src/map/mpm/mpmAbc.c +0 -350
- data/ext/abc/src/map/mpm/mpmCore.c +0 -115
- data/ext/abc/src/map/mpm/mpmDsd.c +0 -1055
- data/ext/abc/src/map/mpm/mpmGates.c +0 -307
- data/ext/abc/src/map/mpm/mpmInt.h +0 -265
- data/ext/abc/src/map/mpm/mpmLib.c +0 -74
- data/ext/abc/src/map/mpm/mpmMan.c +0 -207
- data/ext/abc/src/map/mpm/mpmMap.c +0 -872
- data/ext/abc/src/map/mpm/mpmMig.c +0 -204
- data/ext/abc/src/map/mpm/mpmMig.h +0 -358
- data/ext/abc/src/map/mpm/mpmPre.c +0 -1029
- data/ext/abc/src/map/mpm/mpmTruth.c +0 -239
- data/ext/abc/src/map/mpm/mpmUtil.c +0 -52
- data/ext/abc/src/map/scl/module.make +0 -11
- data/ext/abc/src/map/scl/scl.c +0 -2042
- data/ext/abc/src/map/scl/scl.h +0 -58
- data/ext/abc/src/map/scl/sclBufSize.c +0 -518
- data/ext/abc/src/map/scl/sclBuffer.c +0 -1010
- data/ext/abc/src/map/scl/sclCon.h +0 -293
- data/ext/abc/src/map/scl/sclDnsize.c +0 -378
- data/ext/abc/src/map/scl/sclLib.h +0 -770
- data/ext/abc/src/map/scl/sclLibScl.c +0 -848
- data/ext/abc/src/map/scl/sclLibUtil.c +0 -1078
- data/ext/abc/src/map/scl/sclLiberty.c +0 -1697
- data/ext/abc/src/map/scl/sclLoad.c +0 -238
- data/ext/abc/src/map/scl/sclSize.c +0 -915
- data/ext/abc/src/map/scl/sclSize.h +0 -594
- data/ext/abc/src/map/scl/sclTime.h +0 -234
- data/ext/abc/src/map/scl/sclUpsize.c +0 -1045
- data/ext/abc/src/map/scl/sclUtil.c +0 -320
- data/ext/abc/src/map/super/module.make +0 -3
- data/ext/abc/src/map/super/super.c +0 -333
- data/ext/abc/src/map/super/super.h +0 -62
- data/ext/abc/src/map/super/superAnd.c +0 -701
- data/ext/abc/src/map/super/superGENERIC.c +0 -51
- data/ext/abc/src/map/super/superGate.c +0 -1473
- data/ext/abc/src/map/super/superInt.h +0 -64
- data/ext/abc/src/map/super/superWrite.c +0 -81
- data/ext/abc/src/misc/avl/avl.c +0 -621
- data/ext/abc/src/misc/avl/avl.doc +0 -166
- data/ext/abc/src/misc/avl/avl.h +0 -91
- data/ext/abc/src/misc/bar/bar.c +0 -193
- data/ext/abc/src/misc/bar/bar.h +0 -78
- data/ext/abc/src/misc/bar/module.make +0 -1
- data/ext/abc/src/misc/bbl/bblif.c +0 -1518
- data/ext/abc/src/misc/bbl/bblif.h +0 -285
- data/ext/abc/src/misc/bbl/module.make +0 -1
- data/ext/abc/src/misc/bzlib/CHANGES +0 -319
- data/ext/abc/src/misc/bzlib/LICENSE +0 -42
- data/ext/abc/src/misc/bzlib/blocksort.c +0 -1098
- data/ext/abc/src/misc/bzlib/bzip2.txt +0 -391
- data/ext/abc/src/misc/bzlib/bzlib.c +0 -1588
- data/ext/abc/src/misc/bzlib/bzlib.h +0 -287
- data/ext/abc/src/misc/bzlib/bzlib_private.h +0 -513
- data/ext/abc/src/misc/bzlib/compress.c +0 -677
- data/ext/abc/src/misc/bzlib/crctable.c +0 -109
- data/ext/abc/src/misc/bzlib/decompress.c +0 -631
- data/ext/abc/src/misc/bzlib/huffman.c +0 -210
- data/ext/abc/src/misc/bzlib/link.txt +0 -2
- data/ext/abc/src/misc/bzlib/manual.html +0 -2540
- data/ext/abc/src/misc/bzlib/module.make +0 -7
- data/ext/abc/src/misc/bzlib/randtable.c +0 -89
- data/ext/abc/src/misc/espresso/cofactor.c +0 -389
- data/ext/abc/src/misc/espresso/cols.c +0 -319
- data/ext/abc/src/misc/espresso/compl.c +0 -685
- data/ext/abc/src/misc/espresso/contain.c +0 -450
- data/ext/abc/src/misc/espresso/cubehack.c +0 -143
- data/ext/abc/src/misc/espresso/cubestr.c +0 -157
- data/ext/abc/src/misc/espresso/cvrin.c +0 -816
- data/ext/abc/src/misc/espresso/cvrm.c +0 -544
- data/ext/abc/src/misc/espresso/cvrmisc.c +0 -147
- data/ext/abc/src/misc/espresso/cvrout.c +0 -614
- data/ext/abc/src/misc/espresso/dominate.c +0 -103
- data/ext/abc/src/misc/espresso/equiv.c +0 -99
- data/ext/abc/src/misc/espresso/espresso.c +0 -144
- data/ext/abc/src/misc/espresso/espresso.h +0 -786
- data/ext/abc/src/misc/espresso/essen.c +0 -184
- data/ext/abc/src/misc/espresso/exact.c +0 -186
- data/ext/abc/src/misc/espresso/expand.c +0 -700
- data/ext/abc/src/misc/espresso/gasp.c +0 -233
- data/ext/abc/src/misc/espresso/gimpel.c +0 -112
- data/ext/abc/src/misc/espresso/globals.c +0 -81
- data/ext/abc/src/misc/espresso/hack.c +0 -646
- data/ext/abc/src/misc/espresso/indep.c +0 -139
- data/ext/abc/src/misc/espresso/irred.c +0 -445
- data/ext/abc/src/misc/espresso/main.c +0 -751
- data/ext/abc/src/misc/espresso/main.h +0 -122
- data/ext/abc/src/misc/espresso/map.c +0 -122
- data/ext/abc/src/misc/espresso/matrix.c +0 -579
- data/ext/abc/src/misc/espresso/mincov.c +0 -383
- data/ext/abc/src/misc/espresso/mincov.h +0 -11
- data/ext/abc/src/misc/espresso/mincov_int.h +0 -55
- data/ext/abc/src/misc/espresso/module.make +0 -39
- data/ext/abc/src/misc/espresso/opo.c +0 -629
- data/ext/abc/src/misc/espresso/pair.c +0 -685
- data/ext/abc/src/misc/espresso/part.c +0 -127
- data/ext/abc/src/misc/espresso/primes.c +0 -175
- data/ext/abc/src/misc/espresso/reduce.c +0 -263
- data/ext/abc/src/misc/espresso/rows.c +0 -319
- data/ext/abc/src/misc/espresso/set.c +0 -825
- data/ext/abc/src/misc/espresso/setc.c +0 -488
- data/ext/abc/src/misc/espresso/sharp.c +0 -252
- data/ext/abc/src/misc/espresso/sminterf.c +0 -49
- data/ext/abc/src/misc/espresso/solution.c +0 -119
- data/ext/abc/src/misc/espresso/sparse.c +0 -151
- data/ext/abc/src/misc/espresso/sparse.h +0 -143
- data/ext/abc/src/misc/espresso/sparse_int.h +0 -121
- data/ext/abc/src/misc/espresso/unate.c +0 -446
- data/ext/abc/src/misc/espresso/util_old.h +0 -309
- data/ext/abc/src/misc/espresso/verify.c +0 -198
- data/ext/abc/src/misc/extra/extra.h +0 -417
- data/ext/abc/src/misc/extra/extraUtilBitMatrix.c +0 -420
- data/ext/abc/src/misc/extra/extraUtilCanon.c +0 -691
- data/ext/abc/src/misc/extra/extraUtilCube.c +0 -279
- data/ext/abc/src/misc/extra/extraUtilDsd.c +0 -1271
- data/ext/abc/src/misc/extra/extraUtilEnum.c +0 -680
- data/ext/abc/src/misc/extra/extraUtilFile.c +0 -887
- data/ext/abc/src/misc/extra/extraUtilMemory.c +0 -628
- data/ext/abc/src/misc/extra/extraUtilMisc.c +0 -2580
- data/ext/abc/src/misc/extra/extraUtilPerm.c +0 -933
- data/ext/abc/src/misc/extra/extraUtilPrime.c +0 -602
- data/ext/abc/src/misc/extra/extraUtilProgress.c +0 -185
- data/ext/abc/src/misc/extra/extraUtilReader.c +0 -390
- data/ext/abc/src/misc/extra/extraUtilSupp.c +0 -532
- data/ext/abc/src/misc/extra/extraUtilTruth.c +0 -1153
- data/ext/abc/src/misc/extra/extraUtilUtil.c +0 -421
- data/ext/abc/src/misc/extra/extraZddTrunc.c +0 -338
- data/ext/abc/src/misc/extra/module.make +0 -14
- data/ext/abc/src/misc/hash/hash.h +0 -70
- data/ext/abc/src/misc/hash/hashFlt.h +0 -339
- data/ext/abc/src/misc/hash/hashGen.h +0 -367
- data/ext/abc/src/misc/hash/hashInt.h +0 -302
- data/ext/abc/src/misc/hash/hashPtr.h +0 -339
- data/ext/abc/src/misc/hash/module.make +0 -1
- data/ext/abc/src/misc/mem/mem.c +0 -605
- data/ext/abc/src/misc/mem/mem.h +0 -75
- data/ext/abc/src/misc/mem/mem2.h +0 -271
- data/ext/abc/src/misc/mem/module.make +0 -1
- data/ext/abc/src/misc/mvc/module.make +0 -15
- data/ext/abc/src/misc/mvc/mvc.c +0 -51
- data/ext/abc/src/misc/mvc/mvc.h +0 -739
- data/ext/abc/src/misc/mvc/mvcApi.c +0 -238
- data/ext/abc/src/misc/mvc/mvcCompare.c +0 -374
- data/ext/abc/src/misc/mvc/mvcContain.c +0 -178
- data/ext/abc/src/misc/mvc/mvcCover.c +0 -256
- data/ext/abc/src/misc/mvc/mvcCube.c +0 -180
- data/ext/abc/src/misc/mvc/mvcDivide.c +0 -442
- data/ext/abc/src/misc/mvc/mvcDivisor.c +0 -95
- data/ext/abc/src/misc/mvc/mvcList.c +0 -367
- data/ext/abc/src/misc/mvc/mvcLits.c +0 -350
- data/ext/abc/src/misc/mvc/mvcMan.c +0 -82
- data/ext/abc/src/misc/mvc/mvcOpAlg.c +0 -168
- data/ext/abc/src/misc/mvc/mvcOpBool.c +0 -156
- data/ext/abc/src/misc/mvc/mvcPrint.c +0 -225
- data/ext/abc/src/misc/mvc/mvcSort.c +0 -146
- data/ext/abc/src/misc/mvc/mvcUtils.c +0 -873
- data/ext/abc/src/misc/nm/module.make +0 -2
- data/ext/abc/src/misc/nm/nm.h +0 -96
- data/ext/abc/src/misc/nm/nmApi.c +0 -278
- data/ext/abc/src/misc/nm/nmInt.h +0 -94
- data/ext/abc/src/misc/nm/nmTable.c +0 -310
- data/ext/abc/src/misc/parse/module.make +0 -2
- data/ext/abc/src/misc/parse/parse.h +0 -62
- data/ext/abc/src/misc/parse/parseCore.c +0 -536
- data/ext/abc/src/misc/parse/parseEqn.c +0 -362
- data/ext/abc/src/misc/parse/parseInt.h +0 -77
- data/ext/abc/src/misc/parse/parseStack.c +0 -248
- data/ext/abc/src/misc/st/module.make +0 -2
- data/ext/abc/src/misc/st/st.c +0 -561
- data/ext/abc/src/misc/st/st.h +0 -121
- data/ext/abc/src/misc/st/stmm.c +0 -627
- data/ext/abc/src/misc/st/stmm.h +0 -147
- data/ext/abc/src/misc/tim/module.make +0 -5
- data/ext/abc/src/misc/tim/tim.c +0 -39
- data/ext/abc/src/misc/tim/tim.h +0 -184
- data/ext/abc/src/misc/tim/timBox.c +0 -326
- data/ext/abc/src/misc/tim/timDump.c +0 -201
- data/ext/abc/src/misc/tim/timInt.h +0 -148
- data/ext/abc/src/misc/tim/timMan.c +0 -807
- data/ext/abc/src/misc/tim/timTime.c +0 -267
- data/ext/abc/src/misc/tim/timTrav.c +0 -185
- data/ext/abc/src/misc/util/abc_global.h +0 -416
- data/ext/abc/src/misc/util/abc_namespaces.h +0 -58
- data/ext/abc/src/misc/util/module.make +0 -8
- data/ext/abc/src/misc/util/utilBridge.c +0 -564
- data/ext/abc/src/misc/util/utilCex.c +0 -574
- data/ext/abc/src/misc/util/utilCex.h +0 -84
- data/ext/abc/src/misc/util/utilColor.c +0 -124
- data/ext/abc/src/misc/util/utilDouble.h +0 -222
- data/ext/abc/src/misc/util/utilFile.c +0 -221
- data/ext/abc/src/misc/util/utilFloat.h +0 -226
- data/ext/abc/src/misc/util/utilIsop.c +0 -1139
- data/ext/abc/src/misc/util/utilMem.c +0 -341
- data/ext/abc/src/misc/util/utilMem.h +0 -73
- data/ext/abc/src/misc/util/utilNam.c +0 -622
- data/ext/abc/src/misc/util/utilNam.h +0 -80
- data/ext/abc/src/misc/util/utilSignal.c +0 -68
- data/ext/abc/src/misc/util/utilSignal.h +0 -58
- data/ext/abc/src/misc/util/utilSort.c +0 -789
- data/ext/abc/src/misc/util/utilTruth.h +0 -3076
- data/ext/abc/src/misc/util/util_hack.h +0 -46
- data/ext/abc/src/misc/vec/module.make +0 -1
- data/ext/abc/src/misc/vec/vec.h +0 -74
- data/ext/abc/src/misc/vec/vecAtt.h +0 -298
- data/ext/abc/src/misc/vec/vecBit.h +0 -636
- data/ext/abc/src/misc/vec/vecFlt.h +0 -826
- data/ext/abc/src/misc/vec/vecHash.h +0 -280
- data/ext/abc/src/misc/vec/vecHsh.h +0 -590
- data/ext/abc/src/misc/vec/vecInt.h +0 -2078
- data/ext/abc/src/misc/vec/vecMem.h +0 -431
- data/ext/abc/src/misc/vec/vecPtr.h +0 -1160
- data/ext/abc/src/misc/vec/vecQue.h +0 -374
- data/ext/abc/src/misc/vec/vecSet.h +0 -299
- data/ext/abc/src/misc/vec/vecStr.h +0 -1072
- data/ext/abc/src/misc/vec/vecVec.h +0 -646
- data/ext/abc/src/misc/vec/vecWec.h +0 -738
- data/ext/abc/src/misc/vec/vecWrd.h +0 -1205
- data/ext/abc/src/misc/zlib/README +0 -115
- data/ext/abc/src/misc/zlib/adler32.c +0 -168
- data/ext/abc/src/misc/zlib/algorithm.txt +0 -209
- data/ext/abc/src/misc/zlib/compress_.c +0 -76
- data/ext/abc/src/misc/zlib/crc32.c +0 -433
- data/ext/abc/src/misc/zlib/crc32.h +0 -445
- data/ext/abc/src/misc/zlib/deflate.c +0 -1784
- data/ext/abc/src/misc/zlib/deflate.h +0 -346
- data/ext/abc/src/misc/zlib/gzclose.c +0 -33
- data/ext/abc/src/misc/zlib/gzguts.h +0 -147
- data/ext/abc/src/misc/zlib/gzlib.c +0 -517
- data/ext/abc/src/misc/zlib/gzread.c +0 -641
- data/ext/abc/src/misc/zlib/gzwrite.c +0 -520
- data/ext/abc/src/misc/zlib/infback.c +0 -631
- data/ext/abc/src/misc/zlib/inffast.c +0 -351
- data/ext/abc/src/misc/zlib/inffast.h +0 -15
- data/ext/abc/src/misc/zlib/inffixed.h +0 -98
- data/ext/abc/src/misc/zlib/inflate.c +0 -1457
- data/ext/abc/src/misc/zlib/inflate.h +0 -126
- data/ext/abc/src/misc/zlib/inftrees.c +0 -337
- data/ext/abc/src/misc/zlib/inftrees.h +0 -66
- data/ext/abc/src/misc/zlib/license +0 -31
- data/ext/abc/src/misc/zlib/link.txt +0 -1
- data/ext/abc/src/misc/zlib/module.make +0 -15
- data/ext/abc/src/misc/zlib/trees.c +0 -1216
- data/ext/abc/src/misc/zlib/trees.h +0 -132
- data/ext/abc/src/misc/zlib/uncompr.c +0 -67
- data/ext/abc/src/misc/zlib/zconf.h +0 -432
- data/ext/abc/src/misc/zlib/zlib.h +0 -1619
- data/ext/abc/src/misc/zlib/zutil.c +0 -318
- data/ext/abc/src/misc/zlib/zutil.h +0 -288
- data/ext/abc/src/opt/cgt/cgt.h +0 -87
- data/ext/abc/src/opt/cgt/cgtAig.c +0 -601
- data/ext/abc/src/opt/cgt/cgtCore.c +0 -328
- data/ext/abc/src/opt/cgt/cgtDecide.c +0 -300
- data/ext/abc/src/opt/cgt/cgtInt.h +0 -123
- data/ext/abc/src/opt/cgt/cgtMan.c +0 -179
- data/ext/abc/src/opt/cgt/cgtSat.c +0 -98
- data/ext/abc/src/opt/cgt/module.make +0 -5
- data/ext/abc/src/opt/csw/csw.h +0 -69
- data/ext/abc/src/opt/csw/cswCore.c +0 -100
- data/ext/abc/src/opt/csw/cswCut.c +0 -608
- data/ext/abc/src/opt/csw/cswInt.h +0 -160
- data/ext/abc/src/opt/csw/cswMan.c +0 -130
- data/ext/abc/src/opt/csw/cswTable.c +0 -166
- data/ext/abc/src/opt/csw/csw_.c +0 -53
- data/ext/abc/src/opt/csw/module.make +0 -4
- data/ext/abc/src/opt/cut/abcCut.c +0 -498
- data/ext/abc/src/opt/cut/cut.h +0 -172
- data/ext/abc/src/opt/cut/cutApi.c +0 -202
- data/ext/abc/src/opt/cut/cutCut.c +0 -364
- data/ext/abc/src/opt/cut/cutExpand.c +0 -189
- data/ext/abc/src/opt/cut/cutInt.h +0 -165
- data/ext/abc/src/opt/cut/cutList.h +0 -215
- data/ext/abc/src/opt/cut/cutMan.c +0 -320
- data/ext/abc/src/opt/cut/cutMerge.c +0 -662
- data/ext/abc/src/opt/cut/cutNode.c +0 -1004
- data/ext/abc/src/opt/cut/cutOracle.c +0 -424
- data/ext/abc/src/opt/cut/cutPre22.c +0 -994
- data/ext/abc/src/opt/cut/cutSeq.c +0 -232
- data/ext/abc/src/opt/cut/cutTruth.c +0 -232
- data/ext/abc/src/opt/cut/module.make +0 -9
- data/ext/abc/src/opt/dar/dar.h +0 -116
- data/ext/abc/src/opt/dar/darBalance.c +0 -761
- data/ext/abc/src/opt/dar/darCore.c +0 -348
- data/ext/abc/src/opt/dar/darCut.c +0 -837
- data/ext/abc/src/opt/dar/darData.c +0 -11294
- data/ext/abc/src/opt/dar/darInt.h +0 -169
- data/ext/abc/src/opt/dar/darLib.c +0 -1341
- data/ext/abc/src/opt/dar/darMan.c +0 -174
- data/ext/abc/src/opt/dar/darPrec.c +0 -394
- data/ext/abc/src/opt/dar/darRefact.c +0 -639
- data/ext/abc/src/opt/dar/darResub.c +0 -53
- data/ext/abc/src/opt/dar/darScript.c +0 -911
- data/ext/abc/src/opt/dar/dar_.c +0 -53
- data/ext/abc/src/opt/dar/module.make +0 -9
- data/ext/abc/src/opt/dau/dau.c +0 -53
- data/ext/abc/src/opt/dau/dau.h +0 -125
- data/ext/abc/src/opt/dau/dauArray.c +0 -257
- data/ext/abc/src/opt/dau/dauCanon.c +0 -1202
- data/ext/abc/src/opt/dau/dauCore.c +0 -112
- data/ext/abc/src/opt/dau/dauDivs.c +0 -111
- data/ext/abc/src/opt/dau/dauDsd.c +0 -2098
- data/ext/abc/src/opt/dau/dauDsd2.c +0 -660
- data/ext/abc/src/opt/dau/dauEnum.c +0 -253
- data/ext/abc/src/opt/dau/dauGia.c +0 -573
- data/ext/abc/src/opt/dau/dauInt.h +0 -70
- data/ext/abc/src/opt/dau/dauMerge.c +0 -824
- data/ext/abc/src/opt/dau/dauNonDsd.c +0 -903
- data/ext/abc/src/opt/dau/dauTree.c +0 -2022
- data/ext/abc/src/opt/dau/module.make +0 -9
- data/ext/abc/src/opt/dsc/dsc.c +0 -525
- data/ext/abc/src/opt/dsc/dsc.h +0 -91
- data/ext/abc/src/opt/dsc/module.make +0 -1
- data/ext/abc/src/opt/fret/fretFlow.c +0 -700
- data/ext/abc/src/opt/fret/fretInit.c +0 -1343
- data/ext/abc/src/opt/fret/fretMain.c +0 -1383
- data/ext/abc/src/opt/fret/fretTime.c +0 -766
- data/ext/abc/src/opt/fret/fretime.h +0 -212
- data/ext/abc/src/opt/fret/module.make +0 -5
- data/ext/abc/src/opt/fsim/fsim.h +0 -101
- data/ext/abc/src/opt/fsim/fsimCore.c +0 -88
- data/ext/abc/src/opt/fsim/fsimFront.c +0 -369
- data/ext/abc/src/opt/fsim/fsimInt.h +0 -138
- data/ext/abc/src/opt/fsim/fsimMan.c +0 -212
- data/ext/abc/src/opt/fsim/fsimSim.c +0 -569
- data/ext/abc/src/opt/fsim/fsimSwitch.c +0 -40
- data/ext/abc/src/opt/fsim/fsimTsim.c +0 -416
- data/ext/abc/src/opt/fsim/module.make +0 -6
- data/ext/abc/src/opt/fxch/Fxch.c +0 -266
- data/ext/abc/src/opt/fxch/Fxch.h +0 -229
- data/ext/abc/src/opt/fxch/FxchDiv.c +0 -485
- data/ext/abc/src/opt/fxch/FxchMan.c +0 -785
- data/ext/abc/src/opt/fxch/FxchSCHashTable.c +0 -382
- data/ext/abc/src/opt/fxch/module.make +0 -4
- data/ext/abc/src/opt/fxu/fxu.c +0 -260
- data/ext/abc/src/opt/fxu/fxu.h +0 -97
- data/ext/abc/src/opt/fxu/fxuCreate.c +0 -447
- data/ext/abc/src/opt/fxu/fxuHeapD.c +0 -450
- data/ext/abc/src/opt/fxu/fxuHeapS.c +0 -449
- data/ext/abc/src/opt/fxu/fxuInt.h +0 -545
- data/ext/abc/src/opt/fxu/fxuList.c +0 -527
- data/ext/abc/src/opt/fxu/fxuMatrix.c +0 -377
- data/ext/abc/src/opt/fxu/fxuPair.c +0 -560
- data/ext/abc/src/opt/fxu/fxuPrint.c +0 -202
- data/ext/abc/src/opt/fxu/fxuReduce.c +0 -213
- data/ext/abc/src/opt/fxu/fxuSelect.c +0 -608
- data/ext/abc/src/opt/fxu/fxuSingle.c +0 -289
- data/ext/abc/src/opt/fxu/fxuUpdate.c +0 -811
- data/ext/abc/src/opt/fxu/module.make +0 -12
- data/ext/abc/src/opt/lpk/lpk.h +0 -88
- data/ext/abc/src/opt/lpk/lpkAbcDec.c +0 -294
- data/ext/abc/src/opt/lpk/lpkAbcDsd.c +0 -617
- data/ext/abc/src/opt/lpk/lpkAbcMux.c +0 -240
- data/ext/abc/src/opt/lpk/lpkAbcUtil.c +0 -249
- data/ext/abc/src/opt/lpk/lpkCore.c +0 -694
- data/ext/abc/src/opt/lpk/lpkCut.c +0 -689
- data/ext/abc/src/opt/lpk/lpkInt.h +0 -250
- data/ext/abc/src/opt/lpk/lpkMan.c +0 -127
- data/ext/abc/src/opt/lpk/lpkMap.c +0 -210
- data/ext/abc/src/opt/lpk/lpkMulti.c +0 -513
- data/ext/abc/src/opt/lpk/lpkMux.c +0 -252
- data/ext/abc/src/opt/lpk/lpkSets.c +0 -445
- data/ext/abc/src/opt/lpk/lpk_.c +0 -53
- data/ext/abc/src/opt/lpk/module.make +0 -11
- data/ext/abc/src/opt/mfs/mfs.h +0 -89
- data/ext/abc/src/opt/mfs/mfsCore.c +0 -596
- data/ext/abc/src/opt/mfs/mfsCore_.c +0 -394
- data/ext/abc/src/opt/mfs/mfsDiv.c +0 -309
- data/ext/abc/src/opt/mfs/mfsGia.c +0 -301
- data/ext/abc/src/opt/mfs/mfsInt.h +0 -192
- data/ext/abc/src/opt/mfs/mfsInter.c +0 -398
- data/ext/abc/src/opt/mfs/mfsMan.c +0 -202
- data/ext/abc/src/opt/mfs/mfsResub.c +0 -622
- data/ext/abc/src/opt/mfs/mfsResub_.c +0 -567
- data/ext/abc/src/opt/mfs/mfsSat.c +0 -182
- data/ext/abc/src/opt/mfs/mfsStrash.c +0 -406
- data/ext/abc/src/opt/mfs/mfsWin.c +0 -117
- data/ext/abc/src/opt/mfs/mfs_.c +0 -52
- data/ext/abc/src/opt/mfs/module.make +0 -8
- data/ext/abc/src/opt/nwk/module.make +0 -14
- data/ext/abc/src/opt/nwk/ntlnwk.h +0 -113
- data/ext/abc/src/opt/nwk/nwk.h +0 -307
- data/ext/abc/src/opt/nwk/nwkAig.c +0 -299
- data/ext/abc/src/opt/nwk/nwkBidec.c +0 -177
- data/ext/abc/src/opt/nwk/nwkCheck.c +0 -76
- data/ext/abc/src/opt/nwk/nwkDfs.c +0 -664
- data/ext/abc/src/opt/nwk/nwkFanio.c +0 -320
- data/ext/abc/src/opt/nwk/nwkFlow.c +0 -606
- data/ext/abc/src/opt/nwk/nwkFlow_depth.c +0 -631
- data/ext/abc/src/opt/nwk/nwkMan.c +0 -278
- data/ext/abc/src/opt/nwk/nwkMap.c +0 -396
- data/ext/abc/src/opt/nwk/nwkMerge.c +0 -1046
- data/ext/abc/src/opt/nwk/nwkMerge.h +0 -153
- data/ext/abc/src/opt/nwk/nwkObj.c +0 -204
- data/ext/abc/src/opt/nwk/nwkSpeedup.c +0 -382
- data/ext/abc/src/opt/nwk/nwkStrash.c +0 -149
- data/ext/abc/src/opt/nwk/nwkTiming.c +0 -894
- data/ext/abc/src/opt/nwk/nwkUtil.c +0 -644
- data/ext/abc/src/opt/nwk/nwk_.c +0 -52
- data/ext/abc/src/opt/res/module.make +0 -7
- data/ext/abc/src/opt/res/res.h +0 -79
- data/ext/abc/src/opt/res/resCore.c +0 -427
- data/ext/abc/src/opt/res/resDivs.c +0 -290
- data/ext/abc/src/opt/res/resFilter.c +0 -439
- data/ext/abc/src/opt/res/resInt.h +0 -141
- data/ext/abc/src/opt/res/resSat.c +0 -414
- data/ext/abc/src/opt/res/resSim.c +0 -795
- data/ext/abc/src/opt/res/resSim_old.c +0 -526
- data/ext/abc/src/opt/res/resStrash.c +0 -122
- data/ext/abc/src/opt/res/resWin.c +0 -490
- data/ext/abc/src/opt/res/res_.c +0 -55
- data/ext/abc/src/opt/ret/module.make +0 -8
- data/ext/abc/src/opt/ret/retArea.c +0 -554
- data/ext/abc/src/opt/ret/retCore.c +0 -138
- data/ext/abc/src/opt/ret/retDelay.c +0 -315
- data/ext/abc/src/opt/ret/retFlow.c +0 -789
- data/ext/abc/src/opt/ret/retIncrem.c +0 -480
- data/ext/abc/src/opt/ret/retInit.c +0 -355
- data/ext/abc/src/opt/ret/retInt.h +0 -88
- data/ext/abc/src/opt/ret/retLvalue.c +0 -402
- data/ext/abc/src/opt/ret/ret_.c +0 -53
- data/ext/abc/src/opt/rwr/module.make +0 -7
- data/ext/abc/src/opt/rwr/rwr.h +0 -173
- data/ext/abc/src/opt/rwr/rwrDec.c +0 -155
- data/ext/abc/src/opt/rwr/rwrEva.c +0 -599
- data/ext/abc/src/opt/rwr/rwrExp.c +0 -336
- data/ext/abc/src/opt/rwr/rwrLib.c +0 -367
- data/ext/abc/src/opt/rwr/rwrMan.c +0 -323
- data/ext/abc/src/opt/rwr/rwrPrint.c +0 -271
- data/ext/abc/src/opt/rwr/rwrTemp.c +0 -126
- data/ext/abc/src/opt/rwr/rwrUtil.c +0 -661
- data/ext/abc/src/opt/rwt/module.make +0 -3
- data/ext/abc/src/opt/rwt/rwt.h +0 -165
- data/ext/abc/src/opt/rwt/rwtDec.c +0 -155
- data/ext/abc/src/opt/rwt/rwtMan.c +0 -363
- data/ext/abc/src/opt/rwt/rwtUtil.c +0 -663
- data/ext/abc/src/opt/sbd/module.make +0 -9
- data/ext/abc/src/opt/sbd/sbd.c +0 -122
- data/ext/abc/src/opt/sbd/sbd.h +0 -82
- data/ext/abc/src/opt/sbd/sbdCnf.c +0 -147
- data/ext/abc/src/opt/sbd/sbdCore.c +0 -2229
- data/ext/abc/src/opt/sbd/sbdCut.c +0 -872
- data/ext/abc/src/opt/sbd/sbdCut2.c +0 -431
- data/ext/abc/src/opt/sbd/sbdInt.h +0 -125
- data/ext/abc/src/opt/sbd/sbdLut.c +0 -311
- data/ext/abc/src/opt/sbd/sbdPath.c +0 -197
- data/ext/abc/src/opt/sbd/sbdSat.c +0 -793
- data/ext/abc/src/opt/sbd/sbdSim.c +0 -310
- data/ext/abc/src/opt/sbd/sbdWin.c +0 -464
- data/ext/abc/src/opt/sfm/module.make +0 -10
- data/ext/abc/src/opt/sfm/sfm.h +0 -107
- data/ext/abc/src/opt/sfm/sfmArea.c +0 -380
- data/ext/abc/src/opt/sfm/sfmCnf.c +0 -179
- data/ext/abc/src/opt/sfm/sfmCore.c +0 -306
- data/ext/abc/src/opt/sfm/sfmDec.c +0 -2168
- data/ext/abc/src/opt/sfm/sfmInt.h +0 -254
- data/ext/abc/src/opt/sfm/sfmLib.c +0 -766
- data/ext/abc/src/opt/sfm/sfmMit.c +0 -73
- data/ext/abc/src/opt/sfm/sfmNtk.c +0 -381
- data/ext/abc/src/opt/sfm/sfmSat.c +0 -273
- data/ext/abc/src/opt/sfm/sfmTim.c +0 -458
- data/ext/abc/src/opt/sfm/sfmWin.c +0 -481
- data/ext/abc/src/opt/sim/module.make +0 -9
- data/ext/abc/src/opt/sim/sim.h +0 -237
- data/ext/abc/src/opt/sim/simMan.c +0 -293
- data/ext/abc/src/opt/sim/simSat.c +0 -53
- data/ext/abc/src/opt/sim/simSeq.c +0 -176
- data/ext/abc/src/opt/sim/simSupp.c +0 -603
- data/ext/abc/src/opt/sim/simSwitch.c +0 -112
- data/ext/abc/src/opt/sim/simSym.c +0 -148
- data/ext/abc/src/opt/sim/simSymSat.c +0 -205
- data/ext/abc/src/opt/sim/simSymSim.c +0 -178
- data/ext/abc/src/opt/sim/simSymStr.c +0 -493
- data/ext/abc/src/opt/sim/simUtils.c +0 -718
- data/ext/abc/src/phys/place/Makefile +0 -30
- data/ext/abc/src/phys/place/README +0 -50
- data/ext/abc/src/phys/place/hpwl +0 -57
- data/ext/abc/src/phys/place/libhmetis.h +0 -39
- data/ext/abc/src/phys/place/module.make +0 -10
- data/ext/abc/src/phys/place/place_base.c +0 -350
- data/ext/abc/src/phys/place/place_base.h +0 -145
- data/ext/abc/src/phys/place/place_bin.c +0 -282
- data/ext/abc/src/phys/place/place_genqp.c +0 -314
- data/ext/abc/src/phys/place/place_gordian.c +0 -165
- data/ext/abc/src/phys/place/place_gordian.h +0 -86
- data/ext/abc/src/phys/place/place_inc.c +0 -111
- data/ext/abc/src/phys/place/place_io.c +0 -99
- data/ext/abc/src/phys/place/place_legalize.c +0 -28
- data/ext/abc/src/phys/place/place_pads.c +0 -146
- data/ext/abc/src/phys/place/place_partition.c +0 -1140
- data/ext/abc/src/phys/place/place_qpsolver.c +0 -1275
- data/ext/abc/src/phys/place/place_qpsolver.h +0 -139
- data/ext/abc/src/phys/place/place_test.c +0 -365
- data/ext/abc/src/proof/abs/abs.c +0 -52
- data/ext/abc/src/proof/abs/abs.h +0 -177
- data/ext/abc/src/proof/abs/absDup.c +0 -445
- data/ext/abc/src/proof/abs/absGla.c +0 -1901
- data/ext/abc/src/proof/abs/absGlaOld.c +0 -1956
- data/ext/abc/src/proof/abs/absIter.c +0 -148
- data/ext/abc/src/proof/abs/absOldCex.c +0 -873
- data/ext/abc/src/proof/abs/absOldRef.c +0 -474
- data/ext/abc/src/proof/abs/absOldSat.c +0 -986
- data/ext/abc/src/proof/abs/absOldSim.c +0 -477
- data/ext/abc/src/proof/abs/absOut.c +0 -458
- data/ext/abc/src/proof/abs/absPth.c +0 -205
- data/ext/abc/src/proof/abs/absRef.c +0 -751
- data/ext/abc/src/proof/abs/absRef.h +0 -129
- data/ext/abc/src/proof/abs/absRefJ.c +0 -916
- data/ext/abc/src/proof/abs/absRefJ.h +0 -67
- data/ext/abc/src/proof/abs/absRefSelect.c +0 -309
- data/ext/abc/src/proof/abs/absRpm.c +0 -874
- data/ext/abc/src/proof/abs/absRpmOld.c +0 -201
- data/ext/abc/src/proof/abs/absUtil.c +0 -257
- data/ext/abc/src/proof/abs/absVta.c +0 -1764
- data/ext/abc/src/proof/abs/module.make +0 -16
- data/ext/abc/src/proof/acec/acec.c +0 -52
- data/ext/abc/src/proof/acec/acec.h +0 -98
- data/ext/abc/src/proof/acec/acec2Mult.c +0 -1211
- data/ext/abc/src/proof/acec/acecBo.c +0 -216
- data/ext/abc/src/proof/acec/acecCl.c +0 -445
- data/ext/abc/src/proof/acec/acecCo.c +0 -429
- data/ext/abc/src/proof/acec/acecCore.c +0 -553
- data/ext/abc/src/proof/acec/acecCover.c +0 -263
- data/ext/abc/src/proof/acec/acecFadds.c +0 -1247
- data/ext/abc/src/proof/acec/acecInt.h +0 -105
- data/ext/abc/src/proof/acec/acecMult.c +0 -623
- data/ext/abc/src/proof/acec/acecNorm.c +0 -226
- data/ext/abc/src/proof/acec/acecOrder.c +0 -254
- data/ext/abc/src/proof/acec/acecPa.c +0 -277
- data/ext/abc/src/proof/acec/acecPo.c +0 -655
- data/ext/abc/src/proof/acec/acecPolyn.c +0 -445
- data/ext/abc/src/proof/acec/acecPool.c +0 -428
- data/ext/abc/src/proof/acec/acecRe.c +0 -602
- data/ext/abc/src/proof/acec/acecSt.c +0 -422
- data/ext/abc/src/proof/acec/acecStruct.c +0 -271
- data/ext/abc/src/proof/acec/acecTree.c +0 -783
- data/ext/abc/src/proof/acec/acecUtil.c +0 -122
- data/ext/abc/src/proof/acec/acecXor.c +0 -434
- data/ext/abc/src/proof/acec/module.make +0 -19
- data/ext/abc/src/proof/cec/cec.c +0 -53
- data/ext/abc/src/proof/cec/cec.h +0 -240
- data/ext/abc/src/proof/cec/cecCec.c +0 -580
- data/ext/abc/src/proof/cec/cecChoice.c +0 -410
- data/ext/abc/src/proof/cec/cecClass.c +0 -931
- data/ext/abc/src/proof/cec/cecCore.c +0 -554
- data/ext/abc/src/proof/cec/cecCorr.c +0 -1229
- data/ext/abc/src/proof/cec/cecInt.h +0 -227
- data/ext/abc/src/proof/cec/cecIso.c +0 -375
- data/ext/abc/src/proof/cec/cecMan.c +0 -297
- data/ext/abc/src/proof/cec/cecPat.c +0 -578
- data/ext/abc/src/proof/cec/cecSat.c +0 -1040
- data/ext/abc/src/proof/cec/cecSatG.c +0 -1048
- data/ext/abc/src/proof/cec/cecSeq.c +0 -449
- data/ext/abc/src/proof/cec/cecSim.c +0 -53
- data/ext/abc/src/proof/cec/cecSimBack.c +0 -194
- data/ext/abc/src/proof/cec/cecSolve.c +0 -1107
- data/ext/abc/src/proof/cec/cecSplit.c +0 -849
- data/ext/abc/src/proof/cec/cecSweep.c +0 -301
- data/ext/abc/src/proof/cec/cecSynth.c +0 -433
- data/ext/abc/src/proof/cec/module.make +0 -15
- data/ext/abc/src/proof/dch/dch.h +0 -91
- data/ext/abc/src/proof/dch/dchAig.c +0 -119
- data/ext/abc/src/proof/dch/dchChoice.c +0 -552
- data/ext/abc/src/proof/dch/dchClass.c +0 -611
- data/ext/abc/src/proof/dch/dchCnf.c +0 -334
- data/ext/abc/src/proof/dch/dchCore.c +0 -161
- data/ext/abc/src/proof/dch/dchInt.h +0 -170
- data/ext/abc/src/proof/dch/dchMan.c +0 -191
- data/ext/abc/src/proof/dch/dchSat.c +0 -167
- data/ext/abc/src/proof/dch/dchSim.c +0 -297
- data/ext/abc/src/proof/dch/dchSimSat.c +0 -260
- data/ext/abc/src/proof/dch/dchSweep.c +0 -146
- data/ext/abc/src/proof/dch/module.make +0 -10
- data/ext/abc/src/proof/fra/fra.h +0 -389
- data/ext/abc/src/proof/fra/fraBmc.c +0 -453
- data/ext/abc/src/proof/fra/fraCec.c +0 -574
- data/ext/abc/src/proof/fra/fraClass.c +0 -862
- data/ext/abc/src/proof/fra/fraClau.c +0 -745
- data/ext/abc/src/proof/fra/fraClaus.c +0 -1877
- data/ext/abc/src/proof/fra/fraCnf.c +0 -289
- data/ext/abc/src/proof/fra/fraCore.c +0 -490
- data/ext/abc/src/proof/fra/fraHot.c +0 -476
- data/ext/abc/src/proof/fra/fraImp.c +0 -732
- data/ext/abc/src/proof/fra/fraInd.c +0 -712
- data/ext/abc/src/proof/fra/fraIndVer.c +0 -166
- data/ext/abc/src/proof/fra/fraLcr.c +0 -708
- data/ext/abc/src/proof/fra/fraMan.c +0 -314
- data/ext/abc/src/proof/fra/fraPart.c +0 -269
- data/ext/abc/src/proof/fra/fraSat.c +0 -571
- data/ext/abc/src/proof/fra/fraSec.c +0 -693
- data/ext/abc/src/proof/fra/fraSim.c +0 -1173
- data/ext/abc/src/proof/fra/fra_.c +0 -53
- data/ext/abc/src/proof/fra/module.make +0 -17
- data/ext/abc/src/proof/fraig/fraig.h +0 -257
- data/ext/abc/src/proof/fraig/fraigApi.c +0 -299
- data/ext/abc/src/proof/fraig/fraigCanon.c +0 -223
- data/ext/abc/src/proof/fraig/fraigChoice.c +0 -246
- data/ext/abc/src/proof/fraig/fraigFanout.c +0 -180
- data/ext/abc/src/proof/fraig/fraigFeed.c +0 -914
- data/ext/abc/src/proof/fraig/fraigInt.h +0 -436
- data/ext/abc/src/proof/fraig/fraigMan.c +0 -546
- data/ext/abc/src/proof/fraig/fraigMem.c +0 -251
- data/ext/abc/src/proof/fraig/fraigNode.c +0 -319
- data/ext/abc/src/proof/fraig/fraigPrime.c +0 -113
- data/ext/abc/src/proof/fraig/fraigSat.c +0 -1463
- data/ext/abc/src/proof/fraig/fraigTable.c +0 -664
- data/ext/abc/src/proof/fraig/fraigUtil.c +0 -1039
- data/ext/abc/src/proof/fraig/fraigVec.c +0 -550
- data/ext/abc/src/proof/fraig/module.make +0 -12
- data/ext/abc/src/proof/int/int.h +0 -96
- data/ext/abc/src/proof/int/intCheck.c +0 -305
- data/ext/abc/src/proof/int/intContain.c +0 -341
- data/ext/abc/src/proof/int/intCore.c +0 -412
- data/ext/abc/src/proof/int/intCtrex.c +0 -168
- data/ext/abc/src/proof/int/intDup.c +0 -184
- data/ext/abc/src/proof/int/intFrames.c +0 -124
- data/ext/abc/src/proof/int/intInt.h +0 -143
- data/ext/abc/src/proof/int/intInter.c +0 -145
- data/ext/abc/src/proof/int/intM114.c +0 -323
- data/ext/abc/src/proof/int/intM114p.c +0 -443
- data/ext/abc/src/proof/int/intMan.c +0 -165
- data/ext/abc/src/proof/int/intUtil.c +0 -108
- data/ext/abc/src/proof/int/module.make +0 -10
- data/ext/abc/src/proof/int2/int2.h +0 -90
- data/ext/abc/src/proof/int2/int2Bmc.c +0 -355
- data/ext/abc/src/proof/int2/int2Core.c +0 -335
- data/ext/abc/src/proof/int2/int2Int.h +0 -164
- data/ext/abc/src/proof/int2/int2Refine.c +0 -154
- data/ext/abc/src/proof/int2/int2Util.c +0 -152
- data/ext/abc/src/proof/int2/module.make +0 -4
- data/ext/abc/src/proof/live/arenaViolation.c +0 -549
- data/ext/abc/src/proof/live/combination.c +0 -463
- data/ext/abc/src/proof/live/disjunctiveMonotone.c +0 -757
- data/ext/abc/src/proof/live/kLiveConstraints.c +0 -177
- data/ext/abc/src/proof/live/kliveness.c +0 -816
- data/ext/abc/src/proof/live/liveness.c +0 -2575
- data/ext/abc/src/proof/live/liveness_sim.c +0 -849
- data/ext/abc/src/proof/live/ltl_parser.c +0 -839
- data/ext/abc/src/proof/live/module.make +0 -9
- data/ext/abc/src/proof/live/monotone.c +0 -507
- data/ext/abc/src/proof/pdr/module.make +0 -10
- data/ext/abc/src/proof/pdr/pdr.c +0 -53
- data/ext/abc/src/proof/pdr/pdr.h +0 -109
- data/ext/abc/src/proof/pdr/pdrClass.c +0 -223
- data/ext/abc/src/proof/pdr/pdrCnf.c +0 -455
- data/ext/abc/src/proof/pdr/pdrCore.c +0 -1451
- data/ext/abc/src/proof/pdr/pdrIncr.c +0 -1046
- data/ext/abc/src/proof/pdr/pdrInt.h +0 -275
- data/ext/abc/src/proof/pdr/pdrInv.c +0 -985
- data/ext/abc/src/proof/pdr/pdrMan.c +0 -549
- data/ext/abc/src/proof/pdr/pdrSat.c +0 -395
- data/ext/abc/src/proof/pdr/pdrTsim.c +0 -502
- data/ext/abc/src/proof/pdr/pdrTsim2.c +0 -550
- data/ext/abc/src/proof/pdr/pdrTsim3.c +0 -361
- data/ext/abc/src/proof/pdr/pdrUtil.c +0 -800
- data/ext/abc/src/proof/ssc/module.make +0 -5
- data/ext/abc/src/proof/ssc/ssc.h +0 -78
- data/ext/abc/src/proof/ssc/sscClass.c +0 -326
- data/ext/abc/src/proof/ssc/sscCore.c +0 -469
- data/ext/abc/src/proof/ssc/sscInt.h +0 -135
- data/ext/abc/src/proof/ssc/sscSat.c +0 -430
- data/ext/abc/src/proof/ssc/sscSim.c +0 -364
- data/ext/abc/src/proof/ssc/sscUtil.c +0 -173
- data/ext/abc/src/proof/ssw/module.make +0 -20
- data/ext/abc/src/proof/ssw/ssw.h +0 -170
- data/ext/abc/src/proof/ssw/sswAig.c +0 -258
- data/ext/abc/src/proof/ssw/sswBmc.c +0 -224
- data/ext/abc/src/proof/ssw/sswClass.c +0 -1170
- data/ext/abc/src/proof/ssw/sswCnf.c +0 -427
- data/ext/abc/src/proof/ssw/sswConstr.c +0 -718
- data/ext/abc/src/proof/ssw/sswCore.c +0 -539
- data/ext/abc/src/proof/ssw/sswDyn.c +0 -491
- data/ext/abc/src/proof/ssw/sswFilter.c +0 -493
- data/ext/abc/src/proof/ssw/sswInt.h +0 -302
- data/ext/abc/src/proof/ssw/sswIslands.c +0 -598
- data/ext/abc/src/proof/ssw/sswLcorr.c +0 -337
- data/ext/abc/src/proof/ssw/sswMan.c +0 -217
- data/ext/abc/src/proof/ssw/sswPairs.c +0 -480
- data/ext/abc/src/proof/ssw/sswPart.c +0 -140
- data/ext/abc/src/proof/ssw/sswRarity.c +0 -1385
- data/ext/abc/src/proof/ssw/sswRarity2.c +0 -518
- data/ext/abc/src/proof/ssw/sswSat.c +0 -307
- data/ext/abc/src/proof/ssw/sswSemi.c +0 -323
- data/ext/abc/src/proof/ssw/sswSim.c +0 -1406
- data/ext/abc/src/proof/ssw/sswSimSat.c +0 -124
- data/ext/abc/src/proof/ssw/sswSweep.c +0 -440
- data/ext/abc/src/proof/ssw/sswUnique.c +0 -196
- data/ext/abc/src/sat/bmc/bmc.c +0 -52
- data/ext/abc/src/sat/bmc/bmc.h +0 -205
- data/ext/abc/src/sat/bmc/bmcBCore.c +0 -273
- data/ext/abc/src/sat/bmc/bmcBmc.c +0 -377
- data/ext/abc/src/sat/bmc/bmcBmc2.c +0 -944
- data/ext/abc/src/sat/bmc/bmcBmc3.c +0 -1893
- data/ext/abc/src/sat/bmc/bmcBmcAnd.c +0 -1100
- data/ext/abc/src/sat/bmc/bmcBmcG.c +0 -455
- data/ext/abc/src/sat/bmc/bmcBmcS.c +0 -940
- data/ext/abc/src/sat/bmc/bmcBmci.c +0 -344
- data/ext/abc/src/sat/bmc/bmcCexCare.c +0 -476
- data/ext/abc/src/sat/bmc/bmcCexCut.c +0 -537
- data/ext/abc/src/sat/bmc/bmcCexDepth.c +0 -373
- data/ext/abc/src/sat/bmc/bmcCexMin1.c +0 -578
- data/ext/abc/src/sat/bmc/bmcCexMin2.c +0 -363
- data/ext/abc/src/sat/bmc/bmcCexTools.c +0 -852
- data/ext/abc/src/sat/bmc/bmcChain.c +0 -396
- data/ext/abc/src/sat/bmc/bmcClp.c +0 -1548
- data/ext/abc/src/sat/bmc/bmcEco.c +0 -312
- data/ext/abc/src/sat/bmc/bmcEnum.c +0 -223
- data/ext/abc/src/sat/bmc/bmcExpand.c +0 -172
- data/ext/abc/src/sat/bmc/bmcFault.c +0 -1710
- data/ext/abc/src/sat/bmc/bmcFx.c +0 -725
- data/ext/abc/src/sat/bmc/bmcGen.c +0 -193
- data/ext/abc/src/sat/bmc/bmcICheck.c +0 -540
- data/ext/abc/src/sat/bmc/bmcInse.c +0 -345
- data/ext/abc/src/sat/bmc/bmcLoad.c +0 -212
- data/ext/abc/src/sat/bmc/bmcMaj.c +0 -745
- data/ext/abc/src/sat/bmc/bmcMaj2.c +0 -852
- data/ext/abc/src/sat/bmc/bmcMaxi.c +0 -282
- data/ext/abc/src/sat/bmc/bmcMesh.c +0 -433
- data/ext/abc/src/sat/bmc/bmcMesh2.c +0 -449
- data/ext/abc/src/sat/bmc/bmcMulti.c +0 -296
- data/ext/abc/src/sat/bmc/bmcUnroll.c +0 -505
- data/ext/abc/src/sat/bmc/module.make +0 -31
- data/ext/abc/src/sat/bsat/license +0 -21
- data/ext/abc/src/sat/bsat/module.make +0 -14
- data/ext/abc/src/sat/bsat/satChecker.c +0 -193
- data/ext/abc/src/sat/bsat/satClause.h +0 -476
- data/ext/abc/src/sat/bsat/satInter.c +0 -1077
- data/ext/abc/src/sat/bsat/satInterA.c +0 -1090
- data/ext/abc/src/sat/bsat/satInterB.c +0 -1115
- data/ext/abc/src/sat/bsat/satInterP.c +0 -1096
- data/ext/abc/src/sat/bsat/satMem.c +0 -583
- data/ext/abc/src/sat/bsat/satMem.h +0 -85
- data/ext/abc/src/sat/bsat/satProof.c +0 -934
- data/ext/abc/src/sat/bsat/satProof2.h +0 -327
- data/ext/abc/src/sat/bsat/satSolver.c +0 -2417
- data/ext/abc/src/sat/bsat/satSolver.h +0 -639
- data/ext/abc/src/sat/bsat/satSolver2.c +0 -1998
- data/ext/abc/src/sat/bsat/satSolver2.h +0 -377
- data/ext/abc/src/sat/bsat/satSolver2i.c +0 -242
- data/ext/abc/src/sat/bsat/satSolver3.c +0 -2299
- data/ext/abc/src/sat/bsat/satSolver3.h +0 -622
- data/ext/abc/src/sat/bsat/satStore.c +0 -469
- data/ext/abc/src/sat/bsat/satStore.h +0 -158
- data/ext/abc/src/sat/bsat/satTrace.c +0 -112
- data/ext/abc/src/sat/bsat/satTruth.c +0 -299
- data/ext/abc/src/sat/bsat/satTruth.h +0 -89
- data/ext/abc/src/sat/bsat/satUtil.c +0 -358
- data/ext/abc/src/sat/bsat/satVec.h +0 -161
- data/ext/abc/src/sat/bsat2/AbcApi.cpp +0 -59
- data/ext/abc/src/sat/bsat2/Alg.h +0 -84
- data/ext/abc/src/sat/bsat2/Alloc.h +0 -131
- data/ext/abc/src/sat/bsat2/Dimacs.h +0 -89
- data/ext/abc/src/sat/bsat2/Heap.h +0 -149
- data/ext/abc/src/sat/bsat2/IntTypes.h +0 -47
- data/ext/abc/src/sat/bsat2/LICENSE +0 -21
- data/ext/abc/src/sat/bsat2/MainSat.cpp +0 -197
- data/ext/abc/src/sat/bsat2/MainSimp.cpp +0 -206
- data/ext/abc/src/sat/bsat2/Map.h +0 -193
- data/ext/abc/src/sat/bsat2/Options.cpp +0 -93
- data/ext/abc/src/sat/bsat2/Options.h +0 -387
- data/ext/abc/src/sat/bsat2/ParseUtils.h +0 -122
- data/ext/abc/src/sat/bsat2/Queue.h +0 -69
- data/ext/abc/src/sat/bsat2/README +0 -24
- data/ext/abc/src/sat/bsat2/ReleaseNotes-2.2.0.txt +0 -79
- data/ext/abc/src/sat/bsat2/SimpSolver.cpp +0 -720
- data/ext/abc/src/sat/bsat2/SimpSolver.h +0 -197
- data/ext/abc/src/sat/bsat2/Solver.cpp +0 -924
- data/ext/abc/src/sat/bsat2/Solver.h +0 -373
- data/ext/abc/src/sat/bsat2/SolverTypes.h +0 -407
- data/ext/abc/src/sat/bsat2/Sort.h +0 -98
- data/ext/abc/src/sat/bsat2/System.cpp +0 -95
- data/ext/abc/src/sat/bsat2/System.h +0 -60
- data/ext/abc/src/sat/bsat2/Vec.h +0 -130
- data/ext/abc/src/sat/bsat2/XAlloc.h +0 -45
- data/ext/abc/src/sat/bsat2/module.make +0 -7
- data/ext/abc/src/sat/bsat2/pstdint.h +0 -813
- data/ext/abc/src/sat/cnf/cnf.h +0 -202
- data/ext/abc/src/sat/cnf/cnfCore.c +0 -290
- data/ext/abc/src/sat/cnf/cnfCut.c +0 -376
- data/ext/abc/src/sat/cnf/cnfData.c +0 -4789
- data/ext/abc/src/sat/cnf/cnfFast.c +0 -697
- data/ext/abc/src/sat/cnf/cnfMan.c +0 -726
- data/ext/abc/src/sat/cnf/cnfMap.c +0 -362
- data/ext/abc/src/sat/cnf/cnfPost.c +0 -238
- data/ext/abc/src/sat/cnf/cnfUtil.c +0 -479
- data/ext/abc/src/sat/cnf/cnfWrite.c +0 -806
- data/ext/abc/src/sat/cnf/cnf_.c +0 -53
- data/ext/abc/src/sat/cnf/module.make +0 -9
- data/ext/abc/src/sat/csat/csat_apis.c +0 -778
- data/ext/abc/src/sat/csat/csat_apis.h +0 -226
- data/ext/abc/src/sat/csat/module.make +0 -1
- data/ext/abc/src/sat/glucose/AbcGlucose.cpp +0 -1372
- data/ext/abc/src/sat/glucose/AbcGlucose.h +0 -110
- data/ext/abc/src/sat/glucose/AbcGlucoseCmd.cpp +0 -144
- data/ext/abc/src/sat/glucose/Alg.h +0 -84
- data/ext/abc/src/sat/glucose/Alloc.h +0 -132
- data/ext/abc/src/sat/glucose/BoundedQueue.h +0 -110
- data/ext/abc/src/sat/glucose/Constants.h +0 -33
- data/ext/abc/src/sat/glucose/Dimacs.h +0 -89
- data/ext/abc/src/sat/glucose/Glucose.cpp +0 -1493
- data/ext/abc/src/sat/glucose/Heap.h +0 -150
- data/ext/abc/src/sat/glucose/IntTypes.h +0 -47
- data/ext/abc/src/sat/glucose/Map.h +0 -193
- data/ext/abc/src/sat/glucose/Options.cpp +0 -92
- data/ext/abc/src/sat/glucose/Options.h +0 -388
- data/ext/abc/src/sat/glucose/ParseUtils.h +0 -151
- data/ext/abc/src/sat/glucose/Queue.h +0 -69
- data/ext/abc/src/sat/glucose/SimpSolver.cpp +0 -774
- data/ext/abc/src/sat/glucose/SimpSolver.h +0 -204
- data/ext/abc/src/sat/glucose/Solver.h +0 -491
- data/ext/abc/src/sat/glucose/SolverTypes.h +0 -434
- data/ext/abc/src/sat/glucose/Sort.h +0 -98
- data/ext/abc/src/sat/glucose/System.cpp +0 -95
- data/ext/abc/src/sat/glucose/System.h +0 -60
- data/ext/abc/src/sat/glucose/Vec.h +0 -130
- data/ext/abc/src/sat/glucose/XAlloc.h +0 -47
- data/ext/abc/src/sat/glucose/module.make +0 -6
- data/ext/abc/src/sat/glucose/pstdint.h +0 -919
- data/ext/abc/src/sat/glucose/stdint.h +0 -1628
- data/ext/abc/src/sat/lsat/solver.h +0 -132
- data/ext/abc/src/sat/msat/module.make +0 -13
- data/ext/abc/src/sat/msat/msat.h +0 -168
- data/ext/abc/src/sat/msat/msatActivity.c +0 -165
- data/ext/abc/src/sat/msat/msatClause.c +0 -537
- data/ext/abc/src/sat/msat/msatClauseVec.c +0 -237
- data/ext/abc/src/sat/msat/msatInt.h +0 -295
- data/ext/abc/src/sat/msat/msatMem.c +0 -534
- data/ext/abc/src/sat/msat/msatOrderH.c +0 -415
- data/ext/abc/src/sat/msat/msatOrderJ.c +0 -477
- data/ext/abc/src/sat/msat/msatQueue.c +0 -162
- data/ext/abc/src/sat/msat/msatRead.c +0 -274
- data/ext/abc/src/sat/msat/msatSolverApi.c +0 -505
- data/ext/abc/src/sat/msat/msatSolverCore.c +0 -215
- data/ext/abc/src/sat/msat/msatSolverIo.c +0 -182
- data/ext/abc/src/sat/msat/msatSolverSearch.c +0 -634
- data/ext/abc/src/sat/msat/msatSort.c +0 -178
- data/ext/abc/src/sat/msat/msatVec.c +0 -500
- data/ext/abc/src/sat/proof/pr.c +0 -1264
- data/ext/abc/src/sat/proof/pr.h +0 -69
- data/ext/abc/src/sat/proof/stats.txt +0 -66
- data/ext/abc/src/sat/psat/m114p.h +0 -47
- data/ext/abc/src/sat/psat/m114p_types.h +0 -13
- data/ext/abc/src/sat/psat/module.make +0 -1
- data/ext/abc/src/sat/satoko/LICENSE +0 -22
- data/ext/abc/src/sat/satoko/act_clause.h +0 -43
- data/ext/abc/src/sat/satoko/act_var.h +0 -53
- data/ext/abc/src/sat/satoko/cdb.h +0 -106
- data/ext/abc/src/sat/satoko/clause.h +0 -77
- data/ext/abc/src/sat/satoko/cnf_reader.c +0 -157
- data/ext/abc/src/sat/satoko/module.make +0 -3
- data/ext/abc/src/sat/satoko/satoko.h +0 -147
- data/ext/abc/src/sat/satoko/solver.c +0 -771
- data/ext/abc/src/sat/satoko/solver.h +0 -260
- data/ext/abc/src/sat/satoko/solver_api.c +0 -669
- data/ext/abc/src/sat/satoko/types.h +0 -39
- data/ext/abc/src/sat/satoko/utils/b_queue.h +0 -81
- data/ext/abc/src/sat/satoko/utils/heap.h +0 -178
- data/ext/abc/src/sat/satoko/utils/mem.h +0 -23
- data/ext/abc/src/sat/satoko/utils/misc.h +0 -35
- data/ext/abc/src/sat/satoko/utils/sdbl.h +0 -133
- data/ext/abc/src/sat/satoko/utils/sort.h +0 -65
- data/ext/abc/src/sat/satoko/utils/vec/vec_char.h +0 -260
- data/ext/abc/src/sat/satoko/utils/vec/vec_flt.h +0 -246
- data/ext/abc/src/sat/satoko/utils/vec/vec_int.h +0 -240
- data/ext/abc/src/sat/satoko/utils/vec/vec_sdbl.h +0 -253
- data/ext/abc/src/sat/satoko/utils/vec/vec_uint.h +0 -268
- data/ext/abc/src/sat/satoko/watch_list.h +0 -203
- data/ext/abc/src/sat/xsat/license +0 -39
- data/ext/abc/src/sat/xsat/module.make +0 -3
- data/ext/abc/src/sat/xsat/xsat.h +0 -59
- data/ext/abc/src/sat/xsat/xsatBQueue.h +0 -190
- data/ext/abc/src/sat/xsat/xsatClause.h +0 -109
- data/ext/abc/src/sat/xsat/xsatCnfReader.c +0 -236
- data/ext/abc/src/sat/xsat/xsatHeap.h +0 -330
- data/ext/abc/src/sat/xsat/xsatMemory.h +0 -222
- data/ext/abc/src/sat/xsat/xsatSolver.c +0 -1003
- data/ext/abc/src/sat/xsat/xsatSolver.h +0 -248
- data/ext/abc/src/sat/xsat/xsatSolverAPI.c +0 -346
- data/ext/abc/src/sat/xsat/xsatUtils.h +0 -106
- data/ext/abc/src/sat/xsat/xsatWatchList.h +0 -269
- data/ext/abc/src/starter.c +0 -190
- data/ext/abc/src/template.c +0 -111
- data/ext/extconf.rb +0 -14
- data/ext/ruby_abc_wrapper.h +0 -13
@@ -1,1235 +0,0 @@
|
|
1
|
-
/**CFile****************************************************************
|
2
|
-
|
3
|
-
FileName [extraBddCas.c]
|
4
|
-
|
5
|
-
PackageName [extra]
|
6
|
-
|
7
|
-
Synopsis [Procedures related to LUT cascade synthesis.]
|
8
|
-
|
9
|
-
Author [Alan Mishchenko]
|
10
|
-
|
11
|
-
Affiliation [UC Berkeley]
|
12
|
-
|
13
|
-
Date [Ver. 2.0. Started - September 1, 2003.]
|
14
|
-
|
15
|
-
Revision [$Id: extraBddCas.c,v 1.0 2003/05/21 18:03:50 alanmi Exp $]
|
16
|
-
|
17
|
-
***********************************************************************/
|
18
|
-
|
19
|
-
#include "extraBdd.h"
|
20
|
-
|
21
|
-
ABC_NAMESPACE_IMPL_START
|
22
|
-
|
23
|
-
|
24
|
-
/*---------------------------------------------------------------------------*/
|
25
|
-
/* Constant declarations */
|
26
|
-
/*---------------------------------------------------------------------------*/
|
27
|
-
|
28
|
-
/*---------------------------------------------------------------------------*/
|
29
|
-
/* Stucture declarations */
|
30
|
-
/*---------------------------------------------------------------------------*/
|
31
|
-
|
32
|
-
/*---------------------------------------------------------------------------*/
|
33
|
-
/* Type declarations */
|
34
|
-
/*---------------------------------------------------------------------------*/
|
35
|
-
|
36
|
-
// the table to store cofactor operations
|
37
|
-
#define _TABLESIZE_COF 51113
|
38
|
-
typedef struct
|
39
|
-
{
|
40
|
-
unsigned Sign;
|
41
|
-
DdNode * Arg1;
|
42
|
-
} _HashEntry_cof;
|
43
|
-
_HashEntry_cof HHTable1[_TABLESIZE_COF];
|
44
|
-
|
45
|
-
// the table to store the result of computation of the number of minterms
|
46
|
-
#define _TABLESIZE_MINT 15113
|
47
|
-
typedef struct
|
48
|
-
{
|
49
|
-
DdNode * Arg1;
|
50
|
-
unsigned Arg2;
|
51
|
-
unsigned Res;
|
52
|
-
} _HashEntry_mint;
|
53
|
-
_HashEntry_mint HHTable2[_TABLESIZE_MINT];
|
54
|
-
|
55
|
-
typedef struct
|
56
|
-
{
|
57
|
-
int nEdges; // the number of in-coming edges of the node
|
58
|
-
DdNode * bSum; // the sum of paths of the incoming edges
|
59
|
-
} traventry;
|
60
|
-
|
61
|
-
// the signature used for hashing
|
62
|
-
static unsigned s_Signature = 1;
|
63
|
-
|
64
|
-
static int s_CutLevel = 0;
|
65
|
-
|
66
|
-
/*---------------------------------------------------------------------------*/
|
67
|
-
/* Variable declarations */
|
68
|
-
/*---------------------------------------------------------------------------*/
|
69
|
-
|
70
|
-
// because the proposed solution to the optimal encoding problem has exponential complexity
|
71
|
-
// we limit the depth of the branch and bound procedure to 5 levels
|
72
|
-
static int s_MaxDepth = 5;
|
73
|
-
|
74
|
-
static int s_nVarsBest; // the number of vars in the best ordering
|
75
|
-
static int s_VarOrderBest[32]; // storing the best ordering of vars in the "simple encoding"
|
76
|
-
static int s_VarOrderCur[32]; // storing the current ordering of vars
|
77
|
-
|
78
|
-
// the place to store the supports of the encoded function
|
79
|
-
static DdNode * s_Field[8][256]; // the size should be K, 2^K, where K is no less than MaxDepth
|
80
|
-
static DdNode * s_Encoded; // this is the original function
|
81
|
-
static DdNode * s_VarAll; // the set of all column variables
|
82
|
-
static int s_MultiStart; // the total number of encoding variables used
|
83
|
-
// the array field now stores the supports
|
84
|
-
|
85
|
-
static DdNode ** s_pbTemp; // the temporary storage for the columns
|
86
|
-
|
87
|
-
static int s_BackTracks;
|
88
|
-
static int s_BackTrackLimit = 100;
|
89
|
-
|
90
|
-
static DdNode * s_Terminal; // the terminal value for counting minterms
|
91
|
-
|
92
|
-
|
93
|
-
static int s_EncodingVarsLevel;
|
94
|
-
|
95
|
-
|
96
|
-
/*---------------------------------------------------------------------------*/
|
97
|
-
/* Macro declarations */
|
98
|
-
/*---------------------------------------------------------------------------*/
|
99
|
-
|
100
|
-
|
101
|
-
/**AutomaticStart*************************************************************/
|
102
|
-
|
103
|
-
/*---------------------------------------------------------------------------*/
|
104
|
-
/* Static function prototypes */
|
105
|
-
/*---------------------------------------------------------------------------*/
|
106
|
-
|
107
|
-
static DdNode * CreateTheCodes_rec( DdManager * dd, DdNode * bEncoded, int Level, DdNode ** pCVars );
|
108
|
-
static void EvaluateEncodings_rec( DdManager * dd, DdNode * bVarsCol, int nVarsCol, int nMulti, int Level );
|
109
|
-
// functions called from EvaluateEncodings_rec()
|
110
|
-
static DdNode * ComputeVarSetAndCountMinterms( DdManager * dd, DdNode * bVars, DdNode * bVarTop, unsigned * Cost );
|
111
|
-
static DdNode * ComputeVarSetAndCountMinterms2( DdManager * dd, DdNode * bVars, DdNode * bVarTop, unsigned * Cost );
|
112
|
-
unsigned Extra_CountCofactorMinterms( DdManager * dd, DdNode * bFunc, DdNode * bVarsCof, DdNode * bVarsAll );
|
113
|
-
static unsigned Extra_CountMintermsSimple( DdNode * bFunc, unsigned max );
|
114
|
-
|
115
|
-
static void CountNodeVisits_rec( DdManager * dd, DdNode * aFunc, st__table * Visited );
|
116
|
-
static void CollectNodesAndComputePaths_rec( DdManager * dd, DdNode * aFunc, DdNode * bCube, st__table * Visited, st__table * CutNodes );
|
117
|
-
|
118
|
-
/**AutomaticEnd***************************************************************/
|
119
|
-
|
120
|
-
|
121
|
-
/*---------------------------------------------------------------------------*/
|
122
|
-
/* Definition of exported functions */
|
123
|
-
/*---------------------------------------------------------------------------*/
|
124
|
-
|
125
|
-
/**Function********************************************************************
|
126
|
-
|
127
|
-
Synopsis [Performs the binary encoding of the set of function using the given vars.]
|
128
|
-
|
129
|
-
Description [Performs a straight binary encoding of the set of functions using
|
130
|
-
the variable cubes formed from the given set of variables. ]
|
131
|
-
|
132
|
-
SideEffects []
|
133
|
-
|
134
|
-
SeeAlso []
|
135
|
-
|
136
|
-
******************************************************************************/
|
137
|
-
DdNode *
|
138
|
-
Extra_bddEncodingBinary(
|
139
|
-
DdManager * dd,
|
140
|
-
DdNode ** pbFuncs, // pbFuncs is the array of columns to be encoded
|
141
|
-
int nFuncs, // nFuncs is the number of columns in the array
|
142
|
-
DdNode ** pbVars, // pbVars is the array of variables to use for the codes
|
143
|
-
int nVars ) // nVars is the column multiplicity, [log2(nFuncs)]
|
144
|
-
{
|
145
|
-
int i;
|
146
|
-
DdNode * bResult;
|
147
|
-
DdNode * bCube, * bTemp, * bProd;
|
148
|
-
|
149
|
-
assert( nVars >= Abc_Base2Log(nFuncs) );
|
150
|
-
|
151
|
-
bResult = b0; Cudd_Ref( bResult );
|
152
|
-
for ( i = 0; i < nFuncs; i++ )
|
153
|
-
{
|
154
|
-
bCube = Extra_bddBitsToCube( dd, i, nVars, pbVars, 1 ); Cudd_Ref( bCube );
|
155
|
-
bProd = Cudd_bddAnd( dd, bCube, pbFuncs[i] ); Cudd_Ref( bProd );
|
156
|
-
Cudd_RecursiveDeref( dd, bCube );
|
157
|
-
|
158
|
-
bResult = Cudd_bddOr( dd, bProd, bTemp = bResult ); Cudd_Ref( bResult );
|
159
|
-
Cudd_RecursiveDeref( dd, bTemp );
|
160
|
-
Cudd_RecursiveDeref( dd, bProd );
|
161
|
-
}
|
162
|
-
|
163
|
-
Cudd_Deref( bResult );
|
164
|
-
return bResult;
|
165
|
-
} /* end of Extra_bddEncodingBinary */
|
166
|
-
|
167
|
-
|
168
|
-
/**Function********************************************************************
|
169
|
-
|
170
|
-
Synopsis [Solves the column encoding problem using a sophisticated method.]
|
171
|
-
|
172
|
-
Description [The encoding is based on the idea of deriving functions which
|
173
|
-
depend on only one variable, which corresponds to the case of non-disjoint
|
174
|
-
decompostion. It is assumed that the variables pCVars are ordered below the variables
|
175
|
-
representing the solumns, and the first variable pCVars[0] is the topmost one.]
|
176
|
-
|
177
|
-
SideEffects []
|
178
|
-
|
179
|
-
SeeAlso [Extra_bddEncodingBinary]
|
180
|
-
|
181
|
-
******************************************************************************/
|
182
|
-
|
183
|
-
DdNode *
|
184
|
-
Extra_bddEncodingNonStrict(
|
185
|
-
DdManager * dd,
|
186
|
-
DdNode ** pbColumns, // pbColumns is the array of columns to be encoded;
|
187
|
-
int nColumns, // nColumns is the number of columns in the array
|
188
|
-
DdNode * bVarsCol, // bVarsCol is the cube of variables on which the columns depend
|
189
|
-
DdNode ** pCVars, // pCVars is the array of variables to use for the codes
|
190
|
-
int nMulti, // nMulti is the column multiplicity, [log2(nColumns)]
|
191
|
-
int * pSimple ) // pSimple gets the number of code variables taken from the input varibles without change
|
192
|
-
{
|
193
|
-
DdNode * bEncoded, * bResult;
|
194
|
-
int nVarsCol = Cudd_SupportSize(dd,bVarsCol);
|
195
|
-
abctime clk;
|
196
|
-
|
197
|
-
// cannot work with more that 32-bit codes
|
198
|
-
assert( nMulti < 32 );
|
199
|
-
|
200
|
-
// perform the preliminary encoding using the straight binary code
|
201
|
-
bEncoded = Extra_bddEncodingBinary( dd, pbColumns, nColumns, pCVars, nMulti ); Cudd_Ref( bEncoded );
|
202
|
-
//printf( "Node count = %d", Cudd_DagSize(bEncoded) );
|
203
|
-
|
204
|
-
// set the backgroup value for counting minterms
|
205
|
-
s_Terminal = b0;
|
206
|
-
// set the level of the encoding variables
|
207
|
-
s_EncodingVarsLevel = dd->invperm[pCVars[0]->index];
|
208
|
-
|
209
|
-
// the current number of backtracks
|
210
|
-
s_BackTracks = 0;
|
211
|
-
// the variables that are cofactored on the topmost level where everything starts (no vars)
|
212
|
-
s_Field[0][0] = b1;
|
213
|
-
// the size of the best set of "simple" encoding variables found so far
|
214
|
-
s_nVarsBest = 0;
|
215
|
-
|
216
|
-
// set the relation to be accessible to traversal procedures
|
217
|
-
s_Encoded = bEncoded;
|
218
|
-
// the set of all vars to be accessible to traversal procedures
|
219
|
-
s_VarAll = bVarsCol;
|
220
|
-
// the column multiplicity
|
221
|
-
s_MultiStart = nMulti;
|
222
|
-
|
223
|
-
|
224
|
-
clk = Abc_Clock();
|
225
|
-
// find the simplest encoding
|
226
|
-
if ( nColumns > 2 )
|
227
|
-
EvaluateEncodings_rec( dd, bVarsCol, nVarsCol, nMulti, 1 );
|
228
|
-
// printf( "The number of backtracks = %d\n", s_BackTracks );
|
229
|
-
// s_EncSearchTime += Abc_Clock() - clk;
|
230
|
-
|
231
|
-
// allocate the temporary storage for the columns
|
232
|
-
s_pbTemp = (DdNode **)ABC_ALLOC( char, nColumns * sizeof(DdNode *) );
|
233
|
-
|
234
|
-
// clk = Abc_Clock();
|
235
|
-
bResult = CreateTheCodes_rec( dd, bEncoded, 0, pCVars ); Cudd_Ref( bResult );
|
236
|
-
// s_EncComputeTime += Abc_Clock() - clk;
|
237
|
-
|
238
|
-
// delocate the preliminarily encoded set
|
239
|
-
Cudd_RecursiveDeref( dd, bEncoded );
|
240
|
-
// Cudd_RecursiveDeref( dd, aEncoded );
|
241
|
-
|
242
|
-
ABC_FREE( s_pbTemp );
|
243
|
-
|
244
|
-
*pSimple = s_nVarsBest;
|
245
|
-
Cudd_Deref( bResult );
|
246
|
-
return bResult;
|
247
|
-
}
|
248
|
-
|
249
|
-
/**Function********************************************************************
|
250
|
-
|
251
|
-
Synopsis [Collects the nodes under the cut and, for each node, computes the sum of paths leading to it from the root.]
|
252
|
-
|
253
|
-
Description [The table returned contains the set of BDD nodes pointed to under the cut
|
254
|
-
and, for each node, the BDD of the sum of paths leading to this node from the root
|
255
|
-
The sums of paths in the table are referenced. CutLevel is the first DD level
|
256
|
-
considered to be under the cut.]
|
257
|
-
|
258
|
-
SideEffects []
|
259
|
-
|
260
|
-
SeeAlso [Extra_bddNodePaths]
|
261
|
-
|
262
|
-
******************************************************************************/
|
263
|
-
st__table * Extra_bddNodePathsUnderCut( DdManager * dd, DdNode * bFunc, int CutLevel )
|
264
|
-
{
|
265
|
-
st__table * Visited; // temporary table to remember the visited nodes
|
266
|
-
st__table * CutNodes; // the result goes here
|
267
|
-
st__table * Result; // the result goes here
|
268
|
-
DdNode * aFunc;
|
269
|
-
|
270
|
-
s_CutLevel = CutLevel;
|
271
|
-
|
272
|
-
Result = st__init_table( st__ptrcmp, st__ptrhash);;
|
273
|
-
// the terminal cases
|
274
|
-
if ( Cudd_IsConstant( bFunc ) )
|
275
|
-
{
|
276
|
-
if ( bFunc == b1 )
|
277
|
-
{
|
278
|
-
st__insert( Result, (char*)b1, (char*)b1 );
|
279
|
-
Cudd_Ref( b1 );
|
280
|
-
Cudd_Ref( b1 );
|
281
|
-
}
|
282
|
-
else
|
283
|
-
{
|
284
|
-
st__insert( Result, (char*)b0, (char*)b0 );
|
285
|
-
Cudd_Ref( b0 );
|
286
|
-
Cudd_Ref( b0 );
|
287
|
-
}
|
288
|
-
return Result;
|
289
|
-
}
|
290
|
-
|
291
|
-
// create the ADD to simplify processing (no complemented edges)
|
292
|
-
aFunc = Cudd_BddToAdd( dd, bFunc ); Cudd_Ref( aFunc );
|
293
|
-
|
294
|
-
// Step 1: Start the tables and collect information about the nodes above the cut
|
295
|
-
// this information tells how many edges point to each node
|
296
|
-
Visited = st__init_table( st__ptrcmp, st__ptrhash);;
|
297
|
-
CutNodes = st__init_table( st__ptrcmp, st__ptrhash);;
|
298
|
-
|
299
|
-
CountNodeVisits_rec( dd, aFunc, Visited );
|
300
|
-
|
301
|
-
// Step 2: Traverse the BDD using the visited table and compute the sum of paths
|
302
|
-
CollectNodesAndComputePaths_rec( dd, aFunc, b1, Visited, CutNodes );
|
303
|
-
|
304
|
-
// at this point the table of cut nodes is ready and the table of visited is useless
|
305
|
-
{
|
306
|
-
st__generator * gen;
|
307
|
-
DdNode * aNode;
|
308
|
-
traventry * p;
|
309
|
-
st__foreach_item( Visited, gen, (const char**)&aNode, (char**)&p )
|
310
|
-
{
|
311
|
-
Cudd_RecursiveDeref( dd, p->bSum );
|
312
|
-
ABC_FREE( p );
|
313
|
-
}
|
314
|
-
st__free_table( Visited );
|
315
|
-
}
|
316
|
-
|
317
|
-
// go through the table CutNodes and create the BDD and the path to be returned
|
318
|
-
{
|
319
|
-
st__generator * gen;
|
320
|
-
DdNode * aNode, * bNode, * bSum;
|
321
|
-
st__foreach_item( CutNodes, gen, (const char**)&aNode, (char**)&bSum)
|
322
|
-
{
|
323
|
-
// aNode is not referenced, because aFunc is holding it
|
324
|
-
bNode = Cudd_addBddPattern( dd, aNode ); Cudd_Ref( bNode );
|
325
|
-
st__insert( Result, (char*)bNode, (char*)bSum );
|
326
|
-
// the new table takes both refs
|
327
|
-
}
|
328
|
-
st__free_table( CutNodes );
|
329
|
-
}
|
330
|
-
|
331
|
-
// dereference the ADD
|
332
|
-
Cudd_RecursiveDeref( dd, aFunc );
|
333
|
-
|
334
|
-
// return the table
|
335
|
-
return Result;
|
336
|
-
|
337
|
-
} /* end of Extra_bddNodePathsUnderCut */
|
338
|
-
|
339
|
-
/**Function********************************************************************
|
340
|
-
|
341
|
-
Synopsis [Collects the nodes under the cut in the ADD starting from the given set of ADD nodes.]
|
342
|
-
|
343
|
-
Description [Takes the array, paNodes, of ADD nodes to start the traversal,
|
344
|
-
the array, pbCubes, of BDD cubes to start the traversal with in each node,
|
345
|
-
and the number, nNodes, of ADD nodes and BDD cubes in paNodes and pbCubes.
|
346
|
-
Returns the number of columns found. Fills in paNodesRes (pbCubesRes)
|
347
|
-
with the set of ADD columns (BDD paths). These arrays should be allocated
|
348
|
-
by the user.]
|
349
|
-
|
350
|
-
SideEffects []
|
351
|
-
|
352
|
-
SeeAlso [Extra_bddNodePaths]
|
353
|
-
|
354
|
-
******************************************************************************/
|
355
|
-
int Extra_bddNodePathsUnderCutArray( DdManager * dd, DdNode ** paNodes, DdNode ** pbCubes, int nNodes, DdNode ** paNodesRes, DdNode ** pbCubesRes, int CutLevel )
|
356
|
-
{
|
357
|
-
st__table * Visited; // temporary table to remember the visited nodes
|
358
|
-
st__table * CutNodes; // the nodes under the cut go here
|
359
|
-
int i, Counter;
|
360
|
-
|
361
|
-
s_CutLevel = CutLevel;
|
362
|
-
|
363
|
-
// there should be some nodes
|
364
|
-
assert( nNodes > 0 );
|
365
|
-
if ( nNodes == 1 && Cudd_IsConstant( paNodes[0] ) )
|
366
|
-
{
|
367
|
-
if ( paNodes[0] == a1 )
|
368
|
-
{
|
369
|
-
paNodesRes[0] = a1; Cudd_Ref( a1 );
|
370
|
-
pbCubesRes[0] = pbCubes[0]; Cudd_Ref( pbCubes[0] );
|
371
|
-
}
|
372
|
-
else
|
373
|
-
{
|
374
|
-
paNodesRes[0] = a0; Cudd_Ref( a0 );
|
375
|
-
pbCubesRes[0] = pbCubes[0]; Cudd_Ref( pbCubes[0] );
|
376
|
-
}
|
377
|
-
return 1;
|
378
|
-
}
|
379
|
-
|
380
|
-
// Step 1: Start the table and collect information about the nodes above the cut
|
381
|
-
// this information tells how many edges point to each node
|
382
|
-
CutNodes = st__init_table( st__ptrcmp, st__ptrhash);;
|
383
|
-
Visited = st__init_table( st__ptrcmp, st__ptrhash);;
|
384
|
-
|
385
|
-
for ( i = 0; i < nNodes; i++ )
|
386
|
-
CountNodeVisits_rec( dd, paNodes[i], Visited );
|
387
|
-
|
388
|
-
// Step 2: Traverse the BDD using the visited table and compute the sum of paths
|
389
|
-
for ( i = 0; i < nNodes; i++ )
|
390
|
-
CollectNodesAndComputePaths_rec( dd, paNodes[i], pbCubes[i], Visited, CutNodes );
|
391
|
-
|
392
|
-
// at this point, the table of cut nodes is ready and the table of visited is useless
|
393
|
-
{
|
394
|
-
st__generator * gen;
|
395
|
-
DdNode * aNode;
|
396
|
-
traventry * p;
|
397
|
-
st__foreach_item( Visited, gen, (const char**)&aNode, (char**)&p )
|
398
|
-
{
|
399
|
-
Cudd_RecursiveDeref( dd, p->bSum );
|
400
|
-
ABC_FREE( p );
|
401
|
-
}
|
402
|
-
st__free_table( Visited );
|
403
|
-
}
|
404
|
-
|
405
|
-
// go through the table CutNodes and create the BDD and the path to be returned
|
406
|
-
{
|
407
|
-
st__generator * gen;
|
408
|
-
DdNode * aNode, * bSum;
|
409
|
-
Counter = 0;
|
410
|
-
st__foreach_item( CutNodes, gen, (const char**)&aNode, (char**)&bSum)
|
411
|
-
{
|
412
|
-
paNodesRes[Counter] = aNode; Cudd_Ref( aNode );
|
413
|
-
pbCubesRes[Counter] = bSum;
|
414
|
-
Counter++;
|
415
|
-
}
|
416
|
-
st__free_table( CutNodes );
|
417
|
-
}
|
418
|
-
|
419
|
-
// return the number of cofactors found
|
420
|
-
return Counter;
|
421
|
-
|
422
|
-
} /* end of Extra_bddNodePathsUnderCutArray */
|
423
|
-
|
424
|
-
/**Function*************************************************************
|
425
|
-
|
426
|
-
Synopsis [Collects all the BDD nodes into the table.]
|
427
|
-
|
428
|
-
Description []
|
429
|
-
|
430
|
-
SideEffects []
|
431
|
-
|
432
|
-
SeeAlso []
|
433
|
-
|
434
|
-
***********************************************************************/
|
435
|
-
void extraCollectNodes( DdNode * Func, st__table * tNodes )
|
436
|
-
{
|
437
|
-
DdNode * FuncR;
|
438
|
-
FuncR = Cudd_Regular(Func);
|
439
|
-
if ( st__find_or_add( tNodes, (char*)FuncR, NULL ) )
|
440
|
-
return;
|
441
|
-
if ( cuddIsConstant(FuncR) )
|
442
|
-
return;
|
443
|
-
extraCollectNodes( cuddE(FuncR), tNodes );
|
444
|
-
extraCollectNodes( cuddT(FuncR), tNodes );
|
445
|
-
}
|
446
|
-
|
447
|
-
/**Function*************************************************************
|
448
|
-
|
449
|
-
Synopsis [Collects all the nodes of one DD into the table.]
|
450
|
-
|
451
|
-
Description []
|
452
|
-
|
453
|
-
SideEffects []
|
454
|
-
|
455
|
-
SeeAlso []
|
456
|
-
|
457
|
-
***********************************************************************/
|
458
|
-
st__table * Extra_CollectNodes( DdNode * Func )
|
459
|
-
{
|
460
|
-
st__table * tNodes;
|
461
|
-
tNodes = st__init_table( st__ptrcmp, st__ptrhash );
|
462
|
-
extraCollectNodes( Func, tNodes );
|
463
|
-
return tNodes;
|
464
|
-
}
|
465
|
-
|
466
|
-
/**Function*************************************************************
|
467
|
-
|
468
|
-
Synopsis [Updates the topmost level from which the given node is referenced.]
|
469
|
-
|
470
|
-
Description [Takes the table which maps each BDD nodes (including the constants)
|
471
|
-
into the topmost level on which this node counts as a cofactor. Takes the topmost
|
472
|
-
level, on which this node counts as a cofactor (see Extra_ProfileWidthFast().
|
473
|
-
Takes the node, for which the table entry should be updated.]
|
474
|
-
|
475
|
-
SideEffects []
|
476
|
-
|
477
|
-
SeeAlso []
|
478
|
-
|
479
|
-
***********************************************************************/
|
480
|
-
void extraProfileUpdateTopLevel( st__table * tNodeTopRef, int TopLevelNew, DdNode * node )
|
481
|
-
{
|
482
|
-
int * pTopLevel;
|
483
|
-
|
484
|
-
if ( st__find_or_add( tNodeTopRef, (char*)node, (char***)&pTopLevel ) )
|
485
|
-
{ // the node is already referenced
|
486
|
-
// the current top level should be updated if it is larger than the new level
|
487
|
-
if ( *pTopLevel > TopLevelNew )
|
488
|
-
*pTopLevel = TopLevelNew;
|
489
|
-
}
|
490
|
-
else
|
491
|
-
{ // the node is not referenced
|
492
|
-
// its level should be set to the current new level
|
493
|
-
*pTopLevel = TopLevelNew;
|
494
|
-
}
|
495
|
-
}
|
496
|
-
/**Function*************************************************************
|
497
|
-
|
498
|
-
Synopsis [Fast computation of the BDD profile.]
|
499
|
-
|
500
|
-
Description [The array to store the profile is given by the user and should
|
501
|
-
contain at least as many entries as there is the maximum of the BDD/ZDD
|
502
|
-
size of the manager PLUS ONE.
|
503
|
-
When we say that the widths of the DD on level L is W, we mean the following.
|
504
|
-
Let us create the cut between the level L-1 and the level L and count the number
|
505
|
-
of different DD nodes pointed to across the cut. This number is the width W.
|
506
|
-
From this it follows the on level 0, the width is equal to the number of external
|
507
|
-
pointers to the considered DDs. If there is only one DD, then the profile on
|
508
|
-
level 0 is always 1. If this DD is rooted in the topmost variable, then the width
|
509
|
-
on level 1 is always 2, etc. The width at the level equal to dd->size is the
|
510
|
-
number of terminal nodes in the DD. (Because we consider the first level #0
|
511
|
-
and the last level #dd->size, the profile array should contain dd->size+1 entries.)
|
512
|
-
]
|
513
|
-
|
514
|
-
SideEffects [This procedure will not work for BDDs w/ complement edges, only for ADDs and ZDDs]
|
515
|
-
|
516
|
-
SeeAlso []
|
517
|
-
|
518
|
-
***********************************************************************/
|
519
|
-
int Extra_ProfileWidth( DdManager * dd, DdNode * Func, int * pProfile, int CutLevel )
|
520
|
-
{
|
521
|
-
st__generator * gen;
|
522
|
-
st__table * tNodeTopRef; // this table stores the top level from which this node is pointed to
|
523
|
-
st__table * tNodes;
|
524
|
-
DdNode * node;
|
525
|
-
DdNode * nodeR;
|
526
|
-
int LevelStart, Limit;
|
527
|
-
int i, size;
|
528
|
-
int WidthMax;
|
529
|
-
|
530
|
-
// start the mapping table
|
531
|
-
tNodeTopRef = st__init_table( st__ptrcmp, st__ptrhash);;
|
532
|
-
// add the topmost node to the profile
|
533
|
-
extraProfileUpdateTopLevel( tNodeTopRef, 0, Func );
|
534
|
-
|
535
|
-
// collect all nodes
|
536
|
-
tNodes = Extra_CollectNodes( Func );
|
537
|
-
// go though all the nodes and set the top level the cofactors are pointed from
|
538
|
-
// Cudd_ForeachNode( dd, Func, genDD, node )
|
539
|
-
st__foreach_item( tNodes, gen, (const char**)&node, NULL )
|
540
|
-
{
|
541
|
-
// assert( Cudd_Regular(node) ); // this procedure works only with ADD/ZDD (not BDD w/ compl.edges)
|
542
|
-
nodeR = Cudd_Regular(node);
|
543
|
-
if ( cuddIsConstant(nodeR) )
|
544
|
-
continue;
|
545
|
-
// this node is not a constant - consider its cofactors
|
546
|
-
extraProfileUpdateTopLevel( tNodeTopRef, dd->perm[node->index]+1, cuddE(nodeR) );
|
547
|
-
extraProfileUpdateTopLevel( tNodeTopRef, dd->perm[node->index]+1, cuddT(nodeR) );
|
548
|
-
}
|
549
|
-
st__free_table( tNodes );
|
550
|
-
|
551
|
-
// clean the profile
|
552
|
-
size = ddMax(dd->size, dd->sizeZ) + 1;
|
553
|
-
for ( i = 0; i < size; i++ )
|
554
|
-
pProfile[i] = 0;
|
555
|
-
|
556
|
-
// create the profile
|
557
|
-
st__foreach_item( tNodeTopRef, gen, (const char**)&node, (char**)&LevelStart )
|
558
|
-
{
|
559
|
-
nodeR = Cudd_Regular(node);
|
560
|
-
Limit = (cuddIsConstant(nodeR))? dd->size: dd->perm[nodeR->index];
|
561
|
-
for ( i = LevelStart; i <= Limit; i++ )
|
562
|
-
pProfile[i]++;
|
563
|
-
}
|
564
|
-
|
565
|
-
if ( CutLevel != -1 && CutLevel != 0 )
|
566
|
-
size = CutLevel;
|
567
|
-
|
568
|
-
// get the max width
|
569
|
-
WidthMax = 0;
|
570
|
-
for ( i = 0; i < size; i++ )
|
571
|
-
if ( WidthMax < pProfile[i] )
|
572
|
-
WidthMax = pProfile[i];
|
573
|
-
|
574
|
-
// deref the table
|
575
|
-
st__free_table( tNodeTopRef );
|
576
|
-
|
577
|
-
return WidthMax;
|
578
|
-
} /* end of Extra_ProfileWidth */
|
579
|
-
|
580
|
-
|
581
|
-
/*---------------------------------------------------------------------------*/
|
582
|
-
/* Definition of internal functions */
|
583
|
-
/*---------------------------------------------------------------------------*/
|
584
|
-
|
585
|
-
/*---------------------------------------------------------------------------*/
|
586
|
-
/* Definition of static functions */
|
587
|
-
/*---------------------------------------------------------------------------*/
|
588
|
-
|
589
|
-
/**Function********************************************************************
|
590
|
-
|
591
|
-
Synopsis [Computes the non-strict codes when evaluation is finished.]
|
592
|
-
|
593
|
-
Description [The information about the best code is stored in s_VarOrderBest,
|
594
|
-
which has s_nVarsBest entries.]
|
595
|
-
|
596
|
-
SideEffects [None]
|
597
|
-
|
598
|
-
******************************************************************************/
|
599
|
-
DdNode * CreateTheCodes_rec( DdManager * dd, DdNode * bEncoded, int Level, DdNode ** pCVars )
|
600
|
-
// bEncoded is the preliminarily encoded set of columns
|
601
|
-
// Level is the current level in the recursion
|
602
|
-
// pCVars are the variables to be used for encoding
|
603
|
-
{
|
604
|
-
DdNode * bRes;
|
605
|
-
if ( Level == s_nVarsBest )
|
606
|
-
{ // the terminal case, when we need to remap the encoded function
|
607
|
-
// from the preliminary encoded variables to the new ones
|
608
|
-
st__table * CutNodes;
|
609
|
-
int nCols;
|
610
|
-
// double nMints;
|
611
|
-
/*
|
612
|
-
#ifdef _DEBUG
|
613
|
-
|
614
|
-
{
|
615
|
-
DdNode * bTemp;
|
616
|
-
// make sure that the given number of variables is enough
|
617
|
-
bTemp = Cudd_bddExistAbstract( dd, bEncoded, s_VarAll ); Cudd_Ref( bTemp );
|
618
|
-
// nMints = Cudd_CountMinterm( dd, bTemp, s_MultiStart );
|
619
|
-
nMints = Extra_CountMintermsSimple( bTemp, (1<<s_MultiStart) );
|
620
|
-
if ( nMints > Extra_Power2( s_MultiStart-Level ) )
|
621
|
-
{ // the number of minterms is too large to encode the columns
|
622
|
-
// using the given minimum number of encoding variables
|
623
|
-
assert( 0 );
|
624
|
-
}
|
625
|
-
Cudd_RecursiveDeref( dd, bTemp );
|
626
|
-
}
|
627
|
-
#endif
|
628
|
-
*/
|
629
|
-
// get the columns to be re-encoded
|
630
|
-
CutNodes = Extra_bddNodePathsUnderCut( dd, bEncoded, s_EncodingVarsLevel );
|
631
|
-
// LUT size is the cut level because because the temporary encoding variables
|
632
|
-
// are above the functional variables - this is not true!!!
|
633
|
-
// the temporary variables are below!
|
634
|
-
|
635
|
-
// put the entries from the table into the temporary array
|
636
|
-
{
|
637
|
-
st__generator * gen;
|
638
|
-
DdNode * bColumn, * bCode;
|
639
|
-
nCols = 0;
|
640
|
-
st__foreach_item( CutNodes, gen, (const char**)&bCode, (char**)&bColumn )
|
641
|
-
{
|
642
|
-
if ( bCode == b0 )
|
643
|
-
{ // the unused part of the columns
|
644
|
-
Cudd_RecursiveDeref( dd, bColumn );
|
645
|
-
Cudd_RecursiveDeref( dd, bCode );
|
646
|
-
continue;
|
647
|
-
}
|
648
|
-
else
|
649
|
-
{
|
650
|
-
s_pbTemp[ nCols ] = bColumn; // takes ref
|
651
|
-
Cudd_RecursiveDeref( dd, bCode );
|
652
|
-
nCols++;
|
653
|
-
}
|
654
|
-
}
|
655
|
-
st__free_table( CutNodes );
|
656
|
-
// assert( nCols == (int)nMints );
|
657
|
-
}
|
658
|
-
|
659
|
-
// encode the columns
|
660
|
-
if ( s_MultiStart-Level == 0 ) // we reached the bottom level of recursion
|
661
|
-
{
|
662
|
-
assert( nCols == 1 );
|
663
|
-
// assert( (int)nMints == 1 );
|
664
|
-
bRes = s_pbTemp[0]; Cudd_Ref( bRes );
|
665
|
-
}
|
666
|
-
else
|
667
|
-
{
|
668
|
-
bRes = Extra_bddEncodingBinary( dd, s_pbTemp, nCols, pCVars+Level, s_MultiStart-Level ); Cudd_Ref( bRes );
|
669
|
-
}
|
670
|
-
|
671
|
-
// deref the columns
|
672
|
-
{
|
673
|
-
int i;
|
674
|
-
for ( i = 0; i < nCols; i++ )
|
675
|
-
Cudd_RecursiveDeref( dd, s_pbTemp[i] );
|
676
|
-
}
|
677
|
-
}
|
678
|
-
else
|
679
|
-
{
|
680
|
-
// cofactor the problem as specified in the best solution
|
681
|
-
DdNode * bCof0, * bCof1;
|
682
|
-
DdNode * bRes0, * bRes1;
|
683
|
-
DdNode * bProd0, * bProd1;
|
684
|
-
DdNode * bTemp;
|
685
|
-
DdNode * bVarNext = dd->vars[ s_VarOrderBest[Level] ];
|
686
|
-
|
687
|
-
bCof0 = Cudd_Cofactor( dd, bEncoded, Cudd_Not( bVarNext ) ); Cudd_Ref( bCof0 );
|
688
|
-
bCof1 = Cudd_Cofactor( dd, bEncoded, bVarNext ); Cudd_Ref( bCof1 );
|
689
|
-
|
690
|
-
// call recursively
|
691
|
-
bRes0 = CreateTheCodes_rec( dd, bCof0, Level+1, pCVars ); Cudd_Ref( bRes0 );
|
692
|
-
bRes1 = CreateTheCodes_rec( dd, bCof1, Level+1, pCVars ); Cudd_Ref( bRes1 );
|
693
|
-
|
694
|
-
Cudd_RecursiveDeref( dd, bCof0 );
|
695
|
-
Cudd_RecursiveDeref( dd, bCof1 );
|
696
|
-
|
697
|
-
// compose the result using the identity (bVarNext <=> pCVars[Level]) - this is wrong!
|
698
|
-
// compose the result as follows: x'y'F0 + xyF1
|
699
|
-
bProd0 = Cudd_bddAnd( dd, Cudd_Not(bVarNext), Cudd_Not(pCVars[Level]) ); Cudd_Ref( bProd0 );
|
700
|
-
bProd1 = Cudd_bddAnd( dd, bVarNext , pCVars[Level] ); Cudd_Ref( bProd1 );
|
701
|
-
|
702
|
-
bProd0 = Cudd_bddAnd( dd, bTemp = bProd0, bRes0 ); Cudd_Ref( bProd0 );
|
703
|
-
Cudd_RecursiveDeref( dd, bTemp );
|
704
|
-
Cudd_RecursiveDeref( dd, bRes0 );
|
705
|
-
|
706
|
-
bProd1 = Cudd_bddAnd( dd, bTemp = bProd1, bRes1 ); Cudd_Ref( bProd1 );
|
707
|
-
Cudd_RecursiveDeref( dd, bTemp );
|
708
|
-
Cudd_RecursiveDeref( dd, bRes1 );
|
709
|
-
|
710
|
-
bRes = Cudd_bddOr( dd, bProd0, bProd1 ); Cudd_Ref( bRes );
|
711
|
-
|
712
|
-
Cudd_RecursiveDeref( dd, bProd0 );
|
713
|
-
Cudd_RecursiveDeref( dd, bProd1 );
|
714
|
-
}
|
715
|
-
Cudd_Deref( bRes );
|
716
|
-
return bRes;
|
717
|
-
}
|
718
|
-
|
719
|
-
/**Function********************************************************************
|
720
|
-
|
721
|
-
Synopsis [Computes the current set of variables and counts the number of minterms.]
|
722
|
-
|
723
|
-
Description [Old implementation.]
|
724
|
-
|
725
|
-
SideEffects []
|
726
|
-
|
727
|
-
SeeAlso []
|
728
|
-
|
729
|
-
******************************************************************************/
|
730
|
-
void EvaluateEncodings_rec( DdManager * dd, DdNode * bVarsCol, int nVarsCol, int nMulti, int Level )
|
731
|
-
// bVarsCol is the set of remaining variables
|
732
|
-
// nVarsCol is the number of remaining variables
|
733
|
-
// nMulti is the number of encoding variables to be used
|
734
|
-
// Level is the level of recursion, from which this function is called
|
735
|
-
// if we successfully finish this procedure, Level also stands for how many encoding variabled we saved
|
736
|
-
{
|
737
|
-
int i, k;
|
738
|
-
int nEntries = (1<<(Level-1)); // the number of entries in the field of the previous level
|
739
|
-
DdNode * bVars0, * bVars1; // the cofactors
|
740
|
-
unsigned nMint0, nMint1; // the number of minterms
|
741
|
-
DdNode * bTempV;
|
742
|
-
DdNode * bVarTop;
|
743
|
-
int fBreak;
|
744
|
-
|
745
|
-
|
746
|
-
// there is no need to search above this level
|
747
|
-
if ( Level > s_MaxDepth )
|
748
|
-
return;
|
749
|
-
|
750
|
-
// if there are no variables left, quit the research
|
751
|
-
if ( bVarsCol == b1 )
|
752
|
-
return;
|
753
|
-
|
754
|
-
if ( s_BackTracks > s_BackTrackLimit )
|
755
|
-
return;
|
756
|
-
|
757
|
-
s_BackTracks++;
|
758
|
-
|
759
|
-
// otherwise, go through the remaining variables
|
760
|
-
for ( bTempV = bVarsCol; bTempV != b1; bTempV = cuddT(bTempV) )
|
761
|
-
{
|
762
|
-
// the currently tested variable
|
763
|
-
bVarTop = dd->vars[bTempV->index];
|
764
|
-
|
765
|
-
// put it into the array
|
766
|
-
s_VarOrderCur[Level-1] = bTempV->index;
|
767
|
-
|
768
|
-
// go through the entries and fill them out by cofactoring
|
769
|
-
fBreak = 0;
|
770
|
-
for ( i = 0; i < nEntries; i++ )
|
771
|
-
{
|
772
|
-
bVars0 = ComputeVarSetAndCountMinterms( dd, s_Field[Level-1][i], Cudd_Not(bVarTop), &nMint0 );
|
773
|
-
Cudd_Ref( bVars0 );
|
774
|
-
|
775
|
-
if ( nMint0 > Extra_Power2( nMulti-1 ) )
|
776
|
-
{
|
777
|
-
// there is no way to encode - dereference and return
|
778
|
-
Cudd_RecursiveDeref( dd, bVars0 );
|
779
|
-
fBreak = 1;
|
780
|
-
break;
|
781
|
-
}
|
782
|
-
|
783
|
-
bVars1 = ComputeVarSetAndCountMinterms( dd, s_Field[Level-1][i], bVarTop, &nMint1 );
|
784
|
-
Cudd_Ref( bVars1 );
|
785
|
-
|
786
|
-
if ( nMint1 > Extra_Power2( nMulti-1 ) )
|
787
|
-
{
|
788
|
-
// there is no way to encode - dereference and return
|
789
|
-
Cudd_RecursiveDeref( dd, bVars0 );
|
790
|
-
Cudd_RecursiveDeref( dd, bVars1 );
|
791
|
-
fBreak = 1;
|
792
|
-
break;
|
793
|
-
}
|
794
|
-
|
795
|
-
// otherwise, add these two cofactors
|
796
|
-
s_Field[Level][2*i + 0] = bVars0; // takes ref
|
797
|
-
s_Field[Level][2*i + 1] = bVars1; // takes ref
|
798
|
-
}
|
799
|
-
|
800
|
-
if ( !fBreak )
|
801
|
-
{
|
802
|
-
DdNode * bVarsRem;
|
803
|
-
// if we ended up here, it means that the cofactors w.r.t. variable bVarTop satisfy the condition
|
804
|
-
// save this situation
|
805
|
-
if ( s_nVarsBest < Level )
|
806
|
-
{
|
807
|
-
s_nVarsBest = Level;
|
808
|
-
// copy the variable assignment
|
809
|
-
for ( k = 0; k < Level; k++ )
|
810
|
-
s_VarOrderBest[k] = s_VarOrderCur[k];
|
811
|
-
}
|
812
|
-
|
813
|
-
// call recursively
|
814
|
-
// get the new variable set
|
815
|
-
if ( nMulti-1 > 0 )
|
816
|
-
{
|
817
|
-
bVarsRem = Cudd_bddExistAbstract( dd, bVarsCol, bVarTop ); Cudd_Ref( bVarsRem );
|
818
|
-
EvaluateEncodings_rec( dd, bVarsRem, nVarsCol-1, nMulti-1, Level+1 );
|
819
|
-
Cudd_RecursiveDeref( dd, bVarsRem );
|
820
|
-
}
|
821
|
-
}
|
822
|
-
|
823
|
-
// deref the contents of the array
|
824
|
-
for ( k = 0; k < i; k++ )
|
825
|
-
{
|
826
|
-
Cudd_RecursiveDeref( dd, s_Field[Level][2*k + 0] );
|
827
|
-
Cudd_RecursiveDeref( dd, s_Field[Level][2*k + 1] );
|
828
|
-
}
|
829
|
-
|
830
|
-
// if the solution is found, there is no need to continue
|
831
|
-
if ( s_nVarsBest == s_MaxDepth )
|
832
|
-
return;
|
833
|
-
|
834
|
-
// if the solution is found, there is no need to continue
|
835
|
-
if ( s_nVarsBest == s_MultiStart )
|
836
|
-
return;
|
837
|
-
}
|
838
|
-
// at this point, we have tried all possible directions in the space of variables
|
839
|
-
}
|
840
|
-
|
841
|
-
/**Function********************************************************************
|
842
|
-
|
843
|
-
Synopsis [Computes the current set of variables and counts the number of minterms.]
|
844
|
-
|
845
|
-
Description []
|
846
|
-
|
847
|
-
SideEffects []
|
848
|
-
|
849
|
-
SeeAlso []
|
850
|
-
|
851
|
-
******************************************************************************/
|
852
|
-
DdNode * ComputeVarSetAndCountMinterms( DdManager * dd, DdNode * bVars, DdNode * bVarTop, unsigned * Cost )
|
853
|
-
// takes bVars - the variables cofactored so far (some of them may be in negative polarity)
|
854
|
-
// bVarTop - the topmost variable w.r.t. which to cofactor (may be in negative polarity)
|
855
|
-
// returns the cost and the new set of variables (bVars & bVarTop)
|
856
|
-
{
|
857
|
-
DdNode * bVarsRes;
|
858
|
-
|
859
|
-
// get the resulting set of variables
|
860
|
-
bVarsRes = Cudd_bddAnd( dd, bVars, bVarTop ); Cudd_Ref( bVarsRes );
|
861
|
-
|
862
|
-
// increment signature before calling Cudd_CountCofactorMinterms()
|
863
|
-
s_Signature++;
|
864
|
-
*Cost = Extra_CountCofactorMinterms( dd, s_Encoded, bVarsRes, s_VarAll );
|
865
|
-
|
866
|
-
Cudd_Deref( bVarsRes );
|
867
|
-
// s_CountCalls++;
|
868
|
-
return bVarsRes;
|
869
|
-
}
|
870
|
-
|
871
|
-
/**Function********************************************************************
|
872
|
-
|
873
|
-
Synopsis [Computes the current set of variables and counts the number of minterms.]
|
874
|
-
|
875
|
-
Description [The old implementation, which is approximately 4 times slower.]
|
876
|
-
|
877
|
-
SideEffects []
|
878
|
-
|
879
|
-
SeeAlso []
|
880
|
-
|
881
|
-
******************************************************************************/
|
882
|
-
DdNode * ComputeVarSetAndCountMinterms2( DdManager * dd, DdNode * bVars, DdNode * bVarTop, unsigned * Cost )
|
883
|
-
{
|
884
|
-
DdNode * bVarsRes;
|
885
|
-
DdNode * bCof, * bFun;
|
886
|
-
|
887
|
-
bVarsRes = Cudd_bddAnd( dd, bVars, bVarTop ); Cudd_Ref( bVarsRes );
|
888
|
-
|
889
|
-
bCof = Cudd_Cofactor( dd, s_Encoded, bVarsRes ); Cudd_Ref( bCof );
|
890
|
-
bFun = Cudd_bddExistAbstract( dd, bCof, s_VarAll ); Cudd_Ref( bFun );
|
891
|
-
*Cost = (unsigned)Cudd_CountMinterm( dd, bFun, s_MultiStart );
|
892
|
-
Cudd_RecursiveDeref( dd, bFun );
|
893
|
-
Cudd_RecursiveDeref( dd, bCof );
|
894
|
-
|
895
|
-
Cudd_Deref( bVarsRes );
|
896
|
-
// s_CountCalls++;
|
897
|
-
return bVarsRes;
|
898
|
-
}
|
899
|
-
|
900
|
-
|
901
|
-
/**Function********************************************************************
|
902
|
-
|
903
|
-
Synopsis [Counts the number of encoding minterms pointed to by the cofactor of the function.]
|
904
|
-
|
905
|
-
Description []
|
906
|
-
|
907
|
-
SideEffects [None]
|
908
|
-
|
909
|
-
******************************************************************************/
|
910
|
-
unsigned Extra_CountCofactorMinterms( DdManager * dd, DdNode * bFunc, DdNode * bVarsCof, DdNode * bVarsAll )
|
911
|
-
// this function computes how many minterms depending on the encoding variables
|
912
|
-
// are there in the cofactor of bFunc w.r.t. variables bVarsCof
|
913
|
-
// bFunc is assumed to depend on variables s_VarsAll
|
914
|
-
// the variables s_VarsAll should be ordered above the encoding variables
|
915
|
-
{
|
916
|
-
unsigned HKey;
|
917
|
-
DdNode * bFuncR;
|
918
|
-
|
919
|
-
// if the function is zero, there are no minterms
|
920
|
-
// if ( bFunc == b0 )
|
921
|
-
// return 0;
|
922
|
-
|
923
|
-
// if ( st__lookup(Visited, (char*)bFunc, NULL) )
|
924
|
-
// return 0;
|
925
|
-
|
926
|
-
// HKey = hashKey2c( s_Signature, bFuncR );
|
927
|
-
// if ( HHTable1[HKey].Sign == s_Signature && HHTable1[HKey].Arg1 == bFuncR ) // this node is visited
|
928
|
-
// return 0;
|
929
|
-
|
930
|
-
|
931
|
-
// check the hash-table
|
932
|
-
bFuncR = Cudd_Regular(bFunc);
|
933
|
-
// HKey = hashKey2( s_Signature, bFuncR, _TABLESIZE_COF );
|
934
|
-
HKey = hashKey2( s_Signature, bFunc, _TABLESIZE_COF );
|
935
|
-
for ( ; HHTable1[HKey].Sign == s_Signature; HKey = (HKey+1) % _TABLESIZE_COF )
|
936
|
-
// if ( HHTable1[HKey].Arg1 == bFuncR ) // this node is visited
|
937
|
-
if ( HHTable1[HKey].Arg1 == bFunc ) // this node is visited
|
938
|
-
return 0;
|
939
|
-
|
940
|
-
|
941
|
-
// if the function is already the code
|
942
|
-
if ( dd->perm[bFuncR->index] >= s_EncodingVarsLevel )
|
943
|
-
{
|
944
|
-
// st__insert(Visited, (char*)bFunc, NULL);
|
945
|
-
|
946
|
-
// HHTable1[HKey].Sign = s_Signature;
|
947
|
-
// HHTable1[HKey].Arg1 = bFuncR;
|
948
|
-
|
949
|
-
assert( HHTable1[HKey].Sign != s_Signature );
|
950
|
-
HHTable1[HKey].Sign = s_Signature;
|
951
|
-
// HHTable1[HKey].Arg1 = bFuncR;
|
952
|
-
HHTable1[HKey].Arg1 = bFunc;
|
953
|
-
|
954
|
-
return Extra_CountMintermsSimple( bFunc, (1<<s_MultiStart) );
|
955
|
-
}
|
956
|
-
else
|
957
|
-
{
|
958
|
-
DdNode * bFunc0, * bFunc1;
|
959
|
-
DdNode * bVarsCof0, * bVarsCof1;
|
960
|
-
DdNode * bVarsCofR = Cudd_Regular(bVarsCof);
|
961
|
-
unsigned Res;
|
962
|
-
|
963
|
-
// get the levels
|
964
|
-
int LevelF = dd->perm[bFuncR->index];
|
965
|
-
int LevelC = cuddI(dd,bVarsCofR->index);
|
966
|
-
int LevelA = dd->perm[bVarsAll->index];
|
967
|
-
|
968
|
-
int LevelTop = LevelF;
|
969
|
-
|
970
|
-
if ( LevelTop > LevelC )
|
971
|
-
LevelTop = LevelC;
|
972
|
-
|
973
|
-
if ( LevelTop > LevelA )
|
974
|
-
LevelTop = LevelA;
|
975
|
-
|
976
|
-
// the top var in the function or in cofactoring vars always belongs to the set of all vars
|
977
|
-
assert( !( LevelTop == LevelF || LevelTop == LevelC ) || LevelTop == LevelA );
|
978
|
-
|
979
|
-
// cofactor the function
|
980
|
-
if ( LevelTop == LevelF )
|
981
|
-
{
|
982
|
-
if ( bFuncR != bFunc ) // bFunc is complemented
|
983
|
-
{
|
984
|
-
bFunc0 = Cudd_Not( cuddE(bFuncR) );
|
985
|
-
bFunc1 = Cudd_Not( cuddT(bFuncR) );
|
986
|
-
}
|
987
|
-
else
|
988
|
-
{
|
989
|
-
bFunc0 = cuddE(bFuncR);
|
990
|
-
bFunc1 = cuddT(bFuncR);
|
991
|
-
}
|
992
|
-
}
|
993
|
-
else // bVars is higher in the variable order
|
994
|
-
bFunc0 = bFunc1 = bFunc;
|
995
|
-
|
996
|
-
// cofactor the cube
|
997
|
-
if ( LevelTop == LevelC )
|
998
|
-
{
|
999
|
-
if ( bVarsCofR != bVarsCof ) // bFunc is complemented
|
1000
|
-
{
|
1001
|
-
bVarsCof0 = Cudd_Not( cuddE(bVarsCofR) );
|
1002
|
-
bVarsCof1 = Cudd_Not( cuddT(bVarsCofR) );
|
1003
|
-
}
|
1004
|
-
else
|
1005
|
-
{
|
1006
|
-
bVarsCof0 = cuddE(bVarsCofR);
|
1007
|
-
bVarsCof1 = cuddT(bVarsCofR);
|
1008
|
-
}
|
1009
|
-
}
|
1010
|
-
else // bVars is higher in the variable order
|
1011
|
-
bVarsCof0 = bVarsCof1 = bVarsCof;
|
1012
|
-
|
1013
|
-
// there are two cases:
|
1014
|
-
// (1) the top variable belongs to the cofactoring variables
|
1015
|
-
// (2) the top variable does not belong to the cofactoring variables
|
1016
|
-
|
1017
|
-
// (1) the top variable belongs to the cofactoring variables
|
1018
|
-
Res = 0;
|
1019
|
-
if ( LevelTop == LevelC )
|
1020
|
-
{
|
1021
|
-
if ( bVarsCof1 == b0 ) // this is a negative cofactor
|
1022
|
-
{
|
1023
|
-
if ( bFunc0 != b0 )
|
1024
|
-
Res = Extra_CountCofactorMinterms( dd, bFunc0, bVarsCof0, cuddT(bVarsAll) );
|
1025
|
-
}
|
1026
|
-
else // this is a positive cofactor
|
1027
|
-
{
|
1028
|
-
if ( bFunc1 != b0 )
|
1029
|
-
Res = Extra_CountCofactorMinterms( dd, bFunc1, bVarsCof1, cuddT(bVarsAll) );
|
1030
|
-
}
|
1031
|
-
}
|
1032
|
-
else
|
1033
|
-
{
|
1034
|
-
if ( bFunc0 != b0 )
|
1035
|
-
Res += Extra_CountCofactorMinterms( dd, bFunc0, bVarsCof0, cuddT(bVarsAll) );
|
1036
|
-
|
1037
|
-
if ( bFunc1 != b0 )
|
1038
|
-
Res += Extra_CountCofactorMinterms( dd, bFunc1, bVarsCof1, cuddT(bVarsAll) );
|
1039
|
-
}
|
1040
|
-
|
1041
|
-
// st__insert(Visited, (char*)bFunc, NULL);
|
1042
|
-
|
1043
|
-
// HHTable1[HKey].Sign = s_Signature;
|
1044
|
-
// HHTable1[HKey].Arg1 = bFuncR;
|
1045
|
-
|
1046
|
-
// skip through the entries with the same signatures
|
1047
|
-
// (these might have been created at the time of recursive calls)
|
1048
|
-
for ( ; HHTable1[HKey].Sign == s_Signature; HKey = (HKey+1) % _TABLESIZE_COF );
|
1049
|
-
assert( HHTable1[HKey].Sign != s_Signature );
|
1050
|
-
HHTable1[HKey].Sign = s_Signature;
|
1051
|
-
// HHTable1[HKey].Arg1 = bFuncR;
|
1052
|
-
HHTable1[HKey].Arg1 = bFunc;
|
1053
|
-
|
1054
|
-
return Res;
|
1055
|
-
}
|
1056
|
-
}
|
1057
|
-
|
1058
|
-
/**Function********************************************************************
|
1059
|
-
|
1060
|
-
Synopsis [Counts the number of minterms.]
|
1061
|
-
|
1062
|
-
Description [This function counts minterms for functions up to 32 variables
|
1063
|
-
using a local cache. The terminal value (s_Termina) should be adjusted for
|
1064
|
-
BDDs and ADDs.]
|
1065
|
-
|
1066
|
-
SideEffects [None]
|
1067
|
-
|
1068
|
-
******************************************************************************/
|
1069
|
-
unsigned Extra_CountMintermsSimple( DdNode * bFunc, unsigned max )
|
1070
|
-
{
|
1071
|
-
unsigned HKey;
|
1072
|
-
|
1073
|
-
// normalize
|
1074
|
-
if ( Cudd_IsComplement(bFunc) )
|
1075
|
-
return max - Extra_CountMintermsSimple( Cudd_Not(bFunc), max );
|
1076
|
-
|
1077
|
-
// now it is known that the function is not complemented
|
1078
|
-
if ( cuddIsConstant(bFunc) )
|
1079
|
-
return ((bFunc==s_Terminal)? 0: max);
|
1080
|
-
|
1081
|
-
// check cache
|
1082
|
-
HKey = hashKey2( bFunc, max, _TABLESIZE_MINT );
|
1083
|
-
if ( HHTable2[HKey].Arg1 == bFunc && HHTable2[HKey].Arg2 == max )
|
1084
|
-
return HHTable2[HKey].Res;
|
1085
|
-
else
|
1086
|
-
{
|
1087
|
-
// min = min0/2 + min1/2;
|
1088
|
-
unsigned min = (Extra_CountMintermsSimple( cuddE(bFunc), max ) >> 1) +
|
1089
|
-
(Extra_CountMintermsSimple( cuddT(bFunc), max ) >> 1);
|
1090
|
-
|
1091
|
-
HHTable2[HKey].Arg1 = bFunc;
|
1092
|
-
HHTable2[HKey].Arg2 = max;
|
1093
|
-
HHTable2[HKey].Res = min;
|
1094
|
-
|
1095
|
-
return min;
|
1096
|
-
}
|
1097
|
-
} /* end of Extra_CountMintermsSimple */
|
1098
|
-
|
1099
|
-
|
1100
|
-
/**Function********************************************************************
|
1101
|
-
|
1102
|
-
Synopsis [Visits the nodes.]
|
1103
|
-
|
1104
|
-
Description [Visits the nodes above the cut and the nodes pointed to below the cut;
|
1105
|
-
collects the visited nodes, counts how many times each node is visited, and sets
|
1106
|
-
the path-sum to be the constant zero BDD.]
|
1107
|
-
|
1108
|
-
SideEffects []
|
1109
|
-
|
1110
|
-
SeeAlso []
|
1111
|
-
|
1112
|
-
******************************************************************************/
|
1113
|
-
void CountNodeVisits_rec( DdManager * dd, DdNode * aFunc, st__table * Visited )
|
1114
|
-
|
1115
|
-
{
|
1116
|
-
traventry * p;
|
1117
|
-
char **slot;
|
1118
|
-
if ( st__find_or_add(Visited, (char*)aFunc, &slot) )
|
1119
|
-
{ // the entry already exists
|
1120
|
-
p = (traventry*) *slot;
|
1121
|
-
// increment the counter of incoming edges
|
1122
|
-
p->nEdges++;
|
1123
|
-
return;
|
1124
|
-
}
|
1125
|
-
// this node has not been visited
|
1126
|
-
assert( !Cudd_IsComplement(aFunc) );
|
1127
|
-
|
1128
|
-
// create the new traversal entry
|
1129
|
-
p = (traventry *) ABC_ALLOC( char, sizeof(traventry) );
|
1130
|
-
// set the initial sum of edges to zero BDD
|
1131
|
-
p->bSum = b0; Cudd_Ref( b0 );
|
1132
|
-
// set the starting number of incoming edges
|
1133
|
-
p->nEdges = 1;
|
1134
|
-
// set this entry into the slot
|
1135
|
-
*slot = (char*)p;
|
1136
|
-
|
1137
|
-
// recur if the node is above the cut
|
1138
|
-
if ( cuddI(dd,aFunc->index) < s_CutLevel )
|
1139
|
-
{
|
1140
|
-
CountNodeVisits_rec( dd, cuddE(aFunc), Visited );
|
1141
|
-
CountNodeVisits_rec( dd, cuddT(aFunc), Visited );
|
1142
|
-
}
|
1143
|
-
} /* end of CountNodeVisits_rec */
|
1144
|
-
|
1145
|
-
|
1146
|
-
/**Function********************************************************************
|
1147
|
-
|
1148
|
-
Synopsis [Revisits the nodes and computes the paths.]
|
1149
|
-
|
1150
|
-
Description [This function visits the nodes above the cut having the goal of
|
1151
|
-
summing all the incomming BDD edges; when this function comes across the node
|
1152
|
-
below the cut, it saves this node in the CutNode table.]
|
1153
|
-
|
1154
|
-
SideEffects []
|
1155
|
-
|
1156
|
-
SeeAlso []
|
1157
|
-
|
1158
|
-
******************************************************************************/
|
1159
|
-
void CollectNodesAndComputePaths_rec( DdManager * dd, DdNode * aFunc, DdNode * bCube, st__table * Visited, st__table * CutNodes )
|
1160
|
-
{
|
1161
|
-
// find the node in the visited table
|
1162
|
-
DdNode * bTemp;
|
1163
|
-
traventry * p;
|
1164
|
-
char **slot;
|
1165
|
-
if ( st__find_or_add(Visited, (char*)aFunc, &slot) )
|
1166
|
-
{ // the node is found
|
1167
|
-
// get the pointer to the traversal entry
|
1168
|
-
p = (traventry*) *slot;
|
1169
|
-
|
1170
|
-
// make sure that the counter of incoming edges is positive
|
1171
|
-
assert( p->nEdges > 0 );
|
1172
|
-
|
1173
|
-
// add the cube to the currently accumulated cubes
|
1174
|
-
p->bSum = Cudd_bddOr( dd, bTemp = p->bSum, bCube ); Cudd_Ref( p->bSum );
|
1175
|
-
Cudd_RecursiveDeref( dd, bTemp );
|
1176
|
-
|
1177
|
-
// decrement the number of visits
|
1178
|
-
p->nEdges--;
|
1179
|
-
|
1180
|
-
// if more visits to this node are expected, return
|
1181
|
-
if ( p->nEdges )
|
1182
|
-
return;
|
1183
|
-
else // if ( p->nEdges == 0 )
|
1184
|
-
{ // this is the last visit - propagate the cube
|
1185
|
-
|
1186
|
-
// check where this node is
|
1187
|
-
if ( cuddI(dd,aFunc->index) < s_CutLevel )
|
1188
|
-
{ // the node is above the cut
|
1189
|
-
DdNode * bCube0, * bCube1;
|
1190
|
-
|
1191
|
-
// get the top-most variable
|
1192
|
-
DdNode * bVarTop = dd->vars[aFunc->index];
|
1193
|
-
|
1194
|
-
// compute the propagated cubes
|
1195
|
-
bCube0 = Cudd_bddAnd( dd, p->bSum, Cudd_Not( bVarTop ) ); Cudd_Ref( bCube0 );
|
1196
|
-
bCube1 = Cudd_bddAnd( dd, p->bSum, bVarTop ); Cudd_Ref( bCube1 );
|
1197
|
-
|
1198
|
-
// call recursively
|
1199
|
-
CollectNodesAndComputePaths_rec( dd, cuddE(aFunc), bCube0, Visited, CutNodes );
|
1200
|
-
CollectNodesAndComputePaths_rec( dd, cuddT(aFunc), bCube1, Visited, CutNodes );
|
1201
|
-
|
1202
|
-
// dereference the cubes
|
1203
|
-
Cudd_RecursiveDeref( dd, bCube0 );
|
1204
|
-
Cudd_RecursiveDeref( dd, bCube1 );
|
1205
|
-
return;
|
1206
|
-
}
|
1207
|
-
else
|
1208
|
-
{ // the node is below the cut
|
1209
|
-
// add this node to the cut node table, if it is not yet there
|
1210
|
-
|
1211
|
-
// DdNode * bNode;
|
1212
|
-
// bNode = Cudd_addBddPattern( dd, aFunc ); Cudd_Ref( bNode );
|
1213
|
-
if ( st__find_or_add(CutNodes, (char*)aFunc, &slot) )
|
1214
|
-
{ // the node exists - should never happen
|
1215
|
-
assert( 0 );
|
1216
|
-
}
|
1217
|
-
*slot = (char*) p->bSum; Cudd_Ref( p->bSum );
|
1218
|
-
// the table takes the reference of bNode
|
1219
|
-
return;
|
1220
|
-
}
|
1221
|
-
}
|
1222
|
-
}
|
1223
|
-
|
1224
|
-
// the node does not exist in the visited table - should never happen
|
1225
|
-
assert(0);
|
1226
|
-
|
1227
|
-
} /* end of CollectNodesAndComputePaths_rec */
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1231
|
-
////////////////////////////////////////////////////////////////////////
|
1232
|
-
/// END OF FILE ///
|
1233
|
-
////////////////////////////////////////////////////////////////////////
|
1234
|
-
ABC_NAMESPACE_IMPL_END
|
1235
|
-
|