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,1156 +0,0 @@
|
|
1
|
-
/**CFile****************************************************************
|
2
|
-
|
3
|
-
FileName [exorList.c]
|
4
|
-
|
5
|
-
SystemName [ABC: Logic synthesis and verification system.]
|
6
|
-
|
7
|
-
PackageName [Exclusive sum-of-product minimization.]
|
8
|
-
|
9
|
-
Synopsis [Cube lists.]
|
10
|
-
|
11
|
-
Author [Alan Mishchenko]
|
12
|
-
|
13
|
-
Affiliation [UC Berkeley]
|
14
|
-
|
15
|
-
Date [Ver. 1.0. Started - June 20, 2005.]
|
16
|
-
|
17
|
-
Revision [$Id: exorList.c,v 1.0 2005/06/20 00:00:00 alanmi Exp $]
|
18
|
-
|
19
|
-
***********************************************************************/
|
20
|
-
|
21
|
-
////////////////////////////////////////////////////////////////////////
|
22
|
-
/// ///
|
23
|
-
/// Implementation of EXORCISM - 4 ///
|
24
|
-
/// An Exclusive Sum-of-Product Minimizer ///
|
25
|
-
/// ///
|
26
|
-
/// Alan Mishchenko <alanmi@ee.pdx.edu> ///
|
27
|
-
/// ///
|
28
|
-
////////////////////////////////////////////////////////////////////////
|
29
|
-
/// ///
|
30
|
-
/// Iterative Cube Set Minimization ///
|
31
|
-
/// Iterative ExorLink Procedure ///
|
32
|
-
/// Support of Cube Pair Queques ///
|
33
|
-
/// ///
|
34
|
-
/// Ver. 1.0. Started - July 18, 2000. Last update - July 20, 2000 ///
|
35
|
-
/// Ver. 1.1. Started - July 24, 2000. Last update - July 29, 2000 ///
|
36
|
-
/// Ver. 1.2. Started - July 30, 2000. Last update - July 31, 2000 ///
|
37
|
-
/// Ver. 1.4. Started - Aug 10, 2000. Last update - Aug 26, 2000 ///
|
38
|
-
/// Ver. 1.5. Started - Aug 30, 2000. Last update - Aug 30, 2000 ///
|
39
|
-
/// Ver. 1.6. Started - Sep 11, 2000. Last update - Sep 15, 2000 ///
|
40
|
-
/// Ver. 1.7. Started - Sep 20, 2000. Last update - Sep 23, 2000 ///
|
41
|
-
/// ///
|
42
|
-
////////////////////////////////////////////////////////////////////////
|
43
|
-
/// This software was tested with the BDD package "CUDD", v.2.3.0 ///
|
44
|
-
/// by Fabio Somenzi ///
|
45
|
-
/// http://vlsi.colorado.edu/~fabio/ ///
|
46
|
-
////////////////////////////////////////////////////////////////////////
|
47
|
-
|
48
|
-
#include "exor.h"
|
49
|
-
|
50
|
-
ABC_NAMESPACE_IMPL_START
|
51
|
-
|
52
|
-
////////////////////////////////////////////////////////////////////////
|
53
|
-
/// EXTERNAL VARIABLES ///
|
54
|
-
////////////////////////////////////////////////////////////////////////
|
55
|
-
|
56
|
-
// information about options and the cover
|
57
|
-
extern cinfo g_CoverInfo;
|
58
|
-
|
59
|
-
// the look-up table for the number of 1's in unsigned short
|
60
|
-
extern unsigned char BitCount[];
|
61
|
-
|
62
|
-
////////////////////////////////////////////////////////////////////////
|
63
|
-
/// EXTERNAL FUNCTIONS ///
|
64
|
-
////////////////////////////////////////////////////////////////////////
|
65
|
-
|
66
|
-
extern int GetDistance( Cube* pC1, Cube* pC2 );
|
67
|
-
// distance computation for two cubes
|
68
|
-
extern int GetDistancePlus( Cube* pC1, Cube* pC2 );
|
69
|
-
|
70
|
-
extern void ExorVar( Cube* pC, int Var, varvalue Val );
|
71
|
-
|
72
|
-
extern void AddToFreeCubes( Cube* pC );
|
73
|
-
// returns a simplified cube back into the free list
|
74
|
-
|
75
|
-
//extern void PrintCube( ostream& DebugStream, Cube* pC );
|
76
|
-
// debug output for cubes
|
77
|
-
|
78
|
-
extern Cube* GetFreeCube();
|
79
|
-
|
80
|
-
////////////////////////////////////////////////////////////////////////
|
81
|
-
/// ExorLink Functions
|
82
|
-
extern int ExorLinkCubeIteratorStart( Cube** pGroup, Cube* pC1, Cube* pC2, cubedist Dist );
|
83
|
-
// this function starts the Exor-Link IteratorCubePair, which iterates
|
84
|
-
// through the cube groups starting from the group with min literals
|
85
|
-
// returns 1 on success, returns 0 if the cubes have wrong distance
|
86
|
-
|
87
|
-
extern int ExorLinkCubeIteratorNext( Cube** pGroup );
|
88
|
-
// give the next group in the decreasing order of sum of literals
|
89
|
-
// returns 1 on success, returns 0 if there are no more groups
|
90
|
-
|
91
|
-
extern int ExorLinkCubeIteratorPick( Cube** pGroup, int g );
|
92
|
-
// gives the group #g in the order in which the groups were given
|
93
|
-
// during iteration
|
94
|
-
// returns 1 on success, returns 0 if something g is too large
|
95
|
-
|
96
|
-
extern void ExorLinkCubeIteratorCleanUp( int fTakeLastGroup );
|
97
|
-
// removes the cubes from the store back into the list of free cubes
|
98
|
-
// if fTakeLastGroup is 0, removes all cubes
|
99
|
-
// if fTakeLastGroup is 1, does not store the last group
|
100
|
-
|
101
|
-
////////////////////////////////////////////////////////////////////////
|
102
|
-
/// FUNCTIONS OF THIS MODULE ///
|
103
|
-
////////////////////////////////////////////////////////////////////////
|
104
|
-
|
105
|
-
// iterative ExorLink
|
106
|
-
int IterativelyApplyExorLink2( char fDistEnable );
|
107
|
-
int IterativelyApplyExorLink3( char fDistEnable );
|
108
|
-
int IterativelyApplyExorLink4( char fDistEnable );
|
109
|
-
|
110
|
-
// function which performs distance computation and simplifes on the fly
|
111
|
-
// it is also called from the Pseudo-Kronecker module when cubes are added
|
112
|
-
int CheckForCloseCubes( Cube* p, int fAddCube );
|
113
|
-
int CheckAndInsert( Cube* p );
|
114
|
-
|
115
|
-
// this function changes the cube back after it was DIST-1 transformed
|
116
|
-
void UndoRecentChanges();
|
117
|
-
|
118
|
-
////////////////////////////////////////////////////////////////////////
|
119
|
-
// iterating through adjucency pair queques (with authomatic garbage collection)
|
120
|
-
|
121
|
-
// start an iterator through cubes of dist CubeDist,
|
122
|
-
// the resulting pointers are written into ppC1 and ppC2
|
123
|
-
int IteratorCubePairStart( cubedist Dist, Cube** ppC1, Cube** ppC2 );
|
124
|
-
// gives the next VALID cube pair (the previous one is automatically dequequed)
|
125
|
-
int IteratorCubePairNext();
|
126
|
-
|
127
|
-
////////////////////////////////////////////////////////////////////////
|
128
|
-
// the cube storage
|
129
|
-
|
130
|
-
// cube storage allocation/delocation
|
131
|
-
int AllocateCubeSets( int nVarsIn, int nVarsOut );
|
132
|
-
void DelocateCubeSets();
|
133
|
-
|
134
|
-
// insert/extract a cube into/from the storage
|
135
|
-
void CubeInsert( Cube* p );
|
136
|
-
Cube* CubeExtract( Cube* p );
|
137
|
-
|
138
|
-
////////////////////////////////////////////////////////////////////////
|
139
|
-
// Cube Set Iterator
|
140
|
-
Cube* IterCubeSetStart();
|
141
|
-
// starts an iterator that traverses all the cubes in the ring
|
142
|
-
Cube* IterCubeSetNext();
|
143
|
-
// returns the next cube in the ring
|
144
|
-
// to use it again after it has returned NULL, call IterCubeSetStart() first
|
145
|
-
|
146
|
-
////////////////////////////////////////////////////////////////////////
|
147
|
-
// cube adjacency queques
|
148
|
-
|
149
|
-
// adjacency queque allocation/delocation procedures
|
150
|
-
int AllocateQueques( int nPlaces );
|
151
|
-
void DelocateQueques();
|
152
|
-
|
153
|
-
// conditional adding cube pairs to queques
|
154
|
-
// reset temporarily stored new range of cube pairs
|
155
|
-
static void NewRangeReset();
|
156
|
-
// add temporarily stored new range of cube pairs to the queque
|
157
|
-
static void NewRangeAdd();
|
158
|
-
// insert one cube pair into the new range
|
159
|
-
static void NewRangeInsertCubePair( cubedist Dist, Cube* p1, Cube* p2 );
|
160
|
-
|
161
|
-
static void MarkSet();
|
162
|
-
static void MarkRewind();
|
163
|
-
|
164
|
-
void PrintQuequeStats();
|
165
|
-
int GetQuequeStats( cubedist Dist );
|
166
|
-
|
167
|
-
// iterating through the queque (with authomatic garbage collection)
|
168
|
-
// start an iterator through cubes of dist CubeDist,
|
169
|
-
// the resulting pointers are written into ppC1 and ppC2
|
170
|
-
int IteratorCubePairStart( cubedist Dist, Cube** ppC1, Cube** ppC2 );
|
171
|
-
// gives the next VALID cube pair (the previous one is automatically dequequed)
|
172
|
-
int IteratorCubePairNext();
|
173
|
-
|
174
|
-
////////////////////////////////////////////////////////////////////////
|
175
|
-
/// EXPORTED VARIABLES ///
|
176
|
-
////////////////////////////////////////////////////////////////////////`
|
177
|
-
|
178
|
-
// the number of allocated places
|
179
|
-
int s_nPosAlloc;
|
180
|
-
// the maximum number of occupied places
|
181
|
-
int s_nPosMax[3];
|
182
|
-
|
183
|
-
////////////////////////////////////////////////////////////////////////
|
184
|
-
/// Minimization Strategy ///
|
185
|
-
////////////////////////////////////////////////////////////////////////
|
186
|
-
|
187
|
-
// 1) check that ExorLink for this cube pair can be performed
|
188
|
-
// (it may happen that the group is outdated due to recent reshaping)
|
189
|
-
// 2) find out what is the improvement achieved by each cube group
|
190
|
-
// 3) depending on the distance, do the following:
|
191
|
-
// a) if ( Dist == 2 )
|
192
|
-
// try both cube groups,
|
193
|
-
// if one of them leads to improvement, take the cube group right away
|
194
|
-
// if none of them leads to improment
|
195
|
-
// - take the last one (because it reshapes)
|
196
|
-
// - take the last one only in case it does not increase literals
|
197
|
-
// b) if ( Dist == 3 )
|
198
|
-
// try groups one by one
|
199
|
-
// if one of them leads to improvement, take the group right away
|
200
|
-
// if none of them leads to improvement
|
201
|
-
// - take the group which reshapes
|
202
|
-
// - take the reshaping group only in case it does not increase literals
|
203
|
-
// if none of them leads to reshaping, do not take any of them
|
204
|
-
// c) if ( Dist == 4 )
|
205
|
-
// try groups one by one
|
206
|
-
// if one of the leads to reshaping, take it right away
|
207
|
-
// if none of them leads to reshaping, do not take any of them
|
208
|
-
|
209
|
-
////////////////////////////////////////////////////////////////////////
|
210
|
-
/// STATIC VARIABLES ///
|
211
|
-
////////////////////////////////////////////////////////////////////////
|
212
|
-
|
213
|
-
// Cube set is a list of cubes
|
214
|
-
static Cube* s_List;
|
215
|
-
|
216
|
-
///////////////////////////////////////////////////////////////////////////
|
217
|
-
// undo information
|
218
|
-
///////////////////////////////////////////////////////////////////////////
|
219
|
-
static struct
|
220
|
-
{
|
221
|
-
int fInput; // 1 if the input was changed
|
222
|
-
Cube* p; // the pointer to the modified cube
|
223
|
-
int PrevQa;
|
224
|
-
int PrevPa;
|
225
|
-
int PrevQq;
|
226
|
-
int PrevPq;
|
227
|
-
int PrevPz;
|
228
|
-
int Var; // the number of variable that was changed
|
229
|
-
int Value; // the value what was there
|
230
|
-
int PrevID; // the previous ID of the removed cube
|
231
|
-
} s_ChangeStore;
|
232
|
-
///////////////////////////////////////////////////////////////////////////
|
233
|
-
|
234
|
-
// enable pair accumulation
|
235
|
-
// from the begginning (while the starting cover is generated)
|
236
|
-
// only the distance 2 accumulation is enabled
|
237
|
-
static int s_fDistEnable2 = 1;
|
238
|
-
static int s_fDistEnable3;
|
239
|
-
static int s_fDistEnable4;
|
240
|
-
|
241
|
-
// temporary storage for cubes generated by the ExorLink iterator
|
242
|
-
static Cube* s_CubeGroup[5];
|
243
|
-
// the marks telling whether the given cube is inserted
|
244
|
-
static int s_fInserted[5];
|
245
|
-
|
246
|
-
// enable selection only those Dist2 and Dist3 that do not increase literals
|
247
|
-
int s_fDecreaseLiterals = 0;
|
248
|
-
|
249
|
-
// the counters for display
|
250
|
-
static int s_cEnquequed;
|
251
|
-
static int s_cAttempts;
|
252
|
-
static int s_cReshapes;
|
253
|
-
|
254
|
-
// the number of cubes before ExorLink starts
|
255
|
-
static int s_nCubesBefore;
|
256
|
-
// the distance code specific for each ExorLink
|
257
|
-
static cubedist s_Dist;
|
258
|
-
|
259
|
-
// other variables
|
260
|
-
static int s_Gain;
|
261
|
-
static int s_GainTotal;
|
262
|
-
static int s_GroupCounter;
|
263
|
-
static int s_GroupBest;
|
264
|
-
static Cube *s_pC1, *s_pC2;
|
265
|
-
|
266
|
-
////////////////////////////////////////////////////////////////////////
|
267
|
-
/// Iterative ExorLink Operation ///
|
268
|
-
////////////////////////////////////////////////////////////////////////
|
269
|
-
|
270
|
-
int CheckAndInsert( Cube* p )
|
271
|
-
{
|
272
|
-
// return CheckForCloseCubes( p, 1 );
|
273
|
-
CubeInsert( p );
|
274
|
-
return 0;
|
275
|
-
}
|
276
|
-
|
277
|
-
int IterativelyApplyExorLink2( char fDistEnable )
|
278
|
-
// MEMO: instead of inserting the cubes that have already been checked
|
279
|
-
// by running CheckForCloseCubes again, try inserting them without checking
|
280
|
-
// and observe the difference (it will save 50% of checking time)
|
281
|
-
{
|
282
|
-
int z;
|
283
|
-
|
284
|
-
// this var is specific to ExorLink-2
|
285
|
-
s_Dist = (cubedist)0;
|
286
|
-
|
287
|
-
// enable pair accumulation
|
288
|
-
s_fDistEnable2 = fDistEnable & 1;
|
289
|
-
s_fDistEnable3 = fDistEnable & 2;
|
290
|
-
s_fDistEnable4 = fDistEnable & 4;
|
291
|
-
|
292
|
-
// initialize counters
|
293
|
-
s_cEnquequed = GetQuequeStats( s_Dist );
|
294
|
-
s_cAttempts = 0;
|
295
|
-
s_cReshapes = 0;
|
296
|
-
|
297
|
-
// remember the number of cubes before minimization
|
298
|
-
s_nCubesBefore = g_CoverInfo.nCubesInUse;
|
299
|
-
|
300
|
-
for ( z = IteratorCubePairStart( s_Dist, &s_pC1, &s_pC2 ); z; z = IteratorCubePairNext() )
|
301
|
-
{
|
302
|
-
s_cAttempts++;
|
303
|
-
// start ExorLink of the given Distance
|
304
|
-
if ( ExorLinkCubeIteratorStart( s_CubeGroup, s_pC1, s_pC2, s_Dist ) )
|
305
|
-
{
|
306
|
-
// extract old cubes from storage (to prevent EXORing with their derivitives)
|
307
|
-
CubeExtract( s_pC1 );
|
308
|
-
CubeExtract( s_pC2 );
|
309
|
-
|
310
|
-
// mark the current position in the cube pair queques
|
311
|
-
MarkSet();
|
312
|
-
|
313
|
-
// check the first group (generated by ExorLinkCubeIteratorStart())
|
314
|
-
if ( CheckForCloseCubes( s_CubeGroup[0], 0 ) )
|
315
|
-
{ // the first cube leads to improvement - it is already inserted
|
316
|
-
CheckForCloseCubes( s_CubeGroup[1], 1 ); // insert the second cube
|
317
|
-
goto SUCCESS;
|
318
|
-
}
|
319
|
-
if ( CheckForCloseCubes( s_CubeGroup[1], 0 ) )
|
320
|
-
{ // the second cube leads to improvement - it is already inserted
|
321
|
-
CheckForCloseCubes( s_CubeGroup[0], 1 ); // insert the first cube
|
322
|
-
// CheckAndInsert( s_CubeGroup[0] );
|
323
|
-
goto SUCCESS;
|
324
|
-
}
|
325
|
-
// the first group does not lead to improvement
|
326
|
-
|
327
|
-
// rewind to the previously marked position in the cube pair queques
|
328
|
-
MarkRewind();
|
329
|
-
|
330
|
-
// generate the second group
|
331
|
-
ExorLinkCubeIteratorNext( s_CubeGroup );
|
332
|
-
|
333
|
-
// check the second group
|
334
|
-
if ( CheckForCloseCubes( s_CubeGroup[0], 0 ) )
|
335
|
-
{ // the first cube leads to improvement - it is already inserted
|
336
|
-
CheckForCloseCubes( s_CubeGroup[1], 1 ); // insert the second cube
|
337
|
-
goto SUCCESS;
|
338
|
-
}
|
339
|
-
if ( CheckForCloseCubes( s_CubeGroup[1], 0 ) )
|
340
|
-
{ // the second cube leads to improvement - it is already inserted
|
341
|
-
CheckForCloseCubes( s_CubeGroup[0], 1 ); // insert the first cube
|
342
|
-
// CheckAndInsert( s_CubeGroup[0] );
|
343
|
-
goto SUCCESS;
|
344
|
-
}
|
345
|
-
// the second group does not lead to improvement
|
346
|
-
|
347
|
-
// decide whether to accept the second group, depending on literals
|
348
|
-
if ( s_fDecreaseLiterals )
|
349
|
-
{
|
350
|
-
if ( g_CoverInfo.fUseQCost ?
|
351
|
-
s_CubeGroup[0]->q + s_CubeGroup[1]->q >= s_pC1->q + s_pC2->q :
|
352
|
-
s_CubeGroup[0]->a + s_CubeGroup[1]->a >= s_pC1->a + s_pC2->a )
|
353
|
-
// the group increases literals
|
354
|
-
{ // do not take the last group
|
355
|
-
|
356
|
-
// rewind to the previously marked position in the cube pair queques
|
357
|
-
MarkRewind();
|
358
|
-
|
359
|
-
// return the old cubes back to storage
|
360
|
-
CubeInsert( s_pC1 );
|
361
|
-
CubeInsert( s_pC2 );
|
362
|
-
// clean the results of generating ExorLinked cubes
|
363
|
-
ExorLinkCubeIteratorCleanUp( 0 );
|
364
|
-
continue;
|
365
|
-
}
|
366
|
-
}
|
367
|
-
|
368
|
-
// take the last group
|
369
|
-
// there is no need to test these cubes again,
|
370
|
-
// because they have been tested and did not yield any improvement
|
371
|
-
CubeInsert( s_CubeGroup[0] );
|
372
|
-
CubeInsert( s_CubeGroup[1] );
|
373
|
-
// CheckForCloseCubes( s_CubeGroup[0], 1 );
|
374
|
-
// CheckForCloseCubes( s_CubeGroup[1], 1 );
|
375
|
-
|
376
|
-
SUCCESS:
|
377
|
-
// clean the results of generating ExorLinked cubes
|
378
|
-
ExorLinkCubeIteratorCleanUp( 1 ); // take the last group
|
379
|
-
// free old cubes
|
380
|
-
AddToFreeCubes( s_pC1 );
|
381
|
-
AddToFreeCubes( s_pC2 );
|
382
|
-
// increate the counter
|
383
|
-
s_cReshapes++;
|
384
|
-
}
|
385
|
-
}
|
386
|
-
// print the report
|
387
|
-
if ( g_CoverInfo.Verbosity == 2 )
|
388
|
-
{
|
389
|
-
printf( "ExLink-%d", 2 );
|
390
|
-
printf( ": Que= %5d", s_cEnquequed );
|
391
|
-
printf( " Att= %4d", s_cAttempts );
|
392
|
-
printf( " Resh= %4d", s_cReshapes );
|
393
|
-
printf( " NoResh= %4d", s_cAttempts - s_cReshapes );
|
394
|
-
printf( " Cubes= %3d", g_CoverInfo.nCubesInUse );
|
395
|
-
printf( " (%d)", s_nCubesBefore - g_CoverInfo.nCubesInUse );
|
396
|
-
printf( " Lits= %5d", CountLiterals() );
|
397
|
-
printf( " QCost = %6d", CountQCost() );
|
398
|
-
printf( "\n" );
|
399
|
-
}
|
400
|
-
|
401
|
-
// return the number of cubes gained in the process
|
402
|
-
return s_nCubesBefore - g_CoverInfo.nCubesInUse;
|
403
|
-
}
|
404
|
-
|
405
|
-
int IterativelyApplyExorLink3( char fDistEnable )
|
406
|
-
{
|
407
|
-
int z, c, d;
|
408
|
-
// this var is specific to ExorLink-3
|
409
|
-
s_Dist = (cubedist)1;
|
410
|
-
|
411
|
-
// enable pair accumulation
|
412
|
-
s_fDistEnable2 = fDistEnable & 1;
|
413
|
-
s_fDistEnable3 = fDistEnable & 2;
|
414
|
-
s_fDistEnable4 = fDistEnable & 4;
|
415
|
-
|
416
|
-
// initialize counters
|
417
|
-
s_cEnquequed = GetQuequeStats( s_Dist );
|
418
|
-
s_cAttempts = 0;
|
419
|
-
s_cReshapes = 0;
|
420
|
-
|
421
|
-
// remember the number of cubes before minimization
|
422
|
-
s_nCubesBefore = g_CoverInfo.nCubesInUse;
|
423
|
-
|
424
|
-
for ( z = IteratorCubePairStart( s_Dist, &s_pC1, &s_pC2 ); z; z = IteratorCubePairNext() )
|
425
|
-
{
|
426
|
-
s_cAttempts++;
|
427
|
-
// start ExorLink of the given Distance
|
428
|
-
if ( ExorLinkCubeIteratorStart( s_CubeGroup, s_pC1, s_pC2, s_Dist ) )
|
429
|
-
{
|
430
|
-
// extract old cubes from storage (to prevent EXORing with their derivitives)
|
431
|
-
CubeExtract( s_pC1 );
|
432
|
-
CubeExtract( s_pC2 );
|
433
|
-
|
434
|
-
// mark the current position in the cube pair queques
|
435
|
-
MarkSet();
|
436
|
-
|
437
|
-
// check cube groups one by one
|
438
|
-
s_GroupCounter = 0;
|
439
|
-
do
|
440
|
-
{ // check the cubes of this group one by one
|
441
|
-
for ( c = 0; c < 3; c++ )
|
442
|
-
if ( !s_CubeGroup[c]->fMark ) // this cube has not yet been checked
|
443
|
-
{
|
444
|
-
s_Gain = CheckForCloseCubes( s_CubeGroup[c], 0 ); // do not insert the cube, by default
|
445
|
-
if ( s_Gain )
|
446
|
-
{ // this cube leads to improvement or reshaping - it is already inserted
|
447
|
-
|
448
|
-
// decide whether to accept this group based on literal count
|
449
|
-
if ( s_fDecreaseLiterals && s_Gain == 1 )
|
450
|
-
if ( g_CoverInfo.fUseQCost ?
|
451
|
-
s_CubeGroup[0]->q + s_CubeGroup[1]->q + s_CubeGroup[2]->q > s_pC1->q + s_pC2->q + s_ChangeStore.PrevQq :
|
452
|
-
s_CubeGroup[0]->a + s_CubeGroup[1]->a + s_CubeGroup[2]->a > s_pC1->a + s_pC2->a + s_ChangeStore.PrevQa
|
453
|
-
) // the group increases literals
|
454
|
-
{ // do not take this group
|
455
|
-
// remember the group
|
456
|
-
s_GroupBest = s_GroupCounter;
|
457
|
-
// undo changes to be able to continue checking other groups
|
458
|
-
UndoRecentChanges();
|
459
|
-
break;
|
460
|
-
}
|
461
|
-
|
462
|
-
// take this group
|
463
|
-
for ( d = 0; d < 3; d++ ) // insert other cubes
|
464
|
-
if ( d != c )
|
465
|
-
{
|
466
|
-
CheckForCloseCubes( s_CubeGroup[d], 1 );
|
467
|
-
// if ( s_CubeGroup[d]->fMark )
|
468
|
-
// CheckAndInsert( s_CubeGroup[d] );
|
469
|
-
// CheckOnlyOneCube( s_CubeGroup[d] );
|
470
|
-
// CheckForCloseCubes( s_CubeGroup[d], 1 );
|
471
|
-
// else
|
472
|
-
// CheckForCloseCubes( s_CubeGroup[d], 1 );
|
473
|
-
}
|
474
|
-
|
475
|
-
// clean the results of generating ExorLinked cubes
|
476
|
-
ExorLinkCubeIteratorCleanUp( 1 ); // take the last group
|
477
|
-
// free old cubes
|
478
|
-
AddToFreeCubes( s_pC1 );
|
479
|
-
AddToFreeCubes( s_pC2 );
|
480
|
-
// update the counter
|
481
|
-
s_cReshapes++;
|
482
|
-
goto END_OF_LOOP;
|
483
|
-
}
|
484
|
-
else // mark the cube as checked
|
485
|
-
s_CubeGroup[c]->fMark = 1;
|
486
|
-
}
|
487
|
-
// the group is not taken - find the new group
|
488
|
-
s_GroupCounter++;
|
489
|
-
|
490
|
-
// rewind to the previously marked position in the cube pair queques
|
491
|
-
MarkRewind();
|
492
|
-
}
|
493
|
-
while ( ExorLinkCubeIteratorNext( s_CubeGroup ) );
|
494
|
-
// none of the groups leads to improvement
|
495
|
-
|
496
|
-
// return the old cubes back to storage
|
497
|
-
CubeInsert( s_pC1 );
|
498
|
-
CubeInsert( s_pC2 );
|
499
|
-
// clean the results of generating ExorLinked cubes
|
500
|
-
ExorLinkCubeIteratorCleanUp( 0 );
|
501
|
-
}
|
502
|
-
END_OF_LOOP: {}
|
503
|
-
}
|
504
|
-
|
505
|
-
// print the report
|
506
|
-
if ( g_CoverInfo.Verbosity == 2 )
|
507
|
-
{
|
508
|
-
printf( "ExLink-%d", 3 );
|
509
|
-
printf( ": Que= %5d", s_cEnquequed );
|
510
|
-
printf( " Att= %4d", s_cAttempts );
|
511
|
-
printf( " Resh= %4d", s_cReshapes );
|
512
|
-
printf( " NoResh= %4d", s_cAttempts - s_cReshapes );
|
513
|
-
printf( " Cubes= %3d", g_CoverInfo.nCubesInUse );
|
514
|
-
printf( " (%d)", s_nCubesBefore - g_CoverInfo.nCubesInUse );
|
515
|
-
printf( " Lits= %5d", CountLiterals() );
|
516
|
-
printf( " QCost = %6d", CountQCost() );
|
517
|
-
printf( "\n" );
|
518
|
-
}
|
519
|
-
|
520
|
-
// return the number of cubes gained in the process
|
521
|
-
return s_nCubesBefore - g_CoverInfo.nCubesInUse;
|
522
|
-
}
|
523
|
-
|
524
|
-
int IterativelyApplyExorLink4( char fDistEnable )
|
525
|
-
{
|
526
|
-
int z, c;
|
527
|
-
// this var is specific to ExorLink-4
|
528
|
-
s_Dist = (cubedist)2;
|
529
|
-
|
530
|
-
// enable pair accumulation
|
531
|
-
s_fDistEnable2 = fDistEnable & 1;
|
532
|
-
s_fDistEnable3 = fDistEnable & 2;
|
533
|
-
s_fDistEnable4 = fDistEnable & 4;
|
534
|
-
|
535
|
-
// initialize counters
|
536
|
-
s_cEnquequed = GetQuequeStats( s_Dist );
|
537
|
-
s_cAttempts = 0;
|
538
|
-
s_cReshapes = 0;
|
539
|
-
|
540
|
-
// remember the number of cubes before minimization
|
541
|
-
s_nCubesBefore = g_CoverInfo.nCubesInUse;
|
542
|
-
|
543
|
-
for ( z = IteratorCubePairStart( s_Dist, &s_pC1, &s_pC2 ); z; z = IteratorCubePairNext() )
|
544
|
-
{
|
545
|
-
s_cAttempts++;
|
546
|
-
// start ExorLink of the given Distance
|
547
|
-
if ( ExorLinkCubeIteratorStart( s_CubeGroup, s_pC1, s_pC2, s_Dist ) )
|
548
|
-
{
|
549
|
-
// extract old cubes from storage (to prevent EXORing with their derivitives)
|
550
|
-
CubeExtract( s_pC1 );
|
551
|
-
CubeExtract( s_pC2 );
|
552
|
-
|
553
|
-
// mark the current position in the cube pair queques
|
554
|
-
MarkSet();
|
555
|
-
|
556
|
-
// check cube groups one by one
|
557
|
-
do
|
558
|
-
{ // check the cubes of this group one by one
|
559
|
-
s_GainTotal = 0;
|
560
|
-
for ( c = 0; c < 4; c++ )
|
561
|
-
if ( !s_CubeGroup[c]->fMark ) // this cube has not yet been checked
|
562
|
-
{
|
563
|
-
s_Gain = CheckForCloseCubes( s_CubeGroup[c], 0 ); // do not insert the cube, by default
|
564
|
-
// if the cube leads to gain, it is already inserted
|
565
|
-
s_fInserted[c] = (int)(s_Gain>0);
|
566
|
-
// increment the total gain
|
567
|
-
s_GainTotal += s_Gain;
|
568
|
-
}
|
569
|
-
else
|
570
|
-
s_fInserted[c] = 0; // the cube has already been checked - it is not inserted
|
571
|
-
|
572
|
-
if ( s_GainTotal == 0 ) // the group does not lead to any gain
|
573
|
-
{ // mark the cubes
|
574
|
-
for ( c = 0; c < 4; c++ )
|
575
|
-
s_CubeGroup[c]->fMark = 1;
|
576
|
-
}
|
577
|
-
else if ( s_GainTotal == 1 ) // the group does not lead to substantial gain, too
|
578
|
-
{
|
579
|
-
// undo changes to be able to continue checking groups
|
580
|
-
UndoRecentChanges();
|
581
|
-
// mark those cubes that were not inserted
|
582
|
-
for ( c = 0; c < 4; c++ )
|
583
|
-
s_CubeGroup[c]->fMark = !s_fInserted[c];
|
584
|
-
}
|
585
|
-
else // if ( s_GainTotal > 1 ) // the group reshapes or improves
|
586
|
-
{ // accept the group
|
587
|
-
for ( c = 0; c < 4; c++ ) // insert other cubes
|
588
|
-
if ( !s_fInserted[c] )
|
589
|
-
CheckForCloseCubes( s_CubeGroup[c], 1 );
|
590
|
-
// CheckAndInsert( s_CubeGroup[c] );
|
591
|
-
// clean the results of generating ExorLinked cubes
|
592
|
-
ExorLinkCubeIteratorCleanUp( 1 ); // take the last group
|
593
|
-
// free old cubes
|
594
|
-
AddToFreeCubes( s_pC1 );
|
595
|
-
AddToFreeCubes( s_pC2 );
|
596
|
-
// update the counter
|
597
|
-
s_cReshapes++;
|
598
|
-
goto END_OF_LOOP;
|
599
|
-
}
|
600
|
-
|
601
|
-
// rewind to the previously marked position in the cube pair queques
|
602
|
-
MarkRewind();
|
603
|
-
}
|
604
|
-
while ( ExorLinkCubeIteratorNext( s_CubeGroup ) );
|
605
|
-
// none of the groups leads to improvement
|
606
|
-
|
607
|
-
// return the old cubes back to storage
|
608
|
-
CubeInsert( s_pC1 );
|
609
|
-
CubeInsert( s_pC2 );
|
610
|
-
// clean the results of generating ExorLinked cubes
|
611
|
-
ExorLinkCubeIteratorCleanUp( 0 );
|
612
|
-
}
|
613
|
-
END_OF_LOOP: {}
|
614
|
-
}
|
615
|
-
|
616
|
-
// print the report
|
617
|
-
if ( g_CoverInfo.Verbosity == 2 )
|
618
|
-
{
|
619
|
-
printf( "ExLink-%d", 4 );
|
620
|
-
printf( ": Que= %5d", s_cEnquequed );
|
621
|
-
printf( " Att= %4d", s_cAttempts );
|
622
|
-
printf( " Resh= %4d", s_cReshapes );
|
623
|
-
printf( " NoResh= %4d", s_cAttempts - s_cReshapes );
|
624
|
-
printf( " Cubes= %3d", g_CoverInfo.nCubesInUse );
|
625
|
-
printf( " (%d)", s_nCubesBefore - g_CoverInfo.nCubesInUse );
|
626
|
-
printf( " Lits= %5d", CountLiterals() );
|
627
|
-
printf( " QCost = %6d", CountQCost() );
|
628
|
-
printf( "\n" );
|
629
|
-
}
|
630
|
-
|
631
|
-
// return the number of cubes gained in the process
|
632
|
-
return s_nCubesBefore - g_CoverInfo.nCubesInUse;
|
633
|
-
}
|
634
|
-
|
635
|
-
// local static variables
|
636
|
-
Cube* s_q;
|
637
|
-
int s_Distance;
|
638
|
-
int s_DiffVarNum;
|
639
|
-
int s_DiffVarValueP_old;
|
640
|
-
int s_DiffVarValueP_new;
|
641
|
-
int s_DiffVarValueQ;
|
642
|
-
|
643
|
-
int CheckForCloseCubes( Cube* p, int fAddCube )
|
644
|
-
// checks the cube storage for a cube that is dist-0 and dist-1 removed
|
645
|
-
// from the given one (p) if such a cube is found, extracts it from the data
|
646
|
-
// structure, EXORs it with the given cube, adds the resultant cube
|
647
|
-
// to the data structure and performed the same check for the resultant cube;
|
648
|
-
// returns the number of cubes gained in the process of reduction;
|
649
|
-
// if an adjacent cube is not found, inserts the cube only if (fAddCube==1)!!!
|
650
|
-
{
|
651
|
-
// start the new range
|
652
|
-
NewRangeReset();
|
653
|
-
|
654
|
-
for ( s_q = s_List; s_q; s_q = s_q->Next )
|
655
|
-
{
|
656
|
-
s_Distance = GetDistancePlus( p, s_q );
|
657
|
-
if ( s_Distance > 4 )
|
658
|
-
{
|
659
|
-
}
|
660
|
-
else if ( s_Distance == 4 )
|
661
|
-
{
|
662
|
-
if ( s_fDistEnable4 )
|
663
|
-
NewRangeInsertCubePair( DIST4, p, s_q );
|
664
|
-
}
|
665
|
-
else if ( s_Distance == 3 )
|
666
|
-
{
|
667
|
-
if ( s_fDistEnable3 )
|
668
|
-
NewRangeInsertCubePair( DIST3, p, s_q );
|
669
|
-
}
|
670
|
-
else if ( s_Distance == 2 )
|
671
|
-
{
|
672
|
-
if ( s_fDistEnable2 )
|
673
|
-
NewRangeInsertCubePair( DIST2, p, s_q );
|
674
|
-
}
|
675
|
-
else if ( s_Distance == 1 )
|
676
|
-
{ // extract the cube from the data structure
|
677
|
-
|
678
|
-
//////////////////////////////////////////////////////////
|
679
|
-
// store the changes
|
680
|
-
s_ChangeStore.fInput = (s_DiffVarNum != -1);
|
681
|
-
s_ChangeStore.p = p;
|
682
|
-
s_ChangeStore.PrevQa = s_q->a;
|
683
|
-
s_ChangeStore.PrevPa = p->a;
|
684
|
-
s_ChangeStore.PrevQq = s_q->q;
|
685
|
-
s_ChangeStore.PrevPq = p->q;
|
686
|
-
s_ChangeStore.PrevPz = p->z;
|
687
|
-
s_ChangeStore.Var = s_DiffVarNum;
|
688
|
-
s_ChangeStore.Value = s_DiffVarValueQ;
|
689
|
-
s_ChangeStore.PrevID = s_q->ID;
|
690
|
-
//////////////////////////////////////////////////////////
|
691
|
-
|
692
|
-
CubeExtract( s_q );
|
693
|
-
// perform the EXOR of the two cubes and write the result into p
|
694
|
-
|
695
|
-
// it is important that the resultant cube is written into p!!!
|
696
|
-
|
697
|
-
if ( s_DiffVarNum == -1 )
|
698
|
-
{
|
699
|
-
int i;
|
700
|
-
// exor the output part
|
701
|
-
p->z = 0;
|
702
|
-
for ( i = 0; i < g_CoverInfo.nWordsOut; i++ )
|
703
|
-
{
|
704
|
-
p->pCubeDataOut[i] ^= s_q->pCubeDataOut[i];
|
705
|
-
p->z += BIT_COUNT(p->pCubeDataOut[i]);
|
706
|
-
}
|
707
|
-
}
|
708
|
-
else
|
709
|
-
{
|
710
|
-
// the cube has already been updated by GetDistancePlus()
|
711
|
-
|
712
|
-
// modify the parameters of the number of literals in the new cube
|
713
|
-
// p->a += s_UpdateLiterals[ s_DiffVarValueP ][ s_DiffVarValueQ ];
|
714
|
-
if ( s_DiffVarValueP_old == VAR_NEG || s_DiffVarValueP_old == VAR_POS )
|
715
|
-
p->a--;
|
716
|
-
if ( s_DiffVarValueP_new == VAR_NEG || s_DiffVarValueP_new == VAR_POS )
|
717
|
-
p->a++;
|
718
|
-
p->q = ComputeQCostBits(p);
|
719
|
-
}
|
720
|
-
|
721
|
-
// move q to the free cube list
|
722
|
-
AddToFreeCubes( s_q );
|
723
|
-
|
724
|
-
// make sure that nobody with use the pairs created so far
|
725
|
-
// NewRangeReset();
|
726
|
-
// call the function again for the new cube
|
727
|
-
return 1 + CheckForCloseCubes( p, 1 );
|
728
|
-
}
|
729
|
-
else // if ( Distance == 0 )
|
730
|
-
{ // extract the second cube from the data structure and add them both to the free list
|
731
|
-
AddToFreeCubes( p );
|
732
|
-
AddToFreeCubes( CubeExtract( s_q ) );
|
733
|
-
|
734
|
-
// make sure that nobody with use the pairs created so far
|
735
|
-
NewRangeReset();
|
736
|
-
return 2;
|
737
|
-
}
|
738
|
-
}
|
739
|
-
|
740
|
-
// add the cube to the data structure if needed
|
741
|
-
if ( fAddCube )
|
742
|
-
CubeInsert( p );
|
743
|
-
|
744
|
-
// add temporarily stored new range of cube pairs to the queque
|
745
|
-
NewRangeAdd();
|
746
|
-
|
747
|
-
return 0;
|
748
|
-
}
|
749
|
-
|
750
|
-
void UndoRecentChanges()
|
751
|
-
{
|
752
|
-
Cube * p, * q;
|
753
|
-
// get back cube q that was deleted
|
754
|
-
q = GetFreeCube();
|
755
|
-
// restore the ID
|
756
|
-
q->ID = s_ChangeStore.PrevID;
|
757
|
-
// insert the cube into storage again
|
758
|
-
CubeInsert( q );
|
759
|
-
|
760
|
-
// extract cube p
|
761
|
-
p = CubeExtract( s_ChangeStore.p );
|
762
|
-
|
763
|
-
// modify it back
|
764
|
-
if ( s_ChangeStore.fInput ) // the input has changed
|
765
|
-
{
|
766
|
-
ExorVar( p, s_ChangeStore.Var, (varvalue)s_ChangeStore.Value );
|
767
|
-
p->a = s_ChangeStore.PrevPa;
|
768
|
-
p->q = s_ChangeStore.PrevPq;
|
769
|
-
// p->z did not change
|
770
|
-
}
|
771
|
-
else // if ( s_ChangeStore.fInput ) // the output has changed
|
772
|
-
{
|
773
|
-
int i;
|
774
|
-
for ( i = 0; i < g_CoverInfo.nWordsOut; i++ )
|
775
|
-
p->pCubeDataOut[i] ^= q->pCubeDataOut[i];
|
776
|
-
p->z = s_ChangeStore.PrevPz;
|
777
|
-
// p->a did not change
|
778
|
-
}
|
779
|
-
}
|
780
|
-
|
781
|
-
///////////////////////////////////////////////////////////////////
|
782
|
-
/// CUBE SET MANIPULATION PROCEDURES ///
|
783
|
-
///////////////////////////////////////////////////////////////////
|
784
|
-
|
785
|
-
// Cube set is a list of cubes
|
786
|
-
//static Cube* s_List;
|
787
|
-
|
788
|
-
///////////////////////////////////////////////////////////////////
|
789
|
-
/// Memory Allocation/Delocation ///
|
790
|
-
///////////////////////////////////////////////////////////////////
|
791
|
-
|
792
|
-
int AllocateCubeSets( int nVarsIn, int nVarsOut )
|
793
|
-
{
|
794
|
-
s_List = NULL;
|
795
|
-
|
796
|
-
// clean other data
|
797
|
-
s_fDistEnable2 = 1;
|
798
|
-
s_fDistEnable3 = 0;
|
799
|
-
s_fDistEnable4 = 0;
|
800
|
-
memset( s_CubeGroup, 0, sizeof(void *) * 5 );
|
801
|
-
memset( s_fInserted, 0, sizeof(int) * 5 );
|
802
|
-
s_fDecreaseLiterals = 0;
|
803
|
-
s_cEnquequed = 0;
|
804
|
-
s_cAttempts = 0;
|
805
|
-
s_cReshapes = 0;
|
806
|
-
s_nCubesBefore = 0;
|
807
|
-
s_Gain = 0;
|
808
|
-
s_GainTotal = 0;
|
809
|
-
s_GroupCounter = 0;
|
810
|
-
s_GroupBest = 0;
|
811
|
-
s_pC1 = s_pC2 = NULL;
|
812
|
-
|
813
|
-
return 4;
|
814
|
-
}
|
815
|
-
|
816
|
-
void DelocateCubeSets()
|
817
|
-
{
|
818
|
-
}
|
819
|
-
|
820
|
-
///////////////////////////////////////////////////////////////////
|
821
|
-
/// Insertion Operators ///
|
822
|
-
///////////////////////////////////////////////////////////////////
|
823
|
-
|
824
|
-
void CubeInsert( Cube* p )
|
825
|
-
// inserts the cube into storage (puts it at the beginning of the list)
|
826
|
-
{
|
827
|
-
assert( p->Prev == NULL && p->Next == NULL );
|
828
|
-
assert( p->ID );
|
829
|
-
|
830
|
-
if ( s_List == NULL )
|
831
|
-
s_List = p;
|
832
|
-
else
|
833
|
-
{
|
834
|
-
p->Next = s_List;
|
835
|
-
|
836
|
-
s_List->Prev = p;
|
837
|
-
s_List = p;
|
838
|
-
}
|
839
|
-
|
840
|
-
g_CoverInfo.nCubesInUse++;
|
841
|
-
}
|
842
|
-
|
843
|
-
Cube* CubeExtract( Cube* p )
|
844
|
-
// extracts the cube from storage
|
845
|
-
{
|
846
|
-
// assert( p->Prev && p->Next ); // can be done only with rings
|
847
|
-
assert( p->ID );
|
848
|
-
|
849
|
-
// if ( s_List == p )
|
850
|
-
// s_List = p->Next;
|
851
|
-
// if ( p->Prev )
|
852
|
-
// p->Prev->Next = p->Next;
|
853
|
-
|
854
|
-
if ( s_List == p )
|
855
|
-
s_List = p->Next;
|
856
|
-
else
|
857
|
-
p->Prev->Next = p->Next;
|
858
|
-
|
859
|
-
if ( p->Next )
|
860
|
-
p->Next->Prev = p->Prev;
|
861
|
-
|
862
|
-
p->Prev = NULL;
|
863
|
-
p->Next = NULL;
|
864
|
-
|
865
|
-
g_CoverInfo.nCubesInUse--;
|
866
|
-
return p;
|
867
|
-
}
|
868
|
-
|
869
|
-
///////////////////////////////////////////////////////////////////
|
870
|
-
/// CUBE ITERATOR ///
|
871
|
-
///////////////////////////////////////////////////////////////////
|
872
|
-
|
873
|
-
// the iterator starts from the Head and stops when it sees NULL
|
874
|
-
Cube* s_pCubeLast;
|
875
|
-
|
876
|
-
///////////////////////////////////////////////////////////////////
|
877
|
-
/// Cube Set Iterator ///
|
878
|
-
///////////////////////////////////////////////////////////////////
|
879
|
-
|
880
|
-
Cube* IterCubeSetStart()
|
881
|
-
// starts an iterator that traverses all the cubes in the ring
|
882
|
-
{
|
883
|
-
assert( s_pCubeLast == NULL );
|
884
|
-
|
885
|
-
// check whether the List has cubes
|
886
|
-
if ( s_List == NULL )
|
887
|
-
return NULL;
|
888
|
-
|
889
|
-
return ( s_pCubeLast = s_List );
|
890
|
-
}
|
891
|
-
|
892
|
-
Cube* IterCubeSetNext()
|
893
|
-
// returns the next cube in the cube set
|
894
|
-
// to use it again after it has returned NULL, first call IterCubeSetStart()
|
895
|
-
{
|
896
|
-
assert( s_pCubeLast );
|
897
|
-
return ( s_pCubeLast = s_pCubeLast->Next );
|
898
|
-
}
|
899
|
-
|
900
|
-
///////////////////////////////////////////////////////////////////
|
901
|
-
//// ADJACENCY QUEQUES //////
|
902
|
-
///////////////////////////////////////////////////////////////////
|
903
|
-
|
904
|
-
typedef struct
|
905
|
-
{
|
906
|
-
Cube** pC1; // the pointer to the first cube
|
907
|
-
Cube** pC2; // the pointer to the second cube
|
908
|
-
byte* ID1; // the ID of the first cube
|
909
|
-
byte* ID2; // the ID of the second cube
|
910
|
-
int PosOut; // extract position
|
911
|
-
int PosIn; // insert position
|
912
|
-
int PosCur; // temporary insert position
|
913
|
-
int PosMark; // the marked position
|
914
|
-
int fEmpty; // this flag is 1 if there is nothing in the queque
|
915
|
-
} que;
|
916
|
-
|
917
|
-
static que s_Que[3]; // Dist-2, Dist-3, Dist-4 queques
|
918
|
-
|
919
|
-
// the number of allocated places
|
920
|
-
//int s_nPosAlloc;
|
921
|
-
// the maximum number of occupied places
|
922
|
-
//int s_nPosMax[3];
|
923
|
-
|
924
|
-
//////////////////////////////////////////////////////////////////////
|
925
|
-
// Conditional Adding Cube Pairs To Queques //
|
926
|
-
//////////////////////////////////////////////////////////////////////
|
927
|
-
|
928
|
-
int GetPosDiff( int PosBeg, int PosEnd )
|
929
|
-
{
|
930
|
-
return (PosEnd - PosBeg + s_nPosAlloc) % s_nPosAlloc;
|
931
|
-
}
|
932
|
-
|
933
|
-
void MarkSet()
|
934
|
-
// sets marks in the cube pair queques
|
935
|
-
{
|
936
|
-
s_Que[0].PosMark = s_Que[0].PosIn;
|
937
|
-
s_Que[1].PosMark = s_Que[1].PosIn;
|
938
|
-
s_Que[2].PosMark = s_Que[2].PosIn;
|
939
|
-
}
|
940
|
-
|
941
|
-
void MarkRewind()
|
942
|
-
// rewinds the queques to the previously set marks
|
943
|
-
{
|
944
|
-
s_Que[0].PosIn = s_Que[0].PosMark;
|
945
|
-
s_Que[1].PosIn = s_Que[1].PosMark;
|
946
|
-
s_Que[2].PosIn = s_Que[2].PosMark;
|
947
|
-
}
|
948
|
-
|
949
|
-
void NewRangeReset()
|
950
|
-
// resets temporarily stored new range of cube pairs
|
951
|
-
{
|
952
|
-
s_Que[0].PosCur = s_Que[0].PosIn;
|
953
|
-
s_Que[1].PosCur = s_Que[1].PosIn;
|
954
|
-
s_Que[2].PosCur = s_Que[2].PosIn;
|
955
|
-
}
|
956
|
-
|
957
|
-
void NewRangeAdd()
|
958
|
-
// adds temporarily stored new range of cube pairs to the queque
|
959
|
-
{
|
960
|
-
s_Que[0].PosIn = s_Que[0].PosCur;
|
961
|
-
s_Que[1].PosIn = s_Que[1].PosCur;
|
962
|
-
s_Que[2].PosIn = s_Que[2].PosCur;
|
963
|
-
}
|
964
|
-
|
965
|
-
void NewRangeInsertCubePair( cubedist Dist, Cube* p1, Cube* p2 )
|
966
|
-
// insert one cube pair into the new range
|
967
|
-
{
|
968
|
-
que* p = &s_Que[Dist];
|
969
|
-
int Pos = p->PosCur;
|
970
|
-
|
971
|
-
if ( p->fEmpty || Pos != p->PosOut )
|
972
|
-
{
|
973
|
-
p->pC1[Pos] = p1;
|
974
|
-
p->pC2[Pos] = p2;
|
975
|
-
p->ID1[Pos] = p1->ID;
|
976
|
-
p->ID2[Pos] = p2->ID;
|
977
|
-
|
978
|
-
p->PosCur = (p->PosCur+1)%s_nPosAlloc;
|
979
|
-
}
|
980
|
-
else
|
981
|
-
assert(0);
|
982
|
-
// cout << endl << "DIST-" << (int)(Dist+2) << ": Have run out of queque space!" << endl;
|
983
|
-
}
|
984
|
-
|
985
|
-
void PrintQuequeStats()
|
986
|
-
{
|
987
|
-
/*
|
988
|
-
cout << endl << "Queque statistics: ";
|
989
|
-
cout << " Alloc = " << s_nPosAlloc;
|
990
|
-
cout << " DIST2 = " << GetPosDiff( s_Que[0].PosOut, s_Que[0].PosIn );
|
991
|
-
cout << " DIST3 = " << GetPosDiff( s_Que[1].PosOut, s_Que[1].PosIn );
|
992
|
-
cout << " DIST4 = " << GetPosDiff( s_Que[2].PosOut, s_Que[2].PosIn );
|
993
|
-
cout << endl;
|
994
|
-
cout << endl;
|
995
|
-
*/
|
996
|
-
}
|
997
|
-
|
998
|
-
int GetQuequeStats( cubedist Dist )
|
999
|
-
{
|
1000
|
-
return GetPosDiff( s_Que[Dist].PosOut, s_Que[Dist].PosIn );
|
1001
|
-
}
|
1002
|
-
|
1003
|
-
//////////////////////////////////////////////////////////////////////
|
1004
|
-
// Queque Iterators //
|
1005
|
-
//////////////////////////////////////////////////////////////////////
|
1006
|
-
|
1007
|
-
// iterating through the queque (with authomatic garbage collection)
|
1008
|
-
// only one iterator can be active at a time
|
1009
|
-
static struct
|
1010
|
-
{
|
1011
|
-
int fStarted; // status of the iterator (1 if working)
|
1012
|
-
cubedist Dist; // the currently iterated queque
|
1013
|
-
Cube** ppC1; // the position where the first cube pointer goes
|
1014
|
-
Cube** ppC2; // the position where the second cube pointer goes
|
1015
|
-
int PosStop; // the stop position (to prevent the iterator from
|
1016
|
-
// choking when new pairs are added during iteration)
|
1017
|
-
int CutValue; // the number of literals below which the cubes are not used
|
1018
|
-
} s_Iter;
|
1019
|
-
|
1020
|
-
static que* pQ;
|
1021
|
-
static Cube *p1, *p2;
|
1022
|
-
|
1023
|
-
int IteratorCubePairStart( cubedist CubeDist, Cube** ppC1, Cube** ppC2 )
|
1024
|
-
// start an iterator through cubes of dist CubeDist,
|
1025
|
-
// the resulting pointers are written into ppC1 and ppC2
|
1026
|
-
// returns 1 if the first cube pair is found
|
1027
|
-
{
|
1028
|
-
int fEntryFound;
|
1029
|
-
|
1030
|
-
assert( s_Iter.fStarted == 0 );
|
1031
|
-
assert( CubeDist >= 0 && CubeDist <= 2 );
|
1032
|
-
|
1033
|
-
s_Iter.fStarted = 1;
|
1034
|
-
s_Iter.Dist = CubeDist;
|
1035
|
-
s_Iter.ppC1 = ppC1;
|
1036
|
-
s_Iter.ppC2 = ppC2;
|
1037
|
-
|
1038
|
-
s_Iter.PosStop = s_Que[ CubeDist ].PosIn;
|
1039
|
-
|
1040
|
-
// determine the cut value
|
1041
|
-
// s_Iter.CutValue = s_nLiteralsInUse/s_nCubesInUse/2;
|
1042
|
-
s_Iter.CutValue = -1;
|
1043
|
-
|
1044
|
-
fEntryFound = 0;
|
1045
|
-
// go through the entries while there is something in the queque
|
1046
|
-
for ( pQ = &s_Que[ CubeDist ]; pQ->PosOut != s_Iter.PosStop; pQ->PosOut = (pQ->PosOut+1)%s_nPosAlloc )
|
1047
|
-
{
|
1048
|
-
p1 = pQ->pC1[ pQ->PosOut ];
|
1049
|
-
p2 = pQ->pC2[ pQ->PosOut ];
|
1050
|
-
|
1051
|
-
// check whether the entry is valid
|
1052
|
-
if ( p1->ID == pQ->ID1[ pQ->PosOut ] &&
|
1053
|
-
p2->ID == pQ->ID2[ pQ->PosOut ] ) //&&
|
1054
|
-
//p1->x + p1->y + p2->x + p2->y > s_Iter.CutValue )
|
1055
|
-
{
|
1056
|
-
fEntryFound = 1;
|
1057
|
-
break;
|
1058
|
-
}
|
1059
|
-
}
|
1060
|
-
|
1061
|
-
if ( fEntryFound )
|
1062
|
-
{ // write the result into the pick-up place
|
1063
|
-
*ppC1 = pQ->pC1[ pQ->PosOut ];
|
1064
|
-
*ppC2 = pQ->pC2[ pQ->PosOut ];
|
1065
|
-
|
1066
|
-
pQ->PosOut = (pQ->PosOut+1)%s_nPosAlloc;
|
1067
|
-
}
|
1068
|
-
else
|
1069
|
-
s_Iter.fStarted = 0;
|
1070
|
-
return fEntryFound;
|
1071
|
-
}
|
1072
|
-
|
1073
|
-
int IteratorCubePairNext()
|
1074
|
-
// gives the next VALID cube pair (the previous one is automatically dequequed)
|
1075
|
-
{
|
1076
|
-
int fEntryFound = 0;
|
1077
|
-
assert( s_Iter.fStarted );
|
1078
|
-
|
1079
|
-
// go through the entries while there is something in the queque
|
1080
|
-
for ( pQ = &s_Que[ s_Iter.Dist ]; pQ->PosOut != s_Iter.PosStop; pQ->PosOut = (pQ->PosOut+1)%s_nPosAlloc )
|
1081
|
-
{
|
1082
|
-
p1 = pQ->pC1[ pQ->PosOut ];
|
1083
|
-
p2 = pQ->pC2[ pQ->PosOut ];
|
1084
|
-
|
1085
|
-
// check whether the entry is valid
|
1086
|
-
if ( p1->ID == pQ->ID1[ pQ->PosOut ] &&
|
1087
|
-
p2->ID == pQ->ID2[ pQ->PosOut ] ) //&&
|
1088
|
-
//p1->x + p1->y + p2->x + p2->y > s_Iter.CutValue )
|
1089
|
-
{
|
1090
|
-
fEntryFound = 1;
|
1091
|
-
break;
|
1092
|
-
}
|
1093
|
-
}
|
1094
|
-
|
1095
|
-
if ( fEntryFound )
|
1096
|
-
{ // write the result into the pick-up place
|
1097
|
-
*(s_Iter.ppC1) = pQ->pC1[ pQ->PosOut ];
|
1098
|
-
*(s_Iter.ppC2) = pQ->pC2[ pQ->PosOut ];
|
1099
|
-
|
1100
|
-
pQ->PosOut = (pQ->PosOut+1)%s_nPosAlloc;
|
1101
|
-
}
|
1102
|
-
else // iteration has finished
|
1103
|
-
s_Iter.fStarted = 0;
|
1104
|
-
|
1105
|
-
return fEntryFound;
|
1106
|
-
}
|
1107
|
-
|
1108
|
-
//////////////////////////////////////////////////////////////////////
|
1109
|
-
// Allocation/Delocation //
|
1110
|
-
//////////////////////////////////////////////////////////////////////
|
1111
|
-
|
1112
|
-
int AllocateQueques( int nPlaces )
|
1113
|
-
// nPlaces should be approximately nCubes*nCubes/10
|
1114
|
-
// allocates memory for cube pair queques
|
1115
|
-
{
|
1116
|
-
int i;
|
1117
|
-
s_nPosAlloc = nPlaces;
|
1118
|
-
|
1119
|
-
for ( i = 0; i < 3; i++ )
|
1120
|
-
{
|
1121
|
-
// clean data
|
1122
|
-
memset( &s_Que[i], 0, sizeof(que) );
|
1123
|
-
|
1124
|
-
s_Que[i].pC1 = (Cube**) ABC_ALLOC( Cube*, nPlaces );
|
1125
|
-
s_Que[i].pC2 = (Cube**) ABC_ALLOC( Cube*, nPlaces );
|
1126
|
-
s_Que[i].ID1 = (byte*) ABC_ALLOC( byte, nPlaces );
|
1127
|
-
s_Que[i].ID2 = (byte*) ABC_ALLOC( byte, nPlaces );
|
1128
|
-
|
1129
|
-
if ( s_Que[i].pC1==NULL || s_Que[i].pC2==NULL || s_Que[i].ID1==NULL || s_Que[i].ID2==NULL )
|
1130
|
-
return 0;
|
1131
|
-
|
1132
|
-
s_nPosMax[i] = 0;
|
1133
|
-
s_Que[i].fEmpty = 1;
|
1134
|
-
}
|
1135
|
-
|
1136
|
-
return nPlaces * (sizeof(Cube*) + sizeof(Cube*) + 2*sizeof(byte) );
|
1137
|
-
}
|
1138
|
-
|
1139
|
-
void DelocateQueques()
|
1140
|
-
{
|
1141
|
-
int i;
|
1142
|
-
for ( i = 0; i < 3; i++ )
|
1143
|
-
{
|
1144
|
-
ABC_FREE( s_Que[i].pC1 );
|
1145
|
-
ABC_FREE( s_Que[i].pC2 );
|
1146
|
-
ABC_FREE( s_Que[i].ID1 );
|
1147
|
-
ABC_FREE( s_Que[i].ID2 );
|
1148
|
-
}
|
1149
|
-
}
|
1150
|
-
|
1151
|
-
///////////////////////////////////////////////////////////////////
|
1152
|
-
//////////// End of File /////////////////
|
1153
|
-
///////////////////////////////////////////////////////////////////
|
1154
|
-
|
1155
|
-
|
1156
|
-
ABC_NAMESPACE_IMPL_END
|