diff --git a/buddy/ChangeLog b/buddy/ChangeLog index 6a8ed4429..10cb17a77 100644 --- a/buddy/ChangeLog +++ b/buddy/ChangeLog @@ -1,5 +1,9 @@ 2003-08-06 Alexandre Duret-Lutz + * doc/Makefile.am (EXTRA_DIST): Replace buddy.ps by buddy.pdf + (the latter has been rebuilt and on Jørn's request it explicitly + mentions the differences with the 2.2 manual). + * src/bddop.c (bdd_forallcomp, bdd_uniquecomp): Fix documentation. 2003-07-17 Alexandre Duret-Lutz diff --git a/buddy/doc/Makefile.am b/buddy/doc/Makefile.am index 467fd57d2..9d2ed0a48 100644 --- a/buddy/doc/Makefile.am +++ b/buddy/doc/Makefile.am @@ -1 +1 @@ -EXTRA_DIST = bddnotes.ps buddy.ps tech.txt +EXTRA_DIST = bddnotes.ps buddy.pdf tech.txt diff --git a/buddy/doc/buddy.pdf b/buddy/doc/buddy.pdf new file mode 100644 index 000000000..752b52a8d Binary files /dev/null and b/buddy/doc/buddy.pdf differ diff --git a/buddy/doc/buddy.ps b/buddy/doc/buddy.ps deleted file mode 100644 index b7041107e..000000000 --- a/buddy/doc/buddy.ps +++ /dev/null @@ -1,7287 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software -%%Title: buddy.dvi -%%Pages: 104 -%%PageOrder: Ascend -%%BoundingBox: 0 0 596 842 -%%EndComments -%DVIPSWebPage: (www.radicaleye.com) -%DVIPSCommandLine: dvips buddy -%DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2002.11.09:1826 -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S -N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 -mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 -0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ -landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize -mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ -matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round -exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ -statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] -N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin -/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array -/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 -array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N -df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A -definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get -}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} -B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 -1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx -0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx -sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ -rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp -gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B -/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ -/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ -A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy -get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} -ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp -fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 -{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add -chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ -1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} -forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn -/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put -}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ -bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A -mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ -SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ -userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X -1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 -index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N -/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ -/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) -(LaserWriter 16/600)]{A length product length le{A length product exch 0 -exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse -end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask -grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} -imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round -exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto -fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p -delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} -B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ -p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S -rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end - -%%EndProcSet -%%BeginProcSet: special.pro -%! -TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N -/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N -/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N -/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ -/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho -X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B -/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ -/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known -{userdict/md get type/dicttype eq{userdict begin md length 10 add md -maxlength ge{/md md dup length 20 add dict copy def}if end md begin -/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S -atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ -itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll -transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll -curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf -pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} -if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 --1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 -get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip -yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub -neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ -noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop -90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get -neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr -1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr -2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 --1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S -TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ -Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale -}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState -save N userdict maxlength dict begin/magscale true def normalscale -currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts -/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x -psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx -psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub -TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{ -psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 -roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath -moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict -begin/SpecialSave save N gsave normalscale currentpoint TR -@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{ -CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto -closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx -sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR -}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse -CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury -lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N -/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end} -repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N -/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX -currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY -moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X -/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 -1 startangle endangle arc savematrix setmatrix}N end - -%%EndProcSet -TeXDict begin 39158280 55380996 1000 600 600 (buddy.dvi) -@start -%DVIPSBitmapFont: Fa cmr6 6 3 -/Fa 3 52 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49 -DI<13FF000313C0380F03E0381C00F014F800 -3E13FC147CA2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00 -F01478147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFF -C00001130018227DA01E>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fb cmex10 10 1 -/Fb 1 95 df94 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fc cmsy10 10.95 17 -/Fc 17 111 df<007FB812F8B912FCA26C17F83604789847>0 D3 -D8 D -15 D<1818187CEF01FCEF07F8EF1FF0EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7 -FCED07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC0 -4848CAFCEA07FCEA1FF0EA7FC048CBFC5AEA7F80EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB -0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED03FE923800 -FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FC170018381800AE007FB812 -F8B912FCA26C17F8364878B947>20 D<126012F812FEEA7F80EA3FE0EA0FF8EA03FEC66C -7EEB3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE913800FF80ED3FE0ED0FF8ED -03FE923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0EF0FF8EF03FC1701EF07F8EF -1FF0EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC04A48C8FC -EC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA1FF0EA7FC048 -CBFC12FC1270CCFCAE007FB812F8B912FCA26C17F8364878B947>I40 DI<03F015F0A20201824B15780203167C4B153C -0207163E4A488192C97E4A83023E707E023C1603027C834A707E49B97E49844984498401 -3FCBEA0FC0017E727E49727ED803F8F001FCD80FE0F0007FD83FC0F13FC0B4CDEA0FF0A2 -D83FC0F13FC0D80FE0F17F00D803F8F001FCC66CF003F0017E4E5A6D4E5A010FBAC7FC6D -606D606D60D900F8C9EA01F0027C4C5A023C5F023E16076E4C5A6E94C8FC6F5D6E6C153E -0203163C6F157C020116786F15F802005EA254327DAF5B>44 D<176017F01601A2EE03E0 -A2EE07C0A2EE0F80A2EE1F00A2163EA25EA25EA24B5AA24B5AA24B5AA24B5AA24BC7FCA2 -153EA25DA25DA24A5AA24A5AA24A5AA24A5AA24AC8FCA2143EA25CA25CA2495AA2495AA2 -495AA2495AA249C9FCA2133EA25BA25BA2485AA2485AA2485AA2485AA248CAFCA2123EA2 -5AA25AA25A12602C5473C000>54 D<007FB81280B912C0A27ECA1203B3A232187B9F3D> -58 D<15C04A7E4A7EA24A7EA34A7EA2EC1F3EA2EC3E1FA2EC3C0F027C7FA24A6C7EA249 -486C7EA2ECE001010380A249486C7EA24948137CA249C77EA2011E141E013E141FA2496E -7EA2496E7EA2491403000182A248486E7EA248486E7EA2491578000F167CA248C97EA200 -3E82A2003C82007C1780A248EE07C0A24816030060EE018032397BB63D>94 -D<0060EE018000F0EE03C06C1607A2007CEE0F80A2003C1700003E5EA26C163EA26C6C5D -A2000716786D15F8A26C6C4A5AA26C6C4A5AA200005E6D1407A2017C4A5AA26D4AC7FCA2 -011E141E011F143EA26D6C5BA26D6C5BA26D6C485AA201015CECF003A26D6C485AA29138 -7C0F80A2023C90C8FCEC3E1FA2EC1F3EA2EC0FFCA26E5AA36E5AA26E5A6E5A32397BB63D ->I<146014F01301A214E01303A214C01307A2EB0F80A214005BA2131E133EA25BA21378 -13F8A25B1201A25B1203A2485AA25B120FA290C7FC5AA2123EA2123C127CA2127812F8A4 -1278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007FA21378137CA27F -A2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A213001460145A77C323>104 -D<126012F07EA21278127CA2123C123EA27EA27E7FA212077FA26C7EA212017FA212007F -A21378137CA27FA2131E131FA27F1480A2EB07C0A2130314E0A2130114F0A414E01303A2 -14C01307A2EB0F80A214005BA2131E133EA25BA2137813F8A25B1201A25B1203A2485AA2 -5B120FA290C7FC5AA2123EA2123C127CA2127812F8A25A1260145A7BC323>I<126012F0 -B3B3B3B3B11260045B76C319>I<126012F07EA21278127CA2123C123EA2121E121FA27E -7FA212077FA212037FA212017FA212007FA21378137CA27FA2131E131FA27F80A2130780 -A2130380A2130180A2130080A21478147CA2143C143EA2141E141FA26E7EA2140781A214 -0381A2140181A2140081A21578157CA2153C153EA2151E151FA2811680A2150716C0A215 -03ED0180225B7BC32D>110 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fd cmmi12 12 2 -/Fd 2 119 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>58 -D<013E140ED9FF80EB3F802603C3C0137F380703E0380601F0120E121CD81803143F0038 -151F0030150FA2D87007140700605BA2D8E00F150000C0497FEA001F4A5B1606133F91C7 -FC160E49140C137EA2161C01FE14185B1638163016704848146016E05E150100005D1503 -6D49C7FC1506017C130E017E5B6D137890380F81E06DB45AD900FEC8FC292D7DAB2F> -118 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fe cmbx12 12 23 -/Fe 23 121 df<161E163FB3AF007FBB1280BC12C0A46C1A80C9003FCAFCB3AF161E4A4A -7ABD57>43 D46 D48 DII<16 -3FA25E5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E -147C14F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7 -FC123E5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>52 -D67 -D69 D73 -D77 -D<903801FFE0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7E -A26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC0100 -0313E0000F1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013E -EBFFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 -D99 D101 DI108 D<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5 -D8F001B512E002816E4880913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F00 -9026FF3E007F6C019E6D013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081 -B60003B512FEA5572D7CAC5E>I<90397F8007FEB590383FFF8092B512E0028114F89139 -87F03FFC91388F801F000390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083 -B512FEA5372D7CAC3E>II< -90397FC00FF8B590B57E02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07 -FF6C496D13804A15C04A6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C -13E06E15C06E5B6E4913806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091 -C7FCED1FF092C9FCADB67EA536407DAC3E>I<90387F807FB53881FFE0028313F0028F13 -F8ED8FFC91389F1FFE000313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA3 -5CB3A5B612E0A5272D7DAC2E>114 D<90391FFC038090B51287000314FF120F381FF003 -383FC00049133F48C7121F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF -6C14C015F06C14FC6C800003806C15806C7E010F14C0EB003F020313E0140000F0143FA2 -6C141F150FA27EA26C15C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8 -F03F13E026E007FEC7FC232F7CAD2C>II120 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Ff cmti10 10.95 35 -/Ff 35 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C -137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 -E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 -3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 -13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 -49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 -D<1838187CA218F8170118F0EF03E0A2EF07C0A2EF0F80171F1800173EA25FA25F16015F -4C5AA24C5AA24C5A161F94C7FC163EA25EA25E15015E4B5AA24B5AA24B5A151F93C8FC15 -3EA25DA25D14015D4A5AA24A5AA24A5A141F92C9FC143EA25CA25C13015C495AA2495AA2 -495A131F91CAFC133EA25BA25B12015B485AA2485AA2485A121F90CBFC123EA25AA25AA2 -5A5A365B7FC32E>47 D<15FE913803FFC091380F01F091383C00F84A137C4A7F4948133F -49487F4A148049C7FC5BEB0E0C011E15C0EB1C0EEB3C06133813781370020E133FD9F00C -148013E0141C0218137F00011600EBC0384A13FEEC600102E05B3A00E3C003F89039FF00 -07F0013C495A90C7485A5E037FC7FC15FC4A5A4A5AEC0FC04AC8FC147E14F8EB03E0495A -011FC9FC133E49141801F0143C48481438485A1678485A48C85A120E001E4A5AD83FE013 -0301FF495A397C3FF01FD8780FB55AD8700391C7FCD8F0015B486C6C5A6E5AEC07C02A3F -79BC2E>50 D55 D<171C173C177CA217FCA216011603A21607A24C7EA2161DA21639 -1679167116E1A2ED01C1A2ED038115071601150EA2031C7FA24B7EA25D15F05D4A5AA24A -5AA24AC7FC5C140E5C021FB6FC4A81A20270C7127FA25C13015C495AA249C8FCA2130E13 -1E131C133C5B01F882487ED807FEEC01FFB500E0017FEBFF80A25C39417BC044>65 -D<49B712C018F818FE903B0003FC0001FF9438007F804BEC3FC0A2F01FE014074B15F018 -0FA2140F5D181FA2021F16E05D183F19C0023FED7F804B14FF19004D5A027F4A5A92C7EA -07F0EF1FE0EF7F804AD903FEC7FC92B512F017FE4AC7EA3F800101ED1FE04A6E7E170784 -01036F7E5CA30107825CA3010F5E4A1407A260011F150F5C4D5A60013F153F4A4A5A4D5A -017F4A90C7FC4C5A91C7EA0FF849EC3FF0B812C094C8FC16F83C3E7BBD40>I<9339FF80 -01C0030F13E0033F9038F803809239FF807E07913A03FC001F0FDA0FF0EB071FDA1FC0EC -BF00DA7F806DB4FC4AC77E495AD903F86E5A495A130F4948157E4948157C495A13FF91C9 -FC4848167812035B1207491670120FA2485A95C7FC485AA3127F5BA312FF5BA490CCFCA2 -170FA2170EA2171E171C173C173817786C16706D15F04C5A003F5E6D1403001F4B5A6D4A -C8FC000F151E6C6C5C6C6C14F86C6C495A6C6CEB07C090397FC03F8090261FFFFEC9FC01 -0713F0010013803A4272BF41>I<49B712C018F818FE903B0003FE0003FF9438007F804B -EC1FC0F00FE0F007F014074BEC03F8F001FCA2140F4BEC00FEA3141F4B15FFA3143F5DA3 -027F5D5DA219FE14FF92C81203A34917FC4A1507A219F813034A150F19F0A20107EE1FE0 -5CF03FC0A2010FEE7F804A16006060011F4B5A4A4A5A4D5AA2013F4B5A4AEC3FC04DC7FC -017F15FEEE03FC4AEB0FF001FFEC7FE0B8128004FCC8FC16E0403E7BBD45>I<49B812F8 -A390260003FEC7121F18074B14031801F000F014075DA3140F5D19E0A2141F4B1338A2EF -7801023F027013C04B91C7FCA217F0027F5CED80011603160F91B65AA3ED001F49EC0780 -5CA3010392C8FC5CF003804C13070107020E14005C93C75A180E010F161E4A151C183CA2 -011F5E5C60A2013F15014A4A5A1707017F150F4D5A4A147F01FF913807FF80B9FCA295C7 -FC3D3E7BBD3E>I<49B6FC5BA2D9000313005D5DA314075DA3140F5DA3141F5DA3143F5D -A3147F5DA314FF92C7FCA35B5CA313035CA313075CA3130F5CA3131F5CA3133F5CA2137F -A25C497EB67EA3283E7BBD23>73 D<49B5933807FFFC496062D90003F0FC00505ADBBF80 -5E1A771AEF1407033F923801CFE0A2F1039F020FEE071F020E606F6C140E1A3F021E161C -021C04385BA2F1707F143C023804E090C7FCF001C0629126780FE0495A02705FF00700F0 -0E0114F002E0031C5BA2F03803010116704A6C6C5D18E019070103ED01C00280DA03805B -A2943807000F13070200020E5C5FDB03F8141F495D010E4B5CA24D133F131E011CDAF9C0 -5CEEFB80197F013C6DB4C7FC013895C8FC5E01784A5C13F8486C4A5CD807FE4C7EB500F0 -4948B512FE16E01500563E7BBD52>77 D<49B77E18F018FC903B0003FE0003FEEF00FF4B -EC7F80F03FC00207151F19E05DA2020F16F0A25DA2141FF03FE05DA2023F16C0187F4B15 -80A2027FEDFF00604B495A4D5A02FF4A5A4D5A92C7EA3FC04CB4C7FC4990B512FC17E04A -CAFCA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA25C497EB67E -A33C3E7BBD3E>80 D<92391FE00380ED7FFC913A01FFFE0700913907F01F8F91390FC007 -DF4AC66CB4FC023E6D5A4A130014FC495A4948147CA2495AA2010F15785CA3011F1570A4 -6E91C7FCA2808014FE90380FFFE015FC6DEBFF8016E06D806D806D6C7F141F02037FEC00 -3FED07FF1501A281A282A212075A167E120EA2001E15FE5EA25E003E14015E003F14034B -5A486C5C150F6D495A6D49C8FCD8F9F0137C39F8FE01F839F03FFFF0D8E00F13C026C001 -FEC9FC314279BF33>83 D<48B9FCA25A903AFE001FF00101F89138E0007FD807E0163E49 -013F141E5B48C75BA2001E147FA2001C4B131C123C003814FFA2007892C7FC12704A153C -00F01738485CC716001403A25DA21407A25DA2140FA25DA2141FA25DA2143FA25DA2147F -A25DA214FFA292C9FCA25BA25CA21303A25CEB0FFE003FB67E5AA2383D71BC41>I<147E -49B47E903907C1C38090391F80EFC090383F00FF017E137F4914804848133F485AA24848 -1400120F5B001F5C157E485AA215FE007F5C90C7FCA21401485C5AA21403EDF0385AA214 -07EDE078020F1370127C021F13F0007E013F13E0003E137FECF3E1261F01E313C03A0F87 -81E3803A03FF00FF00D800FC133E252977A72E>97 DIIII<167C4BB4FC923807C7809238 -0F83C0ED1F87161FED3F3FA2157EA21780EE0E004BC7FCA414015DA414035DA30103B512 -F8A390260007E0C7FCA3140F5DA5141F5DA4143F92C8FCA45C147EA414FE5CA413015CA4 -495AA4495AA4495A121E127F5C12FF49C9FCA2EAFE1EEAF83C1270EA7878EA3FE0EA0F80 -2A5383BF1C>II -I<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0121E -121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA21203 -5B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03FEEA -00F8163E79BC1C>I108 DIII<903903E001F890390FF807FE903A1E -7C1E0F80903A1C3E3C07C0013C137801389038E003E0EB783F017001C013F0ED80019038 -F07F0001E015F8147E1603000113FEA2C75AA20101140717F05CA20103140F17E05CA201 -07EC1FC0A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1F -C7FCEC0FFCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D -3A80A72E>I114 -DII<137C48B4141C26038F -80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2D8F03F13 -03140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0491481A2153F -1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F0F1C9039 -1FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA0707000E -01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91C712E012 -005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D15780001 -14706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<903903F001F890 -390FFC07FE90393C1E0E0F9026780F1C138001F0EBB83FD801E013F89039C007F07FEA03 -80000714E0D9000F140048151C000E4AC7FCA2001E131FA2C75BA2143F92C8FCA35C147E -A314FE4A131CA30101143C001E1538003F491378D87F811470018314F000FF5D90390778 -01C039FE0F7C033A7C0E3C078027783C1E1EC7FC391FF80FFC3907E003F029297CA72A> -120 D<137C48B4143826038F8013FCEA0707000E7F001E1401001C15F8EA3C0F12381503 -D8781F14F000701380A2D8F03F1307020013E012005B017E130F16C013FE5B151F120149 -1480A2153F000315005BA25D157EA315FE5D00011301EBF8030000130790387C1FF8EB3F -F9EB07E1EB00035DA21407000E5CEA3F80007F495AA24A5AD8FF0090C7FC143E007C137E -00705B387801F0383803E0381E0FC06CB4C8FCEA03F8263B79A72C>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg cmsy8 8 1 -/Fg 1 1 df0 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fh cmr8 8 9 -/Fh 9 62 df48 D<130C133C137CEA03FC12FFEAFC7C1200B3 -B113FE387FFFFEA2172C7AAB23>III<140EA2 -141E143EA2147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0EA -0180120313001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFFFC -A21E2D7EAC23>I<000CEB0180380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8 -EB1FC0EB7FF8380DE07C380F801F01001380000E130F000CEB07C0C713E0A2140315F0A4 -127812FCA448EB07E012E0006014C00070130F6C14806CEB1F006C133E380780F83801FF -E038007F801C2D7DAB23>I56 DI61 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fi cmmi8 8 4 -/Fi 4 111 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A -5A126009157A8714>59 D78 D<1307EB0F80EB1FC0A2EB0F80EB070090C7 -FCA9EA01E0EA07F8EA0E3CEA1C3E123812301270EA607EEAE07C12C013FC485A12001201 -5B12035BA21207EBC04014C0120F13801381381F01801303EB0700EA0F06131EEA07F8EA -01F0122E7EAC18>105 D<3907C007E0391FE03FF83918F8783E393879E01E39307B801F -38707F00126013FEEAE0FC12C05B00815C0001143E5BA20003147E157C5B15FC0007ECF8 -081618EBC00115F0000F1538913803E0300180147016E0001F010113C015E390C7EAFF00 -000E143E251F7E9D2B>110 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fj cmmi10 10.95 31 -/Fj 31 123 df<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>58 -D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A -120E5A1218123812300B1C798919>I<183818FC1703EF0FF8EF3FE0EFFF80933803FE00 -EE0FF8EE3FE0EEFF80DB03FEC7FCED0FF8ED3FE0EDFF80DA03FEC8FCEC0FF8EC3FE0ECFF -80D903FEC9FCEB0FF8EB3FE0EBFF80D803FECAFCEA0FF8EA3FE0EA7F8000FECBFCA2EA7F -80EA3FE0EA0FF8EA03FEC66C7EEB3FE0EB0FF8EB03FE903800FF80EC3FE0EC0FF8EC03FE -913800FF80ED3FE0ED0FF8ED03FE923800FF80EE3FE0EE0FF8EE03FE933800FF80EF3FE0 -EF0FF8EF03FC17001838363678B147>II<126012F8B4FCEA7FC0EA1FF0EA07FCEA -01FF38007FC0EB1FF0EB07FCEB01FF9038007FC0EC1FF0EC07FCEC01FF9138007FC0ED1F -F0ED07FCED01FF9238007FC0EE1FF0EE07FCEE01FF9338007FC0EF1FF0EF07F8EF01FCA2 -EF07F8EF1FF0EF7FC0933801FF00EE07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC0 -4A48C8FCEC07FCEC1FF0EC7FC04948C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA1FF0 -EA7FC048CBFC12FC1270363678B147>I<17075F84171FA2173F177FA217FFA25E5EA24C -6C7EA2EE0E3F161E161C1638A21670A216E0ED01C084ED0380171FED07005D150E5DA25D -157815705D844A5A170F4A5A4AC7FC92B6FC5CA2021CC7120F143C14384A81A24A140713 -015C495AA249C8FC5B130E131E4982137C13FED807FFED1FFEB500F00107B512FCA219F8 -3E417DC044>65 D<49B712F818FF19E090260001FEC7EA3FF0F007F84B6E7E727E850203 -815D1A80A20207167F4B15FFA3020F17004B5C611803021F5E4B4A5A180FF01FE0023F4B -5A4B4A5ADD01FEC7FCEF07F8027FEC7FE092B6C8FC18E092C7EA07F84AEC01FE4A6E7E72 -7E727E13014A82181FA213034A82A301075F4A153FA261010F167F4A5E18FF4D90C7FC01 -1F5E4A14034D5A013FED1FF04D5A4AECFFC0017F020790C8FCB812FC17F094C9FC413E7D -BD45>I<49B712F818FF19C0D9000190C7EA3FF0F00FF84BEC03FCF000FE197F0203EE3F -805DF11FC0A20207EE0FE05D1AF0A2020F16075DA21AF8141F5DA2190F143F5DA21AF014 -7F4B151FA302FF17E092C9123FA21AC049177F5C1A8019FF010318005C4E5A6101071603 -4A5E4E5A180F010F4C5A4A5E4E5A4EC7FC011F16FE4A4A5AEF07F8013FED0FE0EF3FC04A -49B4C8FC017FEC0FFCB812F017C004FCC9FC453E7DBD4B>68 D<49B56C49B512F81BF0A2 -90C76D9039000FFE004AEE03F0705D735A03DF150302037F038F5E82190791380787FC03 -0793C7FC1503705C140F91260E01FF140EA26F151E021E80021C017F141C83193C023C6D -7E02381638161F711378147802706D6C1370A2040714F002F0804A01035C8318010101EC -01FF4A5E82188313034A91387FC380A2EF3FC7010716E791C8001F90C8FC18F718FF4981 -010E5E1707A2131E011C6F5AA2013C1501137C01FE6F5AEA03FFB512FC187818704D3E7D -BD49>78 D<49B77E18F818FFD90001D900017F9438003FE04BEC0FF0727E727E14034B6E -7EA30207825DA3020F4B5A5DA24E5A141F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03 -FC027FEC0FF04BEBFF8092B500FCC8FC5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A -1407A28413035CA2170F13075C60171F130F5CA3011F033F5B4AEE038018E0013F17071A -004A021F5B496C160EB600E090380FF01E05075B716C5ACBEAFFE0F03F8041407DBD45> -82 D86 -D<027FB5D88007B512C091B6FCA2020101F8C7EBF8009126007FE0EC7F804C92C7FC033F -157C701478616F6C495A4E5A6F6C495A4EC8FC180E6F6C5B606F6C5B6017016F6C485A4D -5A6F018FC9FC179E17BCEE7FF85F705AA3707EA283163F167FEEF7FCED01E7EEC3FEED03 -83ED070392380E01FF151E4B6C7F5D5D4A486D7E4A5A4A486D7E92C7FC140E4A6E7E5C4A -6E7E14F0495A49486E7E1307D91F806E7ED97FC014072603FFE0EC1FFF007F01FC49B512 -FEB55CA24A3E7EBD4B>88 D97 DIIII<163EEEFFC0923803 -E1E0923807C0F0ED0F811687ED1F8F160F153FA217E092387E038093C7FCA45DA514015D -A30103B512FCA390260003F0C7FCA314075DA4140F5DA5141F5DA4143F92C8FCA45C147E -A414FE5CA413015CA4495AA35CEA1E07127F5C12FF495AA200FE90C9FCEAF81EEA703EEA -7878EA1FF0EA07C02C537CBF2D>III<143C14FEA21301A314FCEB00701400AD137E3801FF80 -3803C7C0EA0703000F13E0120E121C13071238A2EA780F007013C0A2EAF01F1480120013 -3F14005B137EA213FE5BA212015B0003130E13F0A20007131EEBE01CA2143CEBC0381478 -147014E013C13803E3C03801FF00EA007C173E7EBC1F>I108 -D<01F8D907F0EB07F8D803FED93FFEEB1FFE28078F80F81FEB781F3E0F0F81C00F81E00F -803E0E07C78007C3C007C0001CD9CF00EBC78002FEDAEF007F003C4914FE0038495C4948 -5C12780070495CA200F0494948130F011F600000495CA2041F141F013F6091C75B193F04 -3F92C7FC5B017E92C75A197E5E01FE9438FE01C049027E14FCA204FE01011303000106F8 -1380495CF20700030115F00003190E494A151E1A1C03035E0007943800F8F0494AEC7FE0 -D801C0D900E0EC1F804A297EA750>I111 D114 D<147014FC1301A25CA21303A25CA21307A25CA2130FA25CA2007FB512F0B6 -FC15E039001F8000133FA291C7FCA25BA2137EA213FEA25BA21201A25BA21203A25BA212 -07EC01C013E01403000F1480A2EBC0071500140E141E5C000713385C3803E1E03801FF80 -D8003EC7FC1C3A7EB821>116 D<017E147848B4EB01FC2603C7C013FED807031303000F -13E0120E121C0107130100381400167ED8780F143E00705B161EEAF01F4A131C1200133F -91C7123C16385B137E167801FE14705B16F016E0120149EB01C0A2ED0380A2ED0700A200 -00140E5D6D133C017C5B6D5B90381F03C0903807FF80D901FCC7FC27297EA72C>118 -D<013EEE0380D9FF800107EB0FE02601C3E090381F801FD8038117F0380701F0000E153F -001E1600D81C03160F003C170700384BEB03E0D87807147E00705B1801D8F00F14FE4A49 -14C01200131FDA800114034C1480133F140003031407494A1400137EA26001FE0107140E -495C60A360150F017C5E017E011F14F0705B6D0139495A6D903970F8038090280FC0E07C -0FC7FC903A03FFC01FFC903A007F0007F03C297EA741>II<137C48B4EC -03802603C7C0EB0FC0EA0703000F7F000E151F001C168013071238163FD8780F15000070 -5BA2D8F01F5C4A137E1200133F91C712FE5E5B137E150113FE495CA2150300015D5BA215 -075EA2150F151F00005D6D133F017C137F017E13FF90393F03DF8090380FFF1FEB01FC90 -C7123F93C7FCA25DD80380137ED80FE013FE001F5C4A5AA24848485A4A5A6CC6485A001C -495A001E49C8FC000E137C380781F03803FFC0C648C9FC2A3B7EA72D>I<02F8130ED903 -FE131ED90FFF131C49EB803C49EBC0784914F090397E07F1E09038F800FF49EB1FC049EB -07800001EC0F006C48131E90C75A5D5D4A5A4A5A4A5A4AC7FC143E14785C495A495A495A -49C8FC011E14E05B5B4913014848EB03C0485AD807F8EB078048B4131F3A1F87E07F0039 -1E03FFFE486C5B00785CD870005B00F0EB7FC048011FC7FC27297DA72A>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fk cmbx12 14.4 46 -/Fk 46 122 df<171FA24D7EB3B3A4007FBD1280A2BE12C0A36C1C80A2CAD83F80CAFCB3 -B3A471CBFCA25A5B79CA69>43 D46 D<913803FFC0023F13FC91B6FC010315C0010F018113F0903A -1FFC003FF849486D7E49486D7E49486D7E48496D138048496D13C0A24817E04890C813F0 -A34817F8A24817FC49157FA3007F17FEA600FF17FFB3A5007F17FEA6003F17FCA26D15FF -A26C17F8A36C17F0A26C6D4913E0A26C6D4913C06C17806E5B6C6D4913006D6C495AD91F -FCEB3FF8903A0FFF81FFF06D90B55A01011580D9003F01FCC7FC020313C0384F7BCD43> -48 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7FCB3B3B3 -A6007FB712FEA52F4E76CD43>II<91380FFFC091B5 -12FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803F86E7E4916 -80D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13 -005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E003 -0113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA -0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F04A13C06C48 -4A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9 -001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167FA216FF5D5D -A25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E -147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC -123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>III<121F7F7FEBFF8091B81280A45A1900606060A2606060485F0180C86C -C7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B -5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F -5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<913807FFC0027F13FC0103B67E01 -0F15E090261FFC0113F8903A3FE0003FFCD97F80EB0FFE49C76C7E48488048486E138000 -0717C04980120F18E0177FA2121F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC0 -0313009238F007FE6C02F85B9238FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D -81010F15E06D81010115FC010781011F81491680EBFFE748018115C048D9007F14E04848 -011F14F048487F48481303030014F8484880161F4848020713FC1601824848157F173FA2 -171FA2170FA218F8A27F007F17F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C -6C6C010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9 -000F13C0364F7ACD43>I<91380FFF8091B512F8010314FE010F6E7E4901037F90267FF8 -007F4948EB3FF048496D7E484980486F7E484980824817805A91C714C05A7013E0A218F0 -B5FCA318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF8 -03011FB512E36D14C30103028313F89039007FFE03EC00401500A218F05EA3D801F816E0 -487E486C16C0487E486D491380A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C4849 -5BD803FC010F5B9027FF807FFEC7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F036 -4F7ACD43>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C8083047F -80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E031F811680 -83033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D844AB87EA2 -4A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A820103854A82010785 -A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65 -DI<932601FFFCEC01C0047F -D9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7 -383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982494982 -4949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0FA25AA2 -98C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D -606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D -6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612C0033F -93C8FC030715FCDB007F14E0040101FCC9FC525479D261>IIII<9326 -01FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003 -EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F88249 -49824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181F -A3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000A36C7F -A36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF6D6C6D -5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE001F03 -0703FC1307DB007F02E01301040149CAFC5B5479D26A>III80 D82 D<003FBC1280A59126C0003F9038C0007F49C71607D87FF806 -0113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C9 -94C7FCB3B3AC91B912F0A553517BD05E>84 D86 -D97 -DI<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001 -FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48 -92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC -3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC -020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91 -B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980 -485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C -6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9 -003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901 -817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191 -C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01 -F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE -903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>IIII<137F497E -000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3 -A6B612E0A51B547BD325>I -107 DIII<913801FFE0021F13FE91B612C0010315F0010F9038 -807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C8 -6C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA2 -6C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF80 -7FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F -13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F -92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F61 -6E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F14 -80031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380F -FF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF -150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 -D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 -127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C -816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 -F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF -C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 -FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE -07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 -13802A4D7ECB34>II119 D121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fl cmbx12 20.74 12 -/Fl 12 117 df49 -D<92380FFFE04AB67E020F15F0027F15FE49B87E4917E0010F17F8013F8349D9C01F14FF -9027FFFC0001814801E06D6C80480180021F804890C86C8048486F8048486F8001FF6F80 -4801C06E8002F081486D18806E816E18C0B5821BE06E81A37214F0A56C5BA36C5B6C5B6C -5B000313C0C690C9FC90CA15E060A34E14C0A21B80601B0060626295B55A5F624D5C624D -5C4D91C7FC614D5B4D13F04D5B6194B55A4C49C8FC4C5B4C5B4C13E04C5B604C90C9FCEE -7FFC4C5A4B5B4B5B4B0180EC0FF04B90C8FC4B5A4B5A4B48ED1FE0EDFFE04A5B4A5B4A90 -C9FC4A48163F4A5ADA3FF017C05D4A48167F4A5A4990CA12FFD903FC160749BAFC5B4919 -805B5B90BBFC5A5A5A5A481A005A5ABCFCA462A44C7176F061>I<923801FFFE033FEBFF -F84AB7FC020F16E0023F16F84A16FE49B97E49DA003F80010F01F0010714F04901800101 -804948C880D97FF86F7F02E081496C834801FC6F148014FF486E6E14C08181481AE081A9 -6C5C1BC06C4A5C6C5C6D90C815806D5AD90FF85D90CA150062606295B55A4D5C624D5C4D -5C4D91C7FC4D13FC4D5B4CB512E0047F1480037FB548C8FC92B612F818C018F8F0FF806F -15F092C7003F13FC050713FF050114C071807213F8727F727F867214801BC07214E01BF0 -A27214F81BFCA37214FEA31BFFEBFF80000313E0487F001F13FC487FA2487FA2B67EA31B -FEA3601BFCA292C8FC6C1AF84A5D4A18F06C494B14E05C6C01C04B14C06C90C915804E14 -006C6D4B5B6C01F092B55A6C01FC4A5C27007FFFC001075C6D01FE013F14C0010F90B85A -6D4DC7FC010117F8D9003F16E0020F93C8FC020015F0030749C9FC507378F061>II<0170187001FEEF01F86D6C160F02F8167F -DAFF80EC07FF03FE49B5FC92B85A6262A26297C7FC61616119E061614EC8FC18F86018C0 -95C9FC17F817C0020701F8CAFC91CDFCB0923801FFFC031FEBFFE092B612FC020315FF02 -0F16C04A16F0027FD9003F7FDAFFF0010F13FE038001037F4AC76C8002F86E804A6F7F4A -6F7F4A834A6F7F91C980137E017C707F90CAFC1B80A21BC0A2841BE0A51BF0A313FE3803 -FF80000F7F4813F0487F5A80B5FCA41BE0A44E14C05C7E4A18805C4A5D6C90C9150001E0 -606C6C5E6D606C6C4C5B7F000794B55A6C6C6C4A5C6C6D4A5C6E4A5C26007FF8021F49C7 -FC6DB4027F5B6DD9F007B55A6D90B712E0010317806D4CC8FC6D6C15F8021F15C002034A -C9FCDA003F13804C7376F061>I<96267FFFE01670063FB6ED01F80503B700F01403053F -04FC14074CB96C130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F -03C09039003FFF814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA -121F4A02F8834A02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A8549 -4A85495C8A4991CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E -075DA2F703F0489BC7FCA45DA2B6FCB27EA281A47EA2F703F06FF307F87EA36C80A21F0F -7E6F1CF07E6F1B1F7E20E06C6E1B3F816DF57FC06D80F7FF806D806D6E4F13006D6E616D -525A826D6E4F5A6D6E4F5A6E6D6C4E5A021F6EF0FFE06E6E4D5B6E02F84D5B6E02FE050F -90C7FC02006E6CEE3FFE6F02F0EEFFFC031F02FE03035B6FDAFFC0021F13E0030303FF01 -03B55A030093B7C8FC043F18FC040718F0040118C0DC003F94C9FC050316F8DD003F1580 -DE007F01F0CAFC757A75F78C>67 D<92383FFFF80207B612E0027F15FC49B87E010717E0 -011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D80727F486E6E7F -8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041F -B7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C04991C7FC017F -13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E -5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE0001 -9139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F0280D9003F13 -FC020101F8CBFC57507ACE5E>97 D<93387FFF80030FB512FC037FECFF804AB712E00207 -16F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E04901FC020F7F49496E7F49 -498049496E7F49496E7F90B55A48727E92C914804884485B1BC048841BE0485BA27313F0 -5AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207 -F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B -13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A020F1780 -02034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507BCE58>101 -D<903801FFFCB6FCA8C67E131F7FB3AD95380FFFE095B512FE05036E7E050F15E0053F15 -F84D81932701FFF01F7F4CD900077FDC07FC6D80DC0FF06D80DC1FC07F4C48824CC8FC04 -7E6F7F5EEDFDF85E03FF707F5EA25EA25EA293C9FCA45DB3B3A6B8D8E003B81280A86178 -79F76C>104 D<902601FFFCEC7FFEB6020FB512F0057F14FE4CB712C0040716F0041F82 -047F16FE93B5C66C7F92B500F0010F14C0C66C0380010380011F4AC76C806D4A6E8004F0 -6F7F4C6F7F4C6F7F4C8193C915804B7014C0861DE0A27414F0A27414F8A47513FCA57513 -FEAF5113FCA598B512F8A31DF0621DE0621DC0621D806F5E701800704B5B505B704B5B70 -92B55A04FC4A5C704A5C706C010F5C05E0013F49C7FC9227FE7FFC01B55A70B712F0040F -16C0040393C8FC040015F8053F14C0050301F0C9FC94CCFCB3A6B812E0A85F6F7ACD6C> -112 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C8093261FFC3F1380 -93263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F815FB16F016E015FF -16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65DB3B3A2B812F8A843 -4E7ACD4F>114 D<15FFA75CA55CA45CA25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9 -FC120FBAFCA6D8000791C9FCB3B3A3F01FE0AE183F7014C07F187F7014806D16FF826D4B -13006E6D485AEEFE0F6E90B55A020F5D6E5D020115C06E6C5C031F49C7FC030113F03B6E -7CEC4B>116 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fm cmtt10 10.95 81 -/Fm 81 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 -A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 -00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 -02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F -90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 -29387DB730>I37 DII<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B -12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA2 -6C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F -147F141E184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F8013 -3F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114 -FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA -3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0 -D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C -6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FF -F3F913E09038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A2327 -7AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF -30>II<007FB612F0A2B712 -F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00 -0C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF -00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A249 -5AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485A -A2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90 -B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A248 -48EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D13 -07001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEB -FFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>IIIII<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512 -F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A2 -16F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001 -FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>II<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0 -A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>58 D -I<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B0107 -13C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7F -F87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91 -381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>I<007FB7FC -A2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>I<12 -78127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313 -E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C0207 -13C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A4813E0 -000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>II< -147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA5 -90387F007FA4498049133F90B6FCA34881A39038FC001F00038149130FA4000781491307 -A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>65 D<007FB512F0B612FE6F7E -82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B6 -5A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E -4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C9039 -03FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B -48481303A2484813015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE -123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E0 -7FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E0 -4814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A216 -3F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED -7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED8 -03F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE -0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FC -C7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8 -487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90 -B6FC4813C1EC007F4848133F4848131F49130F485A491307121F5B123F491303A2127F90 -C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F12 -1F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F3 -0103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C -496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D -4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C15 -00260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730>I<383FFFF8487FB57E -A26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA27E6C16802A387EB730 ->76 DII<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F -80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB -3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<007F -B512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163FA616 -7F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0 -B57EA46C5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F913800 -3FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D -8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B5 -6C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>82 D<90390FF803C0D97FFF13 -E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA215 -0FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13 -FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C14 -0716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F8 -1F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07 -C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813 -FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC8003 -90393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730 ->II< -D83FFC903801FFE0486C4913F000FF16F8A2007F16F06C486D13E0D81FC09038001FC000 -0F1680A76D143F00071600A7000390380F803E9039F01FC07EEC3FE0A3EC7FF0A2147D00 -01157CA29039F8FDF8FCA314F8A300005D01F913FCA2ECF07CA201FD137DA2017D5CECE0 -3DA3017F133FA2ECC01FA2013F5CA2EC800F6D486C5A2D397FB730>I<3A3FFF01FFF848 -01837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81FCEB -3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2815B -81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F49800003141F4980000714 -0FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730>I<007FB5FCB61280A415 -0048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>91 D<007FB5FCB61280A47EC7123F -B3B3B3A5007FB5FCB6FCA46C140019477DBE30>93 D<1307EB1FC0EB7FF0497E000313FE -000FEBFF80003F14E0D87FFD13F039FFF07FF8EBC01FEB800F38FE0003007CEB01F00010 -EB00401D0E77B730>I<007FB612F0A2B712F8A36C15F0A225077B7D30>I97 DII<913801 -FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D8 -1FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F -6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F0103 -13C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E4880480181 -13803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A -5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A -03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA00 -01B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>I107 D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I< -02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07 -EB03F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B54801 -8F13C0A46C486C01071380322881A730>II<49B4FC -010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0F -F0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D130300 -3F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C1500 -6C6C13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390F -FC007F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C -1307150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F101 -0F13C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II< -90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91 -C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380 -007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00 -FC14F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC07F -FF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D13 -0F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214 -F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D -4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015D -EC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA29039 -3FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB5 -80A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06D -B45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F89038 -1F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C11480 -14E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C0 -6C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0 -010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA2 -6E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0 -EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7 -EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A49 -90C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7 -FCB8FCA46C15FE28277DA630>II<127CA2 -12FEB3B3B3AD127CA207476CBE30>II<017C133848B4 -137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C1380D87C -0113003838007C1F0C78B730>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fn cmr10 10.95 85 -/Fn 85 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 -F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 -FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 -DIII<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC -121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33 -D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013 -00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E -0018130C0038131C003013181C1C7DBE2D>I<013F1603D9FFC04B7E2601E0E0150F2607 -C070151F48486C4BC7FC023E157E48486C15FE48D90FC0EB03FC003ED90EF0EB0FF8DA0F -3F13FD007E903A070FFFF1F0007C0200EB03E0160000FC6D6C495A170F604DC8FC5F173E -5F17FC5F4C5A1603007CD907005B4C5A007E150F003E495C020E49C9FC003F5D6C49133E -260F803C5B023813FC6C6C485B3A01E0E001F03800FFC090273F0003E0133F90C70007EC -FFC09339C001E0E0923A0F8007C070031F49487E0400143C033E90381F001C037E497F03 -7C133E4B150F0201027E7F4B137C4A5A020702FCEB03805D4A5A141F92C7FC143E147E14 -7C5CA2495A0103037CEB07005C4948147E010F033E5B4A160E49C8123F496F5B013E9238 -0F803C49173801FC6F6C5A49923801E0E0496FB45A0160043FC7FC41497BC34C>37 -DI<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013 -C0A312011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0 -EB03801307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FC -A25AA3123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA2 -12017F12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I< -12C07E12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130F -A214C0A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA2 -5BA2137813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<150615 -0FB3A9007FB912E0BA12F0A26C18E0C8000FC9FCB3A915063C3C7BB447>43 -D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A -120E5A1218123812300B1C798919>II<121EEA7F80A2EAFFC0A4 -EA7F80A2EA1E000A0A798919>IIII< -EB07FC90383FFF8090B512E03903F01FF83907C007FC390F0001FE001E6D7E001C158000 -3CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F16 -8015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C712 -70133E133C5B4914E0485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D> -II<150E151E153EA215 -7EA215FE1401A21403EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700 -A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC -4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7 -FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F -90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC -007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B5 -5A013F90C7FCEB07F8243F7CBC2D>II<1238123C123F90B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D -48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A2 -13015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EA -FFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FC -B3121E127FEAFF80A213C0A4127F121E1200A412011380A3120313005A1206120E120C12 -1C5A1230A20A3979A619>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A2 -6C18E03C167BA147>61 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15 -C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D -7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153FA2013C8201 -38151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 -DII -IIIIII<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F -80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7FC -3800FFF8EB3FC026407CBD2F>IIIIIII82 DI<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E170712 -7C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42 ->IIII<007FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48 -EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13 -036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A913801FF7016F06E5B6F -5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C07F0203804B6C7EEC0700 -4A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749 -C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FEA33F3E7EBD44>II<003FB712F8A391C7EA1FF013F801E0 -EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A1300007C4A5A12784B5A4B5AA200704A -5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8 -FCA2495A4948141CA2495A495AA2495A495A173C495AA24890C8FC485A1778485A484815 -F8A24848140116034848140F4848143FED01FFB8FCA32E3E7BBD38>II<486C13C00003130101001380481303000EEB0700 -48130E0018130C0038131C003013180070133800601330A300E01370481360A400CFEB67 -8039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>I< -EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I97 DI<49B4FC010F13E090383F00F801 -7C131E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290 -C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C -6C137890383F01F090380FFFC0D901FEC7FC222A7DA828>IIII< -167C903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC -0600000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E039 -03FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15 -E06C810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E -157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D -7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC -147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03 -F0381E07C0380FFF803801FC00185185BD1C>III<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B -7803F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91 -C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C> -I<3901F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C07F00 -01138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14 -FF010713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F -15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F8 -6C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFF -F0010090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F0 -3A07FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0F -F0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0 -DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C9038 -1F80F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A150148 -5AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990 -383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807 -E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A3 -5BB3A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E -1307003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C -7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15 -F07E14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I< -131CA6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A9 -12009038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>IIII< -B539F01FFFE0A30003D9C00F1300C690388007F8D97F0013E002805BD93FC05B011F49C7 -FC90380FE00EECF01E6D6C5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147B -ECF1FC903801E1FEECC0FF01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80 -486C80000F4A7EB539803FFFF8A32D277FA630>II<001FB61280A2EBE0000180140049485A001E -495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A -90393FC00380A2EB7F80EBFF005A5B484813071207491400485A48485BA248485B484813 -7F00FF495A90B6FCA221277EA628>II -I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fo cmbx10 10.95 50 -/Fo 50 123 df12 -D14 -D<16F04B7EB3AD007FBA12E0BB12F0A46C19E0C8D801F8C9FCB3AD6F5A44467AB951>43 -D46 -D<161C163E167EA216FE16FC150116F8A2150316F0A2150716E0150F16C0A2151F168015 -3F1600A25D157E15FE5DA214015DA214035D14075DA2140F5D141F5DA2143F92C7FC5C14 -7EA214FE5CA213015C13035CA213075C130F5CA2131F5C133F91C8FCA25B137EA213FE5B -12015BA212035B12075BA2120F5B121F5BA2123F90C9FCA25A127E12FE5AA25A1278275B -7AC334>I<140F143F5C495A130F48B5FCB6FCA313F7EAFE071200B3B3A8007FB612F0A5 -243C78BB34>49 D<903803FF80013F13F890B512FE00036E7E4881260FF80F7F261FC003 -7F4848C67F486C6D7E6D6D7E487E6D6D7EA26F1380A46C5A6C5A6C5A0007C7FCC8FC4B13 -00A25E153F5E4B5AA24B5A5E4A5B4A5B4A48C7FC5D4A5AEC1FE04A5A4A5A9139FF000F80 -EB01FC495A4948EB1F00495AEB1F8049C7FC017E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4 -293C7BBB34>I<903801FFE0010F13FE013F6D7E90B612E04801817F3A03FC007FF8D807 -F06D7E82D80FFC131F6D80121F7FA56C5A5E6C48133FD801F05CC8FC4B5A5E4B5A4A5B02 -0F5B902607FFFEC7FC15F815FEEDFFC0D9000113F06E6C7E6F7E6F7E6F7E1780A26F13C0 -A217E0EA0FC0487E487E487E487EA317C0A25D491580127F49491300D83FC0495A6C6C49 -5A3A0FFE01FFF86CB65A6C5DC61580013F49C7FC010313E02B3D7CBB34>II<00071538D80FE0EB01F801FE133F90 -B6FC5E5E5E5E93C7FC5D15F85D15C04AC8FC0180C9FCA9ECFFC0018713FC019F13FF90B6 -7E020113E09039F8007FF0496D7E01C06D7E5B6CC77FC8120F82A31780A21207EA1FC048 -7E487E12FF7FA21700A25B4B5A6C5A01805C6CC7123F6D495AD81FE0495A260FFC075B6C -B65A6C92C7FCC614FC013F13F0010790C8FC293D7BBB34>I66 D<922607FFC0130E92B500FC131E -020702FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C0130001 -3F90C8127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CAFC197E -5A5B193E127FA349170012FFAC127F7F193EA2123FA27F6C187E197C6C7F19FC6C6D16F8 -6C6D150119F06C6D15036C6DED07E0D97FFEED0FC06D6CED3F80010F01C0ECFF006D01F8 -EB03FE6D9039FF801FFC010091B55A023F15E002071580020002FCC7FC030713C03F407A -BE4C>IIII<922607FFC0130E92B500FC131E020702 -FF133E023FEDC07E91B7EAE1FE01039138803FFB499039F80003FF4901C01300013F90C8 -127F4948151FD9FFF8150F48491507485B4A1503481701485B18004890CAFC197E5A5B19 -3E127FA34994C7FC12FFAB0407B612FC127F7FA3003F92C7383FFE00A27F7EA26C7FA26C -7F6C7FA26C7F6C7FD97FFE157F6D6C7E010F01E014FF6D01F813036D9038FF801F010091 -B512F3023F15C00207ED803E02009138FE000E030701E090C7FC46407ABE52>I73 D75 D78 DI82 -D<903A03FFC001C0011FEBF803017FEBFE0748B6128F4815DF48010013FFD80FF8130F48 -481303497F4848EB007F127F49143F161F12FF160FA27F1607A27F7F01FC91C7FCEBFF80 -6C13F8ECFFC06C14FCEDFF806C15E016F86C816C816C816C16806C6C15C07F010715E0EB -007F020714F0EC003F1503030013F8167F163F127800F8151FA2160FA27EA217F07E161F -6C16E06D143F01E015C001F8EC7F8001FEEB01FF9026FFE00713004890B55A486C14F8D8 -F81F5CD8F00314C027E0003FFEC7FC2D407ABE3A>I<003FB912FCA5903BFE003FFE003F -D87FF0EE0FFE01C0160349160190C71500197E127EA2007C183EA400FC183F48181FA5C8 -1600B3AF010FB712F8A5403D7CBC49>III<903807FFC0013F13F848B6FC48812607FE037F260FF8007F -6DEB3FF0486C806F7EA36F7EA26C5A6C5AEA01E0C8FC153F91B5FC130F137F3901FFFE0F -4813E0000F1380381FFE00485A5B485A12FF5BA4151F7F007F143F6D90387BFF806C6C01 -FB13FE391FFF07F36CEBFFE100031480C6EC003FD91FF890C7FC2F2B7DA933>97 -D<13FFB5FCA512077EAFEDFFE0020713FC021FEBFF80027F80DAFF8113F09139FC003FF8 -02F06D7E4A6D7E4A13074A80701380A218C082A318E0AA18C0A25E1880A218005E6E5C6E -495A6E495A02FCEB7FF0903AFCFF01FFE0496CB55AD9F01F91C7FCD9E00713FCC7000113 -C033407DBE3A>IIIII<903A03FF8007F0 -013F9038F83FF8499038FCFFFC48B712FE48018313F93A07FC007FC34848EB3FE1001FED -F1FC4990381FF0F81700003F81A7001F5DA26D133F000F5D6C6C495A3A03FF83FF8091B5 -C7FC4814FC01BF5BD80F03138090CAFCA2487EA27F13F06CB6FC16F016FC6C15FF17806C -16C06C16E01207001F16F0393FE000034848EB003F49EC1FF800FF150F90C81207A56C6C -EC0FF06D141F003F16E001F0147FD81FFC903801FFC02707FF800F13006C90B55AC615F8 -013F14E0010101FCC7FC2F3D7DA834>I<13FFB5FCA512077EAFED1FF8EDFFFE02036D7E -4A80DA0FE07F91381F007F023C805C4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A5333F7C -BE3A>II<13FFB5FCA512077EB092380FFFFEA5DB01FEC7FC4B5A -ED07F0ED1FE04B5A4B5A4BC8FCEC03FC4A5A4A5A141F4A7EECFFFCA2818102E77F02C37F -148102007F826F7E6F7E151F6F7E826F7F6F7F816F7FB5D8FC07EBFFC0A5323F7DBE37> -107 D<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>I<01FFD91FF8ECFFC0B590B5 -010713F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007013E -DAF9F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8F03F -EBFF80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F007F00 -07013C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>II<01FFEBFFE0B5000713FC021FEBFF80027F80DA -FF8113F09139FC007FF8000701F06D7E6C496D7E4A130F4A6D7E1880A27013C0A38218E0 -AA4C13C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91C7FC -028713FC028113C00280C9FCACB512FEA5333B7DA83A>II<3901FE01FE00FF903807FF804A13E04A13F0EC3F1F91387C3FF800 -0713F8000313F0EBFFE0A29138C01FF0ED0FE091388007C092C7FCA391C8FCB3A2B6FCA5 -25297DA82B>I<90383FFC1E48B512BE000714FE5A381FF00F383F800148C7FC007E147E -A200FE143EA27E7F6D90C7FC13F8EBFFE06C13FF15C06C14F06C806C806C806C80C61580 -131F1300020713C014000078147F00F8143F151F7EA27E16806C143F6D140001E013FF90 -38F803FE90B55A15F0D8F87F13C026E00FFEC7FC222B7DA929>IIIIIII<003FB612F8A4D9 -F80113F001C014E0495A494813C04A1380007E15005C4A5A007C5C147F4A5A495B5DC65A -495B495BA249EB007C495A5C137F494813FC484913F85C5A48EBC0011480481403481300 -4848130749131F007FECFFF0B7FCA426287DA72E>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fp cmbx12 24.88 29 -/Fp 29 122 df[<96260FFFFE0507B5FC060FB600E00307B612F04DB700FC92B712FE05 -1F04FF020F707E94B900C0017F17E00407DEF003B97E041FDEF80F18FC047F9126FC001F -D9FC3F9126FE000F7F4BB6008001006DB600C001007F030702F8C8003FB600FCC8001F7F -4B02E0030F03F003077F033F02804B03C04B7F4B49C9007F92C9123F92B54893B6484C7F -4A02F04B03F893B5FC4A4A4B4B4B804A4A4B4B5D4A4A4F8451614A91C95E4A4997C9FCA2 -4A496159807D5C91B5FC4C61A375735CA275735C75735C75745B76071F90C8FCA1EA07FC -A1CAFCAF101FB612FEC5B5FCA9C702FCCA6C49C912018FA17EB3B3B3B2003FB800F0011F -B800F8011FB812F8A9>181 144 123 271 194 14 D[143 -142 120 269 165 66 D[<0803B500C0EE01F00703B600FEEE03F8077FDBFFE015070607 -B800FC150F063F05FF151F4DBA00E0143F050F07F8147F053F07FE14FF94BC5B04039326 -F8000FECC003040F4BC86CEBF007043F03C0030F6D5A93B648C900036D5A4B03F0933900 -7FFF3F030703C0051F90B5FC4B92CB7E033F02FC18034B02F08492B648844A0380193F4A -92CD7E4A4A864A4A864A02F0864A4A864A8991B65A494B874992CF7E4C885B494A885E49 -8B494A88A2495C8D90B65A8D5A5E48217FA24892D1FC223FA25A5DA248211FA3485CFA0F -F09FC7FCA25AA45DA3B6FCB27EA381A47EA46C80FA07F0FA0FF87EA2817EA36C6F1D1F23 -F07E827E223F6D6E1EE0A26D6E1D7F23C06D6E1DFF7F705213806D806D55130070646D6F -646D6F515A6E6E1B1F6E6E515A6E6E515A6E6E1BFF6E6E505B6E6E505B6E6F4F5B6E03E0 -4F90C7FC6F6EF13FFE6F02FC4F5A030F02FF4E485A6F03C005075B030103F0051F5B6F03 -FE057F1380043FDAFFE00303B5C8FC040F03FE033F13FC0403DBFFF80107B55A040093B8 -12E0053F1A80050F4FC9FC050119F8DD003F18C0060795CAFCDE007F16F0070393CBFCDF -000314C0>141 146 115 271 168 I[138 141 120 -268 153 69 D[<0803B500C0EE01F00703B600FE4C7E077FDBFFE015070607B800FC150F -063F05FF151F4DBA00E0143F050F07F8147F053F07FE14FF94BC5B04039326F8000FECC0 -03040F4BC86CEBF007043F03C0030F6D5A93B648C900036D5A4B03F09339007FFF3F0307 -03C0051F90B5FC4B92CB7E033F02FC18034B02F08492B648844A0380193F4A92CD7E4A4A -864A4A864A02F0864A4A864A8991B65A494B874992CF7E4C885B494A885E498B494A88A2 -495C8D90B65A8D5A5E48217FA24892D1FC223FA25A5DA248211FA3485C7C5A9FC9FCA25A -A45DA3B6FCB27EA381A20A0FBB12F8A27EA46C80A36C98C96C02F8C7FCA2817EA36C81A2 -7E827E827FA26D80A26D806D80A26D806D80A26D816D816E806E806E806E6E97B6FC6E80 -6E806E03C0606E816F02F8606F02FE60030F6E606F03E0173F030103F85F6F03FF933801 -FFFC043F03E00307497E040F03FF033F497E040304FC0107B5EAE00F040093B8487E053F -F20001050F07FCEB007F050107F0141FDD003F06C01407060795C81201DE007F04F8ED00 -700703048093C8FCDF000302E0CDFC>157 146 115 271 183 71 -D[74 142 -122 269 87 73 D[163 -144 120 269 173 82 D[<93260FFFF8163E4BB600E0153F031F03FE5D037FDBFFC05C02 -03B800F05B020F05FC5B4A05FF5B027FF0C00F91B526FE000FECF01F010302C0D9007F6D -5A4991C800076D5A4901FC030090B6FC4901F0163F4949160F4901808290B5170192CBFC -4849844849181F87484984A2484984874886A248498588A24887A388A2B58680A36E85A2 -80A26E8580A2818103F0725A6C6E96C7FC15FE8116E06C15FEEEFFE017FF6C17F0F0FF80 -6C18F8F1FFC06C19FCF2FF806C1AE01BF86C1AFE6C747E6D1AE0886D866D866D1AFF6D87 -6D87010087806E86020F86020386020086153F030F851501DB001F19801601DC000F18C0 -EF007F060717E0F0003F070316F0F1003F1A0F080315F81A00871B1F877514FCA287007F -86486C85A288A388A36D86A31EF87FA37F1EF0A26D626D1CE0A27F6D5013C0A26E1B806E -96B5FC6E1B0002F8606E4E5B6E626E6C5F03E04D5B03F84D5B03FE057F5BDBFFC093B55A -04F803035C496CD9FF80021F91C7FCD9FC1F02FF49B55AD9F80792B75A496C19F049C661 -49011F18804901074DC8FC90C817F848031F16C048030003FCC9FC007C04011480>102 -146 115 271 129 I[162 144 120 269 179 85 -D<93B512FC037FECFFF00207B8FC023F17E091B912F84918FE0107727E499126C0007F14 -E04901E0C7000F80496D020380496D020014FE6F6F7F90B570806F6F8085486E6F807380 -A27380A28885886C5CA26D4982886D5B6D5B010713C0010190CAFC90CCFCA90603B7FC05 -0FB8FC0403B9FC167F0307BAFC153F4AB7EA807F020FEDE000023F02FCC7FC91B612E001 -0392C8FC4914FC011F14F04914C0495C90B548C9FC485C485C485C485C5A5D485CA24891 -CAFCA3B6FC5CA397B6FCA461806C60F107EF6C6E150F6F16CF6C183F6FDB7F8F806C6EDB -FF0F14E06C02FCDA03FE15FE6C6E91260FFC0791B5FC6C6E6CD93FF817806C923AF803FF -F003013F91B6487E010FEF8000010394C77E010004FC141F021F03F0140702010380DA00 -7F1400DA000701F8CDFC695F79DD71>97 D[113 144 121 270 129 I<94387FFFF0041FB612E093B712 -FE0307707E031F17F092B97E4A18FE020784021F9126F8000F14804A0280010014C04A49 -C74814E049B500F85C494A17F0494A5C495C494A4A14F84991C8FC5D495B90B5FC5D5A48 -5C7314F05A4B6F14E05A7314C0487214804B93383FFE00F20FF84896C8FCA4485CA5B6FC -B07EA281A37EA36C80A37E6F18FE6CF201FFA26C6E5F1CFE6C801B076C6EEF0FFC6D7F70 -EE1FF86DF13FF06D6E167F6D6EEEFFE06D02F84B13C06D6E5D6D02FF030F13806D03C002 -3F1300023F02F0903801FFFC6E9126FF801F5B020792B65A6E18C0020060033F4CC7FC03 -0716F8030016C0041F4AC8FCDC007F13C0585F78DD67>I[113 144 120 270 129 I<94387FFFC0040FB6FC93B712E0030716FC -031F16FF037F17C04AB912F00207DAF80380021F912680003F13FE4A49C7000F7F4A01F8 -02038049B5486E804902C06E6C7F494A6F7F4991C9FC49727F4949707F4B84498490B548 -707F5A4B198048855D481CC086481CE05D5A871DF05AA25D5AA21DF887A2B6FCA392BBFC -A51DF00380CDFCA77EA4817EA37EA2817EA26CF307F06FF00FF87E816C1B1F6F19F06C1B -3F6D6DF07FE06D7FF4FFC06D6E4C13806D6E5E6D02F04C13006D6EEE1FFE6D6E4C5A6D6C -01FFEEFFF86E02E002035B6E02FC021F5B02079126FFC003B55A6E92B7C7FC020060033F -17F8030F17E003011780DB003F03FCC8FC040315C0DC000F01F8C9FC5D5F7ADD6A>I[<95 -383FFF80050FB512F094B612FE040781041F16C0047F824BB87E0307DAF8077F031FDAC0 -0F7F4B49C6487F4B495B92B500F0814A4A5B4A5C4A93B612805F4A91C7FC5C5E5C5E5C73 -1400A24C6E5B91B56F5BA2735B070313E00700138097C8FCB3A4BA12F8A9C702FCCBFCB3 -B3B3B3A2003FB9FCA9>81 144 121 271 71 II[114 143 119 270 129 I[49 -144 119 271 65 I[50 143 119 270 65 108 DII<94381FFFF00407B612 -C0047F15FC0303B87E030F17E0037F17FC4ABAFC4A9126FC007F80020F02C0010714E04A -49C880027F01F8033F13FC91B5486F7F4902C003077F494A6F804991C96C804949708049 -49717F49874949717FA290B548717F48884B83481D80A2481DC04B83481DE0A2481DF0A3 -484A7114F8A4481DFCA5B61BFEAF6C1DFCA56C6E4D14F8A36C1DF0A36C1DE06F5F6C1DC0 -A26C6E4D1480A26C1D006F5F6C646D6D4D5B6F94B5FC6D636D6D4C5C6D6E4B5C6D6E4B5C -6D02F0031F5C6D6E4B91C7FC6D6C01FE92B512FC6ED9FFC001075C6E02FC017F5C020791 -B812C0020196C8FC6E6C17FC031F17F003031780DB007F03FCC9FC040715C0DC001F01F0 -CAFC675F7ADD74>II< -DB7FC049B47E90B6021F13F8B7027F13FE4DB67E4D15E04D814D814D01077F94263FF00F -7F94387FC01F4D48487FD8003F16000107DAC1FE491480EEC3FC6D5DEEC7F05F16CF5F16 -DF4D6D1400A204FFC76C5BA2735B4C6E5B735B070013C04C92C8FCA45EA65EB3B3AAB912 -FCA9515D79DC5F>114 D<92261FFFF814F80203B638C001FC023FEDFC0791B8121F0103 -17FF130F013F9038F8001F4990C8FCD9FFF8153F4801E0150F484915034849814890CAFC -197F4848173F191F485AA2007F180FA31907487EA27FA28002E0705A6E93C8FC14FC14FF -15F06CECFF8016FCEEFFF06CEEFF8018F06C17FE727E6C18E0856C18FC6C846C727E6C85 -6D84011F846D841303010084023F83140F020183EC001FDB007F16801603DC000F15C017 -00183F060F14E0007F1703486C82727E857F85857FA2857F1BC07FA27F1B806D5F7F1B00 -6E5E6E5F6E163F6E4C5A02FC4C5A6E03035B6E6C4A5B03F0023F5B03FF0107B55A01F991 -B7C7FCD9F07F16FCD9E01F16F0D9800716C0D9000193C8FC48D9003F14F8007C020349C9 -FC4B5F78DD5C>I[72 -132 124 258 90 II<007FB86C49 -B712FEA9C792C9000F02C0C7FC6E6E030101F0C8FC715F6E6E4B5B6E6E4B5B6E4E90C9FC -6E6E5E71151F6E6E4B5A6E6E4B5A6E4E5A6F6E495B72495B6F6E495B6F806F6E4990CAFC -6F4C5A72495A6F6E495A6F6E495A6F03815B705E7014C307E75B7091B5CBFC705D705D70 -5D6282705D715C8386718071807180837180864D814D815F4D81874D814D81DDFFF3804C -13E14C01C1804C0180814E6C804C6E804C487F4C48824C486D804C486D804B496D804B49 -7F73804B49834B90C86C804B486F804B48814B486F804B48844C6F804A71804A496F804A -49814A90CA814A487180023F7280010FB500E07080B8031FB812E0A9735C7CDB7B>120 -D<007FB800C04AB71280A9D800034ACA000791C7FC6D080013F0775A6D6E4E5AA26E6E60 -64836E4F90C8FC836E4F5A836E4F5AA26E6E4C5AA26E6E5F1C3F6E6E5F1C7F836E4F5A84 -6F4D5B846F4D90C9FCA26F6E4A5AA26F6E5D1B0F846F4D5A846F4D5A846F4D5AA26F6E4A -5AA2706E5C627002C091CAFC6219E0704B5A19F0704B5AA2706E485AA2706E485AA27002 -FE5B1A7F19FF704B5AA2715DA27192CBFCA2715CA2715CA3715CA2715CA2715CA2715CA2 -725BA27290CCFCA3725AA2725AA24E5AA24E5AA261187FA24E5AA24D5B13FE2603FF804A -90CDFC000F13E0486D4A5A487F486D4A5AA260B56C141F4D5AA24D5A17FF604C5B4A4990 -CEFC6C5D4C5A6C49EB3FFC4A495A6C4948485A9026FE80075B270FFFC03F5B6C90B6CFFC -6C5D6C15F86C6C5C011F14C0010749D0FC9038007FE071857CDB7B>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fq cmtt12 12 9 -/Fq 9 122 df<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6C8A33>46 -D64 D98 D100 D<14E0EB03F8A2497EA36D5AA2EB00E091C8FCAA383FFFF8487FA47EEA00 -01B3AD007FB612C0B712E016F0A216E06C15C0243E78BD33>105 -D107 D116 DI<3B7FFF801FFF -E0B56C4813F06E4813F8A24A6C13F06C496C13E0D803F8C7EAFC00000114015E7F000014 -036D5C137EA2017F495A7FA26E485A131FA26D6C485AA214E0010749C7FCA214F0130315 -7EEB01F8A2157C010013FC14FC5D147C147DEC3FF0A36E5AA36E5AA2141F5DA2143F92C8 -FCA3147EA214FE003F5B1301387F81F81383EB87F0139FEBFFE06C5B5C6C90C9FCEA0FFC -EA03F02D427DAA33>121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fr cmr12 12 34 -/Fr 34 122 df<1606A25E161C1618163816305EEC7F80903903FFF0C090380FC0FC9039 -3E001F8049130F01F0EB03C04848497E0003814848EB0CF84848147C1518001F157E48C7 -487E157015604802E01380007EECC01FEC0180A200FED9030013C0A21406140E140C141C -14185CA25C007E16805CD87F01143F003F4914001303001F90C7123E0186147E000F157C -01CC14FC00075DD803F8495A00014A5A00004A5A017E011FC7FC90387F807E9038C7FFF8 -9038C07F804848C9FCA248CAFC5A1206120E120C5AA22A3F7DB431>28 -D<140C141C1438147014E0EB01C01303EB0780EB0F00A2131E5BA25B13F85B12015B1203 -A2485AA3485AA348C7FCA35AA2123EA2127EA4127CA312FCB3A2127CA3127EA4123EA212 -3FA27EA36C7EA36C7EA36C7EA212017F12007F13787FA27F7FA2EB0780EB03C01301EB00 -E014701438141C140C166476CA26>40 D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7E -A21378137C133C133E131E131FA2EB0F80A3EB07C0A3EB03E0A314F0A21301A214F8A413 -00A314FCB3A214F8A31301A414F0A21303A214E0A3EB07C0A3EB0F80A3EB1F00A2131E13 -3E133C137C13785BA2485A485AA2485A48C7FC120E5A5A5A5A5A16647BCA26>I<121EEA -7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A1206120E -5A5A5A12600B1D78891B>44 DI<14FF010713E090381F81F890 -383E007C01FC133F4848EB1F8049130F4848EB07C04848EB03E0A2000F15F0491301001F -15F8A2003F15FCA390C8FC4815FEA54815FFB3A46C15FEA56D1301003F15FCA3001F15F8 -A26C6CEB03F0A36C6CEB07E0000315C06D130F6C6CEB1F806C6CEB3F00013E137C90381F -81F8903807FFE0010090C7FC28447CC131>48 D50 D<14FF010713E0011F13F890387F80FC9038FC007E48487F4848EB1F804848 -EB0FC0000FEC07E0485AED03F0485A16F8007F140190C713FCA25AA216FE1500A516FFA4 -6C5CA36C7E5D121F7F000F5C6C6C130E150C6C6C131C6C6C5BD8007C5B90383F01E09039 -0FFF80FE903801FE0090C8FC150116FCA4ED03F8A216F0D80F801307486C14E0486C130F -16C0ED1F80A249EB3F0049137E001EC75A001C495A000F495A3907E01FE06CB51280C649 -C7FCEB1FF028447CC131>57 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121E -EA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78AA1B>I67 D73 D<010FB512FEA3D9000313806E130080B3B3AB123F487E487EA44A5A13801300 -006C495A00705C6C13076C5C6C495A6CEB1F802603E07FC7FC3800FFFCEB1FE027467BC3 -32>I76 -D78 D<003FB912F8A3903BF0001FF8001F0180 -6D481303003EC7150048187C0078183CA20070181CA30060180CA5481806A5C81600B3B3 -A54B7EED7FFE49B77EA33F447DC346>84 DI97 DI<167FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F -000E017E1307496D5AD803F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7F -A2123FA26C7EA2000F5D7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE -90380FC0F8903803FFE09026007F0013002F467DC436>100 DIII< -EA01FC12FFA3120712031201B3EC01FE913807FFC091381E07F091383801F802707FECE0 -00D9FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F457DC436 ->II108 DI<3901FC01FE00FF903807FFC091381E07F091383801F8000701707F0003EBE0 -002601FDC07F5C01FF147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F2C7DAB -36>II<3901FC03FC00FF90380FFF809138 -3C07E091387001F83A07FDE000FE00030180137FD801FFEC3F8091C7EA1FC04915E04914 -0F17F0160717F8160317FCA3EE01FEABEE03FCA3EE07F8A217F0160F6D15E0EE1FC06D14 -3F17806EEB7E00D9FDC05B9039FCF003F891383C0FE091381FFF80DA03FCC7FC91C9FCAE -487EB512F8A32F3F7DAB36>I<3903F803F000FFEB1FFCEC3C3EEC707F0007EBE0FF3803 -F9C000015B13FBEC007E153C01FF13005BA45BB3A748B4FCB512FEA3202C7DAB26>114 -D<90383FE0183901FFFC383907E01F78390F0003F8001E1301481300007C1478127800F8 -1438A21518A27EA27E6C6C13006C7E13FC383FFFE06C13FC6C13FF6C14C06C14E0C614F0 -011F13F81300EC0FFC140300C0EB01FE1400157E7E153EA27EA36C143C6C147C15786C14 -F86CEB01F039F38003E039F1F00F8039E07FFE0038C00FF01F2E7DAC26>I<1306A5130E -A4131EA3133E137EA213FE12011207001FB512F0B6FCA2C648C7FCB3A4150CAA017E131C -017F1318A26D133890381F8030ECC070903807E0E0903801FFC09038007F001E3E7EBC26 ->I118 -D121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fs cmr12 14.4 21 -/Fs 21 122 df<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F000C0C768B21>46 -D50 D<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F00 -C7FCB3A9120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F000C3376B221>58 -D66 D68 D82 D97 D99 D101 -D103 D<1378EA01FE487E487FA66C90C7FC6C5AEA007890C8FC -B0EB7F80B5FCA41203C6FC137FB3B3A43801FFE0B61280A419507CCF21>105 -D107 -DI<01FFD907 -FEEC03FFB590261FFFC0010F13E0037F01F0013F13F8912701F80FFC9038FC07FE913D03 -C003FE01E001FF000390260700019038038000C6010E6D6C48C76C7E6D48DA7F8E6E7E4A -159CA24ADA3FF86E7E02605D14E04A5DA34A5DB3AD2601FFE0DAFFF0EC7FF8B6D8C07F90 -26FFE03FB512F0A45C347CB363>I<01FFEB07FCB590383FFF8092B512E0913901F00FF8 -913903C007FC000349C66C7EC6010E13016D486D7E5C143002706E7E146014E05CA35CB3 -AD2601FFE0903801FFE0B600C0B612C0A43A347CB341>I -I<90397F8007FCB590387FFF800281B512E0913987F00FF891398F8003FC000390399E00 -01FFC601BC6D7FD97FF86E7E4A6E7E4A6E7E4A140F844A6E7EA2717EA3717EA4711380AB -4D1300A44D5AA24D5AA2606E140F4D5A6E5D6E4A5A6E4A5A02BC4AC7FC029E495A028FEB -07FC913987E01FF00281B512C0DA807F90C8FCED0FF892CAFCB13801FFE0B612C0A4394B -7DB341>I<01FFEB1F80B5EB7FF0913801FFF8913803E1FC91380783FE0003EB0F07C613 -1EEB7F1C1438143091387003FC91386000F0160014E05CA45CB3AA8048487EB612F0A427 -347DB32E>114 DI< -D97F80EC7F80B591B5FCA400031503C61500017F157FB3AC17FFA35EA3013F5C6EEB077F -A2011F020E7F6D6C011C13F06E0178EBFFC0903903FC01F06DB512E06D6C1380912607FC -00EB80003A357CB341>117 D121 D E -%EndDVIPSBitmapFont -end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%PaperSize: A4 - -%%EndSetup -%%Page: 1 1 -1 0 bop 907 162 a Fs(BuDDy:)52 b(Binary)37 b(Decision)i(Diagram)c(pac)m -(k)-7 b(age)1724 275 y(Release)38 b(2.2)1628 482 y Fr(J\034rn)33 -b(Lind-Nielsen)1244 599 y(IT-Univ)m(ersit)m(y)g(of)f(Cop)s(enhagen)i -(\(ITU\))1535 715 y(e-mail:)41 b Fq(buddy@itu.dk)1626 -828 y Fr(No)m(v)m(em)m(b)s(er)33 b(9,)g(2002)1430 3250 -y @beginspecial 0 @llx 0 @lly 139 @urx 216 @ury 1390 -@rwi @setspecial -%%BeginDocument: example.pstex -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: example.pstex -%%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 -%%CreationDate: Fri Jul 17 10:12:32 1998 -%%For: jl@britta (Jorn Lind-Nielsen) -%%Orientation: Portrait -%%BoundingBox: 0 0 139 216 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --145.0 343.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def - /DrawEllipse { - /endangle exch def - /startangle exch def - /yrad exch def - /xrad exch def - /y exch def - /x exch def - /savematrix mtrx currentmatrix def - x y tr xrad yrad sc 0 0 1 startangle endangle arc - closepath - savematrix setmatrix - } def - -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 6712 m -1000 -1000 l 5733 -1000 l 5733 6712 l cp clip - 0.06000 0.06000 sc -7.500 slw -% Ellipse -n 3300 2400 270 270 0 360 DrawEllipse gs col0 s gr - -/Helvetica ff 270.00 scf sf -3210 2520 m -gs 1 -1 sc (X) col0 sh gr -% Ellipse -n 3300 4170 270 270 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 2700 3270 270 270 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 3900 3270 270 270 0 360 DrawEllipse gs col0 s gr - -% Ellipse -n 4455 4170 270 270 0 360 DrawEllipse gs col0 s gr - -% Polyline -n 3000 5100 m 3600 5100 l 3600 5700 l 3000 5700 l cp gs col0 s gr -% Polyline -n 3900 5100 m 4500 5100 l 4500 5700 l 3900 5700 l cp gs col0 s gr -% Polyline -gs clippath -2957 2969 m 2864 3052 l 2907 2936 l 2817 3071 l 2867 3104 l cp -clip -n 3150 2625 m 2850 3075 l gs col0 s gr gr - -% arrowhead -n 2957 2969 m 2864 3052 l 2907 2936 l 2932 2953 l 2957 2969 l cp gs 0.00 setgray ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -3693 2936 m 3735 3052 l 3643 2969 l 3733 3104 l 3783 3071 l cp -clip -n 3450 2625 m 3750 3075 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 3693 2936 m 3735 3052 l 3643 2969 l 3668 2953 l 3693 2936 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3649 3881 m 3556 3964 l 3599 3848 l 3509 3983 l 3559 4016 l cp -clip -n 3842 3537 m 3542 3987 l gs col0 s gr gr - -% arrowhead -n 3649 3881 m 3556 3964 l 3599 3848 l 3624 3865 l 3649 3881 l cp gs 0.00 setgray ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -4235 3824 m 4277 3940 l 4185 3857 l 4275 3992 l 4325 3959 l cp -clip -n 3992 3513 m 4292 3963 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 4235 3824 m 4277 3940 l 4185 3857 l 4210 3841 l 4235 3824 l cp gs 0.00 setgray ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -3036 3830 m 3062 3950 l 2982 3857 l 3055 4002 l 3109 3975 l cp -clip -n 2850 3525 m 3075 3975 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 3036 3830 m 3062 3950 l 2982 3857 l 3009 3844 l 3036 3830 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3330 4953 m 3300 5073 l 3270 4953 l 3270 5115 l 3330 5115 l cp -clip -n 3300 4425 m 3300 5100 l gs col0 s gr gr - -% arrowhead -n 3330 4953 m 3300 5073 l 3270 4953 l 3300 4953 l 3330 4953 l cp gs 0.00 setgray ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -3975 4970 m 4032 5079 l 3930 5010 l 4038 5131 l 4082 5091 l cp -clip -n 3450 4425 m 4050 5100 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 3975 4970 m 4032 5079 l 3930 5010 l 3952 4990 l 3975 4970 l cp gs 0.00 setgray ef gr col0 s -% Polyline - [60] 0 sd -gs clippath -3579 5023 m 3469 5081 l 3539 4979 l 3419 5088 l 3459 5132 l cp -clip -n 4275 4350 m 3450 5100 l gs col0 s gr gr - [] 0 sd -% arrowhead -n 3579 5023 m 3469 5081 l 3539 4979 l 3559 5001 l 3579 5023 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -4336 4963 m 4280 5073 l 4278 4950 l 4242 5108 l 4301 5121 l cp -clip -n 4425 4425 m 4275 5100 l gs col0 s gr gr - -% arrowhead -n 4336 4963 m 4280 5073 l 4278 4950 l 4307 4957 l 4336 4963 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3131 4983 m 3204 5082 l 3093 5029 l 3217 5133 l 3256 5087 l cp -clip -n 2550 3525 m 2550 3527 l 2549 3530 l 2549 3536 l 2548 3546 l 2546 3560 l - 2544 3579 l 2541 3602 l 2538 3629 l 2535 3661 l 2532 3696 l - 2528 3735 l 2524 3777 l 2520 3821 l 2516 3866 l 2513 3912 l - 2510 3958 l 2507 4004 l 2505 4049 l 2504 4092 l 2504 4133 l - 2504 4173 l 2506 4211 l 2508 4247 l 2512 4280 l 2517 4312 l - 2523 4342 l 2530 4371 l 2539 4398 l 2550 4425 l 2562 4451 l - 2576 4477 l 2592 4503 l 2610 4529 l 2630 4556 l 2652 4583 l - 2677 4611 l 2704 4641 l 2734 4671 l 2765 4702 l 2799 4733 l - 2834 4766 l 2870 4798 l 2907 4831 l 2944 4864 l 2980 4896 l - 3016 4926 l 3051 4955 l 3083 4982 l 3112 5007 l 3138 5029 l - 3161 5048 l 3180 5063 l 3195 5076 l 3207 5085 l 3225 5100 l gs col0 s gr gr - -% arrowhead -n 3131 4983 m 3204 5082 l 3093 5029 l 3112 5006 l 3131 4983 l cp gs 0.00 setgray ef gr col0 s -/Helvetica ff 270.00 scf sf -3210 4290 m -gs 1 -1 sc (Z) col0 sh gr -/Helvetica ff 270.00 scf sf -3210 5490 m -gs 1 -1 sc (1) col0 sh gr -/Helvetica ff 270.00 scf sf -4140 5505 m -gs 1 -1 sc (0) col0 sh gr -/Helvetica ff 270.00 scf sf -2610 3390 m -gs 1 -1 sc (Y) col0 sh gr -/Helvetica ff 270.00 scf sf -3810 3390 m -gs 1 -1 sc (Y) col0 sh gr -/Helvetica ff 270.00 scf sf -4365 4290 m -gs 1 -1 sc (Z) col0 sh gr -$F2psEnd -rs - -%%EndDocument - @endspecial eop -%%Page: 2 2 -2 1 bop eop -%%Page: 1 3 -1 2 bop 236 826 a Fp(Con)-6 b(ten)g(ts)236 1362 y Fo(1)85 -b(In)m(tro)s(duction)2778 b(1)373 1475 y Fn(1.1)94 b(Ac)m(kno)m -(wledgemen)m(ts)59 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)127 b(1)236 1679 y Fo(2)85 b(Users)35 b(Guide)2791 -b(3)373 1792 y Fn(2.1)94 b(Getting)31 b(BuDDy)h(.)46 -b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(3)373 1905 y(2.2)94 b(Installing)81 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 b(3)373 -2018 y(2.3)94 b(Compiling)43 b(.)i(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 b(3)373 2131 -y(2.4)94 b(Programming)29 b(with)g(BuDDy)82 b(.)45 b(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)127 b(3)582 2244 y(2.4.1)106 b(More)31 -b(Examples)40 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(4)373 2357 y(2.5)94 b(V)-8 b(ariable)30 b(sets)90 b(.)46 -b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(4)373 2469 y(2.6)94 b(Dynamic)30 b(V)-8 b(ariable)30 -b(Reordering)51 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(5)373 2582 y(2.7)94 b(Error)29 b(Handling)60 b(.)46 -b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(6)373 2695 y(2.8)94 b(The)30 b(C++)f(in)m(terface)46 -b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(6)373 2808 y(2.9)94 b(Finite)29 b(Domain)h(Blo)s(c)m(ks)83 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(7)373 2921 y(2.10)49 b(Bo)s(olean)30 b(V)-8 b(ectors)26 -b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 -b(7)582 3034 y(2.10.1)61 b(C++)29 b(In)m(terface)77 b(.)45 -b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)127 b(9)236 -3238 y Fo(3)85 b(E\016ciency)35 b(Concerns)2407 b(11)236 -3442 y(4)85 b(Some)34 b(Implemen)m(tation)e(details)1967 -b(13)236 3645 y(5)85 b(Reference)2853 b(15)373 3758 y -Fn(b)s(ddCac)m(heStat)103 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(20)373 3871 -y(b)s(ddGb)s(cStat)106 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(21)373 3984 -y(b)s(ddStat)59 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(22)373 -4097 y(b)s(dd)p 534 4097 28 4 v 30 w(addref)j(.)46 b(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(22)373 4210 y(b)s(dd)p 534 4210 V 30 w(addv)-5 b(arblo)s(c)m(k)67 -b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)82 b(23)373 4323 y(b)s(dd)p 534 4323 V 30 w(in)m(taddv)-5 -b(arblo)s(c)m(k)100 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(23)373 4436 y(b)s(dd)p 534 4436 -V 30 w(allsat)123 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(24)373 4549 -y(b)s(dd)p 534 4549 V 30 w(and)119 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(24)373 4662 y(b)s(dd)p 534 4662 V 30 w(ano)s(decoun)m(t)94 -b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)82 b(25)373 4775 y(b)s(dd)p 534 4775 V 30 w(appall)92 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(25)373 4887 y(b)s(dd)p 534 4887 -V 30 w(app)s(ex)98 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(26)373 5000 -y(b)s(dd)p 534 5000 V 30 w(apply)115 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(27)373 5113 y(b)s(dd)p 534 5113 V 30 w(appuni)61 b(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(27)373 5226 y(b)s(dd)p 534 5226 V 30 -w(autoreorder)88 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)82 b(28)373 5339 y(b)s(dd)p 534 -5339 V 30 w(autoreorder)p 1024 5339 V 33 w(times)55 b(.)45 -b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(28)373 5452 y(b)s(dd)p 534 5452 V 30 w(biimp)106 b(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(28)373 5565 y(b)s(dd)p 534 5565 V 30 -w(blo)s(c)m(k\014le)p 891 5565 V 32 w(ho)s(ok)68 b(.)46 -b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(29)373 5678 y(b)s(dd)p 534 5678 V 30 w(buildcub)s(e)88 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(29)1995 5989 y(i)p eop -%%Page: 2 4 -2 3 bop 373 162 a Fn(b)s(dd)p 534 162 28 4 v 30 w(ibuildcub)s(e)62 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(29)373 275 y(b)s(dd)p 534 275 V 30 w(cac)m(hestats)c(.) -45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)82 b(30)373 388 y(b)s(dd)p 534 388 V 30 w(clear)p -751 388 V 33 w(error)65 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(30)373 501 y(b)s(dd)p -534 501 V 30 w(clrv)-5 b(arblo)s(c)m(ks)76 b(.)46 b(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(30)373 -614 y(b)s(dd)p 534 614 V 30 w(comp)s(ose)71 b(.)46 b(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(31)373 727 y(b)s(dd)p 534 727 V 30 w(constrain)113 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(31)373 840 y(b)s(dd)p 534 840 V 30 w(delref)115 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(32)373 953 y(b)s(dd)p 534 953 -V 30 w(disable)p 839 953 V 31 w(reorder)100 b(.)46 b(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(32)373 -1066 y(b)s(dd)p 534 1066 V 30 w(done)d(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(32)373 1178 y(b)s(dd)p 534 1178 V 30 w(enable)p 817 -1178 V 33 w(reorder)120 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)82 b(33)373 1291 y(b)s(dd)p 534 -1291 V 30 w(error)p 757 1291 V 33 w(ho)s(ok)60 b(.)45 -b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)82 b(33)373 1404 y(b)s(dd)p 534 1404 V 30 w(errstring)66 -b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)82 b(34)373 1517 y(b)s(dd)p 534 1517 V -30 w(exist)f(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(34)373 1630 y(b)s(dd)p -534 1630 V 30 w(extv)-5 b(arn)m(um)56 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(34)373 -1743 y(b)s(dd)p 534 1743 V 30 w(false)91 b(.)45 b(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(35)373 1856 y(b)s(dd)p 534 1856 V 30 w(\014le)p 681 -1856 V 32 w(ho)s(ok)66 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(35)373 1969 -y(b)s(dd)p 534 1969 V 30 w(forall)60 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(36)373 2082 y(b)s(dd)p 534 2082 V 30 w(freepair)105 -b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)82 b(36)373 2195 y(b)s(dd)p 534 2195 V -30 w(fullsatone)95 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(36)373 2308 y(b)s(dd)p -534 2308 V 30 w(gb)s(c)p 703 2308 V 33 w(ho)s(ok)114 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(37)373 2420 y(b)s(dd)p 534 2420 V 30 -w(getallo)s(cn)m(um)68 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(37)373 2533 y(b)s(dd)p -534 2533 V 30 w(getno)s(den)m(um)63 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(38)373 -2646 y(b)s(dd)p 534 2646 V 30 w(getreorder)p 968 2646 -V 34 w(metho)s(d)92 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(38)373 2759 y(b)s(dd)p 534 2759 V 30 -w(getreorder)p 968 2759 V 34 w(times)110 b(.)45 b(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(38)373 2872 -y(b)s(dd)p 534 2872 V 30 w(high)93 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(39)373 2985 y(b)s(dd)p 534 2985 V 30 w(imp)113 b(.)45 -b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)82 b(39)373 3098 y(b)s(dd)p 534 3098 -V 30 w(init)57 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(40)373 3211 -y(b)s(dd)p 534 3211 V 30 w(isrunning)105 b(.)45 b(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(40)373 3324 y(b)s(dd)p 534 3324 V 30 w(ite)94 b(.)46 -b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)82 b(41)373 3437 y(b)s(dd)p 534 3437 -V 30 w(ith)m(v)-5 b(ar)103 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(41)373 -3550 y(b)s(dd)p 534 3550 V 30 w(lev)m(el2v)-5 b(ar)61 -b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)82 b(42)373 3662 y(b)s(dd)p 534 3662 V -30 w(load)99 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(42)373 3775 -y(b)s(dd)p 534 3775 V 30 w(fnload)90 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(42)373 3888 y(b)s(dd)p 534 3888 V 30 w(lo)m(w)61 b(.)46 -b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)82 b(43)373 4001 y(b)s(dd)p 534 4001 -V 30 w(mak)m(eset)90 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(43)373 4114 -y(b)s(dd)p 534 4114 V 30 w(newpair)92 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(44)373 4227 y(b)s(dd)p 534 4227 V 30 w(nith)m(v)-5 -b(ar)123 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)82 b(44)373 4340 y(b)s(dd)p 534 -4340 V 30 w(no)s(decoun)m(t)69 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(45)373 4453 -y(b)s(dd)p 534 4453 V 30 w(not)64 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(45)373 4566 y(b)s(dd)p 534 4566 V 30 w(or)114 b(.)46 -b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)82 b(45)373 4679 y(b)s(dd)p 534 4679 -V 30 w(pathcoun)m(t)77 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(46)373 4792 y(b)s(dd)p -534 4792 V 30 w(prin)m(tall)114 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(46)373 -4905 y(b)s(dd)p 534 4905 V 30 w(fprin)m(tall)k(.)46 b(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(46)373 5017 y(b)s(dd)p 534 5017 V 30 w(prin)m(tdot)e(.)46 -b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)82 b(47)373 5130 y(b)s(dd)p 534 5130 V 30 w(fprin)m(tdot)123 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(47)373 5243 y(b)s(dd)p 534 5243 V 30 -w(prin)m(torder)74 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(47)373 5356 y(b)s(dd)p -534 5356 V 30 w(prin)m(tset)100 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(48)373 -5469 y(b)s(dd)p 534 5469 V 30 w(fprin)m(tset)72 b(.)46 -b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)82 b(48)373 5582 y(b)s(dd)p 534 5582 V 30 w(prin)m(tstat)60 -b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)82 b(48)373 5695 y(b)s(dd)p 534 5695 V -30 w(fprin)m(tstat)103 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(48)1983 5989 y(ii)p -eop -%%Page: 3 5 -3 4 bop 373 162 a Fn(b)s(dd)p 534 162 28 4 v 30 w(prin)m(ttable)85 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(49)373 275 y(b)s(dd)p 534 275 V 30 w(fprin)m(ttable)57 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(49)373 388 y(b)s(dd)p 534 388 V 30 w(relpro)s(d)119 -b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)82 b(49)373 501 y(b)s(dd)p 534 501 V 30 -w(reorder)123 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(50)373 614 y(b)s(dd)p -534 614 V 30 w(reorder)p 848 614 V 33 w(gain)64 b(.)46 -b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -82 b(51)373 727 y(b)s(dd)p 534 727 V 30 w(reorder)p 848 -727 V 33 w(ho)s(ok)110 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)82 b(51)373 840 y(b)s(dd)p 534 -840 V 30 w(reorder)p 848 840 V 33 w(prob)s(e)76 b(.)46 -b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(52)373 953 y(b)s(dd)p 534 953 V 30 w(reorder)p 848 -953 V 33 w(v)m(erb)s(ose)77 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(52)373 1066 y(b)s(dd)p -534 1066 V 30 w(replace)58 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(53)373 -1178 y(b)s(dd)p 534 1178 V 30 w(resetpair)62 b(.)46 b(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(53)373 1291 y(b)s(dd)p 534 1291 V 30 w(resize)p 782 -1291 V 33 w(ho)s(ok)105 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(54)373 1404 y(b)s(dd)p -534 1404 V 30 w(restrict)123 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(55)373 -1517 y(b)s(dd)p 534 1517 V 30 w(satcoun)m(t)72 b(.)46 -b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)82 b(55)373 1630 y(b)s(dd)p 534 1630 V 30 w(setcoun)m(tset)107 -b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)82 b(55)373 1743 y(b)s(dd)p 534 1743 V 30 w(satcoun)m(tln)66 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(56)373 1856 y(b)s(dd)p 534 1856 V 30 -w(setcoun)m(tlnset)101 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)82 b(56)373 1969 y(b)s(dd)p 534 -1969 V 30 w(satone)i(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(56)373 2082 -y(b)s(dd)p 534 2082 V 30 w(satoneset)115 b(.)45 b(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(57)373 2195 y(b)s(dd)p 534 2195 V 30 w(sa)m(v)m(e)103 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)82 b(57)373 2308 y(b)s(dd)p 534 -2308 V 30 w(fnsa)m(v)m(e)94 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(57)373 -2420 y(b)s(dd)p 534 2420 V 30 w(scanset)124 b(.)46 b(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(58)373 2533 y(b)s(dd)p 534 2533 V 30 w(setcac)m(heratio)108 -b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)82 b(58)373 2646 y(b)s(dd)p 534 2646 V 30 w(setmaxincrease)96 -b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(59)373 2759 y(b)s(dd)p 534 2759 V 30 w(setmaxno)s(den)m(um)116 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(59)373 2872 y(b)s(dd)p 534 2872 V 30 w(setminfreeno)s(des)56 -b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(60)373 2985 y(b)s(dd)p 534 2985 V 30 w(setpair)67 b(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(60)373 3098 y(b)s(dd)p 534 3098 V 30 -w(setb)s(ddpair)53 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(60)373 3211 y(b)s(dd)p -534 3211 V 30 w(setpairs)102 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(61)373 -3324 y(b)s(dd)p 534 3324 V 30 w(setb)s(ddpairs)87 b(.)46 -b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -82 b(61)373 3437 y(b)s(dd)p 534 3437 V 30 w(setv)-5 b(arn)m(um)68 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(61)373 3550 y(b)s(dd)p 534 3550 V 30 -w(setv)-5 b(arorder)105 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(62)373 3662 y(b)s(dd)p -534 3662 V 30 w(simplify)90 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(62)373 -3775 y(b)s(dd)p 534 3775 V 30 w(stats)d(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(62)373 3888 y(b)s(dd)p 534 3888 V 30 w(strm)p 747 3888 -V 33 w(ho)s(ok)70 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(63)373 4001 y(b)s(dd)p -534 4001 V 30 w(supp)s(ort)99 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(63)373 -4114 y(b)s(dd)p 534 4114 V 30 w(sw)m(ap)m(v)-5 b(ar)91 -b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)82 b(64)373 4227 y(b)s(dd)p 534 4227 V -30 w(true)104 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(64)373 4340 -y(b)s(dd)p 534 4340 V 30 w(unique)69 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(65)373 4453 y(b)s(dd)p 534 4453 V 30 w(v)-5 b(ar)71 -b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(65)373 4566 y(b)s(dd)p -534 4566 V 30 w(v)-5 b(ar2lev)m(el)61 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(65)373 4679 y(b)s(dd)p 534 4679 V 30 w(v)-5 b(arblo)s(c)m(k)g(all)122 -b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)82 b(66)373 4792 y(b)s(dd)p 534 4792 V 30 w(v)-5 -b(arn)m(um)108 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(66)373 4905 y(b)s(dd)p -534 4905 V 30 w(v)-5 b(arpro\014le)105 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(66)373 -5017 y(b)s(dd)p 534 5017 V 30 w(v)m(eccomp)s(ose)87 b(.)46 -b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -82 b(67)373 5130 y(b)s(dd)p 534 5130 V 30 w(v)m(ersionn)m(um)94 -b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)82 b(67)373 5243 y(b)s(dd)p 534 5243 V 30 w(v)m(ersionstr)92 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(67)373 5356 y(b)s(dd)p 534 5356 V 30 -w(xor)66 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(68)373 5469 -y(b)s(ddfalse)50 b(.)c(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(68)373 5582 -y(b)s(ddtrue)63 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(68)373 -5695 y(b)m(v)m(ec)66 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(69)1970 5989 y(iii)p eop -%%Page: 4 6 -4 5 bop 373 162 a Fn(b)m(v)m(ec)p 551 162 28 4 v 34 w(add)98 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)82 b(69)373 275 y(b)m(v)m(ec)p -551 275 V 34 w(addref)64 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(70)373 -388 y(b)m(v)m(ec)p 551 388 V 34 w(co)s(erce)71 b(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(70)373 501 y(b)m(v)m(ec)p 551 501 V -34 w(con)109 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(70)373 614 y(b)m(v)m(ec)p -551 614 V 34 w(cop)m(y)64 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(71)373 -727 y(b)m(v)m(ec)p 551 727 V 34 w(delref)94 b(.)46 b(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(71)373 840 y(b)m(v)m(ec)p 551 840 V 34 w(div)120 b(.)45 -b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)82 b(71)373 953 y(b)m(v)m(ec)p 551 953 -V 34 w(div\014xed)71 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(72)373 1066 -y(b)m(v)m(ec)p 551 1066 V 34 w(equ)106 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(72)373 1178 y(b)m(v)m(ec)p 551 1178 V 34 w(false)70 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)82 b(72)373 1291 y(b)m(v)m(ec)p -551 1291 V 34 w(free)101 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(73)373 -1404 y(b)m(v)m(ec)p 551 1404 V 34 w(gte)54 b(.)46 b(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(73)373 1517 y(b)m(v)m(ec)p 551 1517 V 34 w(gth)114 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)82 b(73)373 1630 y(b)m(v)m(ec)p -551 1630 V 34 w(isconst)117 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(74)373 -1743 y(b)m(v)m(ec)p 551 1743 V 34 w(ite)73 b(.)46 b(.)f(.)h(.)g(.)f(.)h -(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(74)373 1856 y(b)m(v)m(ec)p 551 1856 V 34 w(lte)73 b(.)46 -b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)82 b(74)373 1969 y(b)m(v)m(ec)p 551 -1969 V 34 w(lth)62 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(75)373 -2082 y(b)m(v)m(ec)p 551 2082 V 34 w(map1)98 b(.)46 b(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(75)373 2195 y(b)m(v)m(ec)p 551 2195 V 34 w(map2)98 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(76)373 2308 y(b)m(v)m(ec)p 551 -2308 V 34 w(map3)98 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(76)373 2420 -y(b)m(v)m(ec)p 551 2420 V 34 w(m)m(ul)95 b(.)45 b(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(77)373 2533 y(b)m(v)m(ec)p 551 2533 V 34 w(m)m(ul\014xed)117 -b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)82 b(77)373 2646 y(b)m(v)m(ec)p 551 2646 V -34 w(neq)106 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(77)373 2759 -y(b)m(v)m(ec)p 551 2759 V 34 w(shl)61 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(78)373 2872 y(b)m(v)m(ec)p 551 2872 V 34 w(shl\014xed)h(.)46 -b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)82 b(78)373 2985 y(b)m(v)m(ec)p 551 2985 V 34 -w(shr)122 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(79)373 3098 y(b)m(v)m(ec)p -551 3098 V 34 w(shr\014xed)73 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(79)373 -3211 y(b)m(v)m(ec)p 551 3211 V 34 w(sub)107 b(.)45 b(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(80)373 3324 y(b)m(v)m(ec)p 551 3324 V 34 w(true)h(.)45 -b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)82 b(80)373 3437 y(b)m(v)m(ec)p 551 3437 -V 34 w(v)-5 b(al)60 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(81)373 -3550 y(b)m(v)m(ec)p 551 3550 V 34 w(v)-5 b(ar)121 b(.)45 -b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)82 b(81)373 3662 y(b)m(v)m(ec)p 551 3662 -V 34 w(v)-5 b(arfdd)61 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(82)373 3775 -y(b)m(v)m(ec)p 551 3775 V 34 w(v)-5 b(arv)m(ec)66 b(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(82)373 3888 y(fdd)p 508 3888 V 31 w(clearall)77 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(82)373 4001 y(fdd)p 508 4001 -V 31 w(domain)67 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(83)373 4114 -y(fdd)p 508 4114 V 31 w(domainn)m(um)104 b(.)46 b(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(83)373 -4227 y(fdd)p 508 4227 V 31 w(domainsize)67 b(.)45 b(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(83)373 4340 y(fdd)p 508 4340 V 31 w(equals)115 b(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(84)373 4453 y(fdd)p 508 4453 V 31 w(extdomain)k(.)45 -b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)82 b(84)373 4566 y(fdd)p 508 4566 V 31 w(\014le)p -656 4566 V 32 w(ho)s(ok)91 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(85)373 4679 -y(fdd)p 508 4679 V 31 w(in)m(taddv)-5 b(arblo)s(c)m(k)54 -b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)82 b(85)373 4792 y(fdd)p 508 4792 V 31 w(ithset)68 -b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g -(.)f(.)h(.)g(.)f(.)h(.)82 b(86)373 4905 y(fdd)p 508 4905 -V 31 w(ith)m(v)-5 b(ar)58 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(86)373 -5017 y(fdd)p 508 5017 V 31 w(mak)m(eset)115 b(.)46 b(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(87)373 5130 y(fdd)p 508 5130 V 31 w(o)m(v)m(erlap)s(domain)62 -b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h -(.)82 b(87)373 5243 y(fdd)p 508 5243 V 31 w(prin)m(tset)54 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(88)373 5356 y(fdd)p 508 5356 -V 31 w(fprin)m(tset)97 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(88)373 5469 -y(fdd)p 508 5469 V 31 w(scanallv)-5 b(ar)110 b(.)45 b(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(88)373 5582 y(fdd)p 508 5582 V 31 w(scanset)c(.)46 -b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h -(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)82 b(89)373 5695 y(fdd)p 508 5695 V 31 w(scan)m(v)-5 -b(ar)68 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.) -g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(89)1971 5989 y(iv)p eop -%%Page: 5 7 -5 6 bop 373 162 a Fn(fdd)p 508 162 28 4 v 31 w(setpair)92 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(90)373 275 y(fdd)p 508 275 V -31 w(setpairs)56 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.) -f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(90)373 388 y(fdd)p -508 388 V 31 w(strm)p 722 388 V 32 w(ho)s(ok)96 b(.)45 -b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)82 b(91)373 501 y(fdd)p 508 501 V 31 w(v)-5 b(arn)m(um)62 -b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.) -f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f -(.)h(.)g(.)f(.)h(.)82 b(91)373 614 y(fdd)p 508 614 V -31 w(v)-5 b(ars)60 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f -(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.) -h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 b(92)373 -727 y(op)s(erator)p Fm(<<)90 b Fn(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.) -g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g -(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)82 -b(92)1984 5989 y(v)p eop -%%Page: 6 8 -6 7 bop 1971 5989 a Fn(vi)p eop -%%Page: 1 9 -1 8 bop 236 785 a Fl(Chapter)65 b(1)236 1200 y Fp(In)-6 -b(tro)6 b(duction)236 1645 y Fn(BuDDy)27 b(is)e(a)h(Binary)f(Decision)g -(Diagram)h(pac)m(k)-5 b(age)28 b(that)e(pro)m(vides)f(all)g(of)h(the)g -(most)g(used)f(functions)236 1758 y(for)31 b(manipulating)d(BDDs.)43 -b(The)30 b(pac)m(k)-5 b(age)33 b(also)d(includes)f(functions)g(for)i -(in)m(teger)g(arithmetics)f(suc)m(h)236 1871 y(as)h(addition)d(and)i -(relational)f(op)s(erators.)377 1984 y(BuDDy)36 b(started)f(as)g(a)h -(tec)m(hnology)g(transfer)e(pro)5 b(ject)35 b(b)s(et)m(w)m(een)h(the)f -(T)-8 b(ec)m(hnical)34 b(Univ)m(ersit)m(y)g(of)236 2097 -y(Denmark)i(and)f(Bann)g(Visualstate.)57 b(The)35 b(later)h(is)e(no)m -(w)i(using)e(the)i(tec)m(hniques)f(from)g(BuDDy)i(in)236 -2210 y(their)30 b(soft)m(w)m(are.)42 b(See)30 b Fm(www.visualstate.com) -p Fn(.)377 2323 y(This)19 b(man)m(ual)h(describ)s(es)f(only)h(the)h(in) -m(terface)g(to)h(BuDDy)-8 b(,)24 b(not)d(the)g(underlying)c(theory)k -(of)g(BDDs.)236 2435 y(More)37 b(information)c(ab)s(out)j(that)g(can)g -(b)s(e)f(found)f(in)g(Henrik)h(Reif)g(Andersen's)f(\\An)i(In)m(tro)s -(duction)236 2548 y(T)-8 b(o)42 b(Binary)e(Decision)h(Diagrams")g(whic) -m(h)f(is)h(supplied)c(with)j(the)h(BuDD)m(Y)i(distribution.)69 -b(Ev)m(en)236 2661 y(more)39 b(information)e(can)j(of)f(course)g(b)s(e) -f(found)g(in)f(the)i(original)e(pap)s(ers)h(b)m(y)h(Bry)m(an)m(t,)j -(Rudell)37 b(and)236 2774 y(Brace)32 b([1,)f(3)q(,)f(2)q(,)g(4)q(])236 -3061 y Fk(1.1)136 b(Ac)l(kno)l(wledgemen)l(ts)236 3264 -y Fn(Thanks)38 b(to)i(the)f(follo)m(wing)e(p)s(eople)h(for)g(new)h -(ideas,)h(bug)e(h)m(un)m(ts)h(and)f(lots)h(of)g(discussions:)55 -b(Gerd)236 3376 y(Behrmann,)26 b(Henrik)f(Reif)g(Andersen,)h(Ken)g -(Larsen,)g(Jacob)h(Lic)m(h)m(ten)m(b)s(erg,)g(P)m(oul)e(Williams,)g -(Nik)m(ola)5 b(j)236 3489 y(Bjorner,)31 b(Alan)e(Mishc)m(henk)m(o,)i -(Henrik)e(Hulgaard,)h(and)g(Malte)h(Helmert.)1985 5989 -y(1)p eop -%%Page: 2 10 -2 9 bop 1985 5989 a Fn(2)p eop -%%Page: 3 11 -3 10 bop 236 785 a Fl(Chapter)65 b(2)236 1200 y Fp(Users)77 -b(Guide)236 1682 y Fk(2.1)136 b(Getting)45 b(BuDDy)236 -1885 y Fn(BuDDy)31 b(can)g(b)s(e)f(found)f(on)h(the)h(serv)m(er)f -Fm(http://www.itu.dk/researc)o(h/bu)o(ddy)o Fn(.)236 -2171 y Fk(2.2)136 b(Installing)347 2374 y Fn(1.)46 b(Edit)30 -b(the)g(\014le)g("con\014g")h(to)g(sp)s(ecify)e(y)m(our)i(compiler)e -(and)g(install)g(options.)347 2562 y(2.)46 b(T)m(yp)s(e)30 -b Fm(make)g Fn(to)h(mak)m(e)g(the)g(binary)-8 b(.)347 -2749 y(3.)46 b(T)m(yp)s(e)30 b Fm(make)47 b(install)28 -b Fn(to)j(cop)m(y)h(the)e(BDD)i(\014les)d(to)i(their)f(appropriate)f -(directories)347 2937 y(4.)46 b(T)m(yp)s(e)30 b Fm(make)47 -b(examples)28 b Fn(to)j(mak)m(e)h(the)e(examples)236 -3223 y Fk(2.3)136 b(Compiling)236 3426 y Fn(This)28 b(is)g(rather)h -(simple.)38 b(Just)28 b(inform)g(the)h(compiler)f(of)h(where)g(the)g -(binaries)e(and)h(include)f(\014les)h(are)236 3539 y(installed.)38 -b(With)26 b(Gn)m(u)h(C)g(this)f(is)h(done)g(with)f(the)h -Fm(-I)g Fn(and)g Fm(-L)f Fn(options.)39 b(Assuming)26 -b(that)i(the)f(binary)236 3652 y(library)g Fm(libbdd.a)g -Fn(is)h(installed)e(in)i Fm(/usr/local/lib)d Fn(and)j(the)i(include)c -(\014le)i Fm(bdd.h)g Fn(is)g(installed)f(in)236 3765 -y Fm(/usr/local/include)p Fn(,)f(then)k(the)g(compile)g(command)g -(should)e(b)s(e)377 3968 y Fm(cc)48 b(-I/usr/local/include)42 -b(myfile.c)j(-o)j(myfile)e(-L/usr/include/lib)c(-lbdd)236 -4173 y Fn(If)31 b(the)h(ab)s(o)m(v)m(e)h(directories)d(are)i(included)d -(in)h(y)m(our)i(searc)m(h)g(path)f(already)-8 b(,)33 -b(then)e(y)m(ou)h(migh)m(t)f(b)s(e)g(able)236 4286 y(to)g(reduce)f(the) -h(command)f(to)463 4485 y Fm(cc)48 b(myfile.c)d(-o)i(myfile)f(-lbdd)236 -4777 y Fk(2.4)136 b(Programming)46 b(with)f(BuDDy)236 -4980 y Fn(First)28 b(of)h(all)f(a)h(program)g(needs)f(to)i(call)e -Fm(bdd)p 1791 4980 29 4 v 33 w(init\(nodenum,cachesize\))23 -b Fn(to)29 b(initialize)d(the)j(BDD)236 5093 y(pac)m(k)-5 -b(age.)55 b(The)34 b Fm(nodenum)e Fn(parameter)j(sets)g(the)g(initial)c -(n)m(um)m(b)s(er)i(of)i(BDD)h(no)s(des)d(and)h Fm(cachesize)236 -5206 y Fn(sets)28 b(the)g(size)f(of)h(the)g(cac)m(hes)h(used)e(for)g -(the)h(BDD)g(op)s(erators)g(\(not)g(the)g(unique)e(no)s(de)h(table\).) -40 b(These)236 5319 y(cac)m(hes)32 b(are)f(used)e(for)i -Fm(bdd)p 1166 5319 V 33 w(apply)e Fn(anmong)h(others.)377 -5432 y(Go)s(o)s(d)g(initial)e(v)-5 b(alues)30 b(are)1985 -5989 y(3)p eop -%%Page: 4 12 -4 11 bop 427 150 a Fo(Example)642 b(no)s(den)m(um)99 -b(cac)m(hesize)427 263 y Fn(Small)29 b(test)i(examples)486 -b(1000)377 b(100)427 376 y(Small)29 b(examples)618 b(10000)331 -b(1000)427 489 y(Medium)29 b(sized)h(examples)246 b(100000)287 -b(10000)427 602 y(Large)31 b(examples)526 b(1000000)203 -b(v)-5 b(ariable)236 757 y(T)d(o)s(o)40 b(few)f(no)s(des)f(will)e(only) -j(result)f(in)f(reduced)i(p)s(erformance)f(as)h(this)f(increases)h(the) -h(n)m(um)m(b)s(er)d(of)236 870 y(garbage)g(collections)e(needed.)55 -b(If)35 b(the)h(pac)m(k)-5 b(age)37 b(needs)e(more)h(no)s(des,)g(then)f -(it)g(will)e(automatically)236 983 y(increase)21 b(the)g(size)f(of)h -(the)g(no)s(de)f(table.)38 b(Use)21 b Fm(bdd)p 1906 983 -29 4 v 34 w(setminfreenodes)16 b Fn(to)22 b(c)m(hange)g(the)f -(parameters)g(for)236 1095 y(when)h(this)g(is)g(done)g(and)g(use)h -Fm(bdd)p 1398 1095 V 33 w(setcacheratio)d Fn(to)j(enable)f(dynamical)g -(resizing)f(of)i(the)g(op)s(erator)236 1208 y(cac)m(hes.)41 -b(Y)-8 b(ou)27 b(ma)m(y)g(also)f(use)g(the)g(function)f -Fm(bdd)p 1912 1208 V 34 w(setmaxincrease)d Fn(to)27 b(adjust)f(ho)m(w)g -(BuDDy)h(resizes)236 1321 y(the)k(no)s(de)e(table.)377 -1434 y(After)42 b(the)f(initialization)d(a)k(call)e(m)m(ust)h(b)s(e)g -(done)g(to)h Fm(bdd)p 2469 1434 V 33 w(setvarnum)d Fn(to)j(de\014ne)e -(ho)m(w)h(man)m(y)236 1547 y(v)-5 b(ariables)30 b(to)j(use)e(in)f(this) -g(session.)43 b(This)30 b(n)m(um)m(b)s(er)g(ma)m(y)i(b)s(e)f(increased) -g(later)g(on)h(either)f(b)m(y)g(calls)g(to)236 1660 y -Fm(bdd)p 386 1660 V 34 w(setvarnum)d Fn(or)i(to)h Fm(bdd)p -1246 1660 V 34 w(extvarnum)p Fn(.)377 1773 y(The)20 b(atomic)h -(functions)e(for)h(getting)h(new)f(BDD)h(no)s(des)f(are)g -Fm(bdd)p 2588 1773 V 34 w(ithvar\(i\))d Fn(and)j Fm(bdd)p -3382 1773 V 34 w(nithvar\(i\))236 1886 y Fn(whic)m(h)27 -b(returns)f(references)i(to)h(BDD)g(no)s(des)e(of)h(the)f(form)h(\()p -Fj(v)2359 1900 y Fi(i)2387 1886 y Fj(;)15 b Fn(0)p Fj(;)g -Fn(1\))30 b(and)d(\()p Fj(v)2875 1900 y Fi(i)2904 1886 -y Fj(;)15 b Fn(1)p Fj(;)g Fn(0\).)42 b(The)27 b(no)s(des)g(con-)236 -1999 y(structed)h(in)f(this)g(w)m(a)m(y)j(corresp)s(onds)c(to)j(the)g -(p)s(ositiv)m(e)e(and)h(negativ)m(e)h(v)m(ersions)f(of)g(a)h(single)d -(v)-5 b(ariable.)236 2112 y(Initially)28 b(the)i(v)-5 -b(ariable)29 b(order)h(is)g Fj(v)1451 2126 y Fh(0)1515 -2112 y Fj(<)25 b(v)1655 2126 y Fh(1)1720 2112 y Fj(<)g(:)15 -b(:)g(:)26 b(<)f(v)2087 2126 y Fi(n)p Fg(\000)p Fh(1)2250 -2112 y Fj(<)g(v)2390 2126 y Fi(n)2437 2112 y Fn(.)377 -2225 y(The)41 b(BDDs)h(returned)e(from)h Fm(bdd)p 1611 -2225 V 34 w(ithvar\(i\))d Fn(can)k(then)f(b)s(e)f(used)h(to)h(form)f -(new)f(BDDs)j(b)m(y)236 2337 y(calling)c Fm(bdd)p 684 -2337 V 33 w(apply\(a,b,op\))e Fn(where)j Fm(op)f Fn(ma)m(y)i(b)s(e)f -Fm(bddop)p 2367 2337 V 33 w(and)f Fn(or)h(an)m(y)h(of)f(the)h(other)f -(op)s(erators)236 2450 y(de\014ned)27 b(in)g Fm(bdd.h)p -Fn(.)38 b(The)28 b(apply)e(function)h(p)s(erforms)f(the)j(binary)d(op)s -(eration)h(indicated)g(b)m(y)h Fm(op)p Fn(.)39 b(Use)236 -2563 y Fm(bdd)p 386 2563 V 34 w(not)28 b Fn(to)i(negate)g(a)f(BDD.)i -(The)d(result)g(from)h Fm(bdd)p 2115 2563 V 33 w(apply)f -Fn(and)g(an)m(y)h(other)h(BDD)g(op)s(erator)f Ff(must)236 -2676 y Fn(b)s(e)c(handed)f(o)m(v)m(er)j(to)f Fm(bdd)p -1114 2676 V 34 w(addref)d Fn(to)k(increase)e(the)g(reference)h(coun)m -(t)g(of)g(the)g(no)s(de)e(b)s(efore)h(an)m(y)h(other)236 -2789 y(op)s(eration)34 b(is)g(p)s(erformed.)52 b(This)33 -b(is)h(done)g(to)h(prev)m(en)m(t)h(the)f(BDD)h(from)e(b)s(eing)f -(garbage)j(collected.)236 2902 y(When)f(a)g(BDD)i(is)d(no)h(longer)f -(in)g(use,)i(it)e(can)i(b)s(e)e(de-referenced)h(b)m(y)g(a)h(call)e(to)i -Fm(bdd)p 3230 2902 V 33 w(delref)p Fn(.)53 b(The)236 -3015 y(exceptions)28 b(to)h(this)e(are)h(the)h(return)e(v)-5 -b(alues)27 b(from)h Fm(bdd)p 2171 3015 V 33 w(ithvar)f -Fn(and)g Fm(bdd)p 2837 3015 V 34 w(nithvar)p Fn(.)37 -b(These)28 b(do)g(not)236 3128 y(need)35 b(to)g(b)s(e)f(reference)h -(coun)m(ted,)h(although)e(it)g(is)g(not)h(an)f(error)g(to)i(do)e(so.)53 -b(The)35 b(use)f(of)g(the)h(BDD)236 3241 y(pac)m(k)-5 -b(age)33 b(ends)c(with)g(a)i(call)f(to)h Fm(bdd)p 1493 -3241 V 33 w(done)p Fn(.)40 b(See)31 b(the)f(\014gures)g(2.1)h(and)f -(2.2)h(for)g(an)f(example.)377 3354 y(Information)41 -b(on)g(the)h(BDDs)h(can)f(b)s(e)e(found)h(using)f(the)i -Fm(bdd)p 2621 3354 V 33 w(var)p Fn(,)i Fm(bdd)p 3011 -3354 V 33 w(low)d Fn(and)g Fm(bdd)p 3561 3354 V 34 w(high)236 -3467 y Fn(functions)30 b(that)i(returns)e(the)i(v)-5 -b(ariable)30 b(lab)s(elling)e(a)k(BDD,)h(the)f(lo)m(w)f(branc)m(h)g -(and)f(the)i(high)e(branc)m(h)236 3579 y(of)h(a)g(BDD.)377 -3692 y(Prin)m(ting)i(BDDs)i(is)e(done)i(using)d(the)j(functions)e -Fm(bdd)p 2277 3692 V 33 w(printall)f Fn(that)j(prin)m(ts)e -Ff(al)5 b(l)35 b Fn(used)e(no)s(des,)236 3805 y Fm(bdd)p -386 3805 V 34 w(printtable)25 b Fn(that)j(prin)m(ts)f(the)h(part)f(of)i -(the)f(no)s(detable)f(that)h(corresp)s(onds)f(to)h(a)h(sp)s(eci\014c)d -(BDD)236 3918 y(and)d Fm(bdd)p 556 3918 V 34 w(printset)e -Fn(that)j(prin)m(ts)e(a)i(sp)s(eci\014c)e(BDD)j(as)f(a)f(list)g(of)g -(elemen)m(ts)h(in)e(a)i(set)g(\(all)f(paths)g(ending)236 -4031 y(in)29 b(the)i(true)f(terminal\).)236 4275 y Fe(2.4.1)113 -b(More)37 b(Examples)236 4446 y Fn(More)31 b(complex)f(examples)g(can)h -(b)s(e)f(found)f(in)g(the)h Fm(buddy/examples)d Fn(directory)-8 -b(.)236 4733 y Fk(2.5)136 b(V)-11 b(ariable)45 b(sets)236 -4936 y Fn(F)-8 b(or)25 b(some)g(functions)e(lik)m(e)h -Fm(bdd)p 1312 4936 V 33 w(exist)f Fn(it)h(is)g(p)s(ossible)e(to)j(pass) -f(a)h(whole)e(set)i(of)g(v)-5 b(ariables)23 b(to)i(b)s(e)f(quan-)236 -5048 y(ti\014ed,)32 b(using)f(BDDs)i(that)g(represen)m(t)f(the)h(v)-5 -b(ariables.)44 b(These)32 b(BDDs)i(are)e(simply)e(the)i(conjunction)236 -5161 y(of)f(all)f(the)g(v)-5 b(ariables)30 b(in)f(their)h(p)s(ositiv)m -(e)g(form)g(and)g(can)h(either)f(b)s(e)g(build)e(that)j(w)m(a)m(y)g(or) -g(b)m(y)g(a)g(call)f(to)236 5274 y Fm(bdd)p 386 5274 -V 34 w(makeset)p Fn(.)53 b(F)-8 b(or)35 b(the)h Fm(bdd)p -1307 5274 V 33 w(restrict)d Fn(function)h(the)h(v)-5 -b(ariables)34 b(need)h(to)h(b)s(e)e(included)e(in)i(b)s(oth)236 -5387 y(p)s(ositiv)m(e)c(and)f(negativ)m(e)j(form)e(whic)m(h)f(can)i -(only)e(b)s(e)h(done)g(man)m(ually)-8 b(.)377 5500 y(If)27 -b(for)f(example)g(v)-5 b(ariable)26 b(1)h(and)f(v)-5 -b(ariable)26 b(3)h(are)g(to)g(b)s(e)f(included)e(in)i(a)h(set,)h(then)e -(it)h(can)g(b)s(e)f(done)236 5613 y(in)j(t)m(w)m(o)j(w)m(a)m(ys,)f(as)g -(sho)m(wn)f(in)f(\014gure)h(2.3.)1985 5989 y(4)p eop -%%Page: 5 13 -5 12 bop 236 127 a Fm(#include)46 b()236 352 y(main\(void\))236 -465 y({)379 578 y(bdd)h(x,y,z;)379 804 y(bdd_init\(1000,100\);)379 -917 y(bdd_setvarnum\(5\);)379 1143 y(x)h(=)f(bdd_ithvar\(0\);)379 -1256 y(y)h(=)f(bdd_ithvar\(1\);)379 1369 y(z)h(=)f -(bdd_addref\(bdd_apply\(x,y,)o(bddo)o(p_an)o(d\)\))o(;)379 -1594 y(bdd_printtable\(z\);)379 1707 y(bdd_delref\(z\);)379 -1820 y(bdd_done\(\);)236 1933 y(})236 2229 y Fn(Figure)32 -b(2.1:)46 b(Standard)32 b(C)g(in)m(terface)h(to)g(BuDDy)-8 -b(.)48 b(In)32 b(this)f(mo)s(de)h(b)s(oth)g('b)s(dd')f(and)h('BDD')i -(can)f(b)s(e)236 2342 y(used)25 b(as)g(BuDDy)h(BDD)h(t)m(yp)s(es.)39 -b(The)25 b(C)g(in)m(terface)h(requires)d(the)j(user)f(to)h(ensure)e -(garbage)j(collection)236 2454 y(is)33 b(handled)g(correctly)-8 -b(.)53 b(This)32 b(means)i(calling)f('b)s(dd)p 2066 2454 -28 4 v 31 w(addref)7 b(')33 b(ev)m(ery)i(time)f(a)h(new)f(BDD)h(is)e -(created,)236 2567 y(and)d('b)s(dd)p 599 2567 V 31 w(delref)7 -b(')30 b(whenev)m(er)g(a)h(BDD)g(is)f(not)g(in)f(use)h(an)m(ymore.)236 -2842 y Fk(2.6)136 b(Dynamic)45 b(V)-11 b(ariable)45 b(Reordering)236 -3045 y Fn(Dynamic)31 b(v)-5 b(ariable)29 b(reordering)h(can)h(b)s(e)f -(done)h(using)e(the)i(functions)e Fm(bdd)p 2845 3045 -29 4 v 34 w(reorder\(int)44 b(method\))236 3158 y Fn(and)34 -b Fm(bdd)p 567 3158 V 34 w(autoreorder\(int)43 b(method\))p -Fn(.)52 b(Where)35 b(the)g(parameter)g Fm(method)p Fn(,)f(for)h -(instance)f(can)h(b)s(e)236 3271 y Fm(BDD)p 386 3271 -V 34 w(REORDER)p 756 3271 V 32 w(WIN2ITE)p Fn(.)40 b(The)i(pac)m(k)-5 -b(age)44 b(m)m(ust)e(kno)m(w)g(ho)m(w)g(the)g(BDD)h(v)-5 -b(ariables)41 b(are)h(related)g(to)236 3384 y(eac)m(h)30 -b(other,)g(so)f(the)f(user)h(m)m(ust)f(de\014ne)g(blo)s(c)m(ks)g(of)h -(BDD)h(v)-5 b(ariables,)28 b(using)f Fm(bdd)p 3036 3384 -V 34 w(addvarblock\(bdd)236 3497 y(var,)47 b(int)g(fixed\))p -Fn(.)65 b(A)39 b(blo)s(c)m(k)f(is)g(a)i(range)f(of)g(BDD)h(v)-5 -b(ariables)38 b(that)i(should)d(b)s(e)h(k)m(ept)i(together.)236 -3610 y(It)34 b(ma)m(y)g(either)f(b)s(e)g(a)h(simple)d(con)m(tiguous)j -(sequence)g(of)f(v)-5 b(ariables)32 b(or)i(a)g(sequence)g(of)f(other)h -(blo)s(c)m(ks)236 3723 y(with)g(ranges)h(inside)e(their)h(paren)m(ts)h -(range.)55 b(In)35 b(this)e(w)m(a)m(y)j(all)e(the)i(blo)s(c)m(ks)e -(form)h(a)g(tree)h(of)f(ranges.)236 3836 y(P)m(artially)29 -b(o)m(v)m(erlapping)h(blo)s(c)m(ks)g(are)h(not)f(allo)m(w)m(ed.)377 -3949 y(Example:)52 b(Assume)36 b(the)h(blo)s(c)m(k)f -Fj(v)1598 3963 y Fh(0)1652 3949 y Fj(:)15 b(:)g(:)i(v)1818 -3963 y Fh(9)1857 3949 y Fn(,)38 b(is)e(added)f(as)i(the)g(\014rst)e -(blo)s(c)m(k)h(and)g(then)g(the)h(blo)s(c)m(k)236 4062 -y Fj(v)280 4076 y Fh(1)335 4062 y Fj(:)15 b(:)g(:)h(v)500 -4076 y Fh(8)540 4062 y Fn(.)53 b(This)33 b(yields)g(the)h -Fj(v)1294 4076 y Fh(0)1349 4062 y Fj(:)15 b(:)g(:)h(v)1514 -4076 y Fh(9)1588 4062 y Fn(blo)s(c)m(k)35 b(at)g(the)g(top,)h(with)d -(the)i Fj(v)2717 4076 y Fh(1)2772 4062 y Fj(:)15 b(:)g(:)h(v)2937 -4076 y Fh(8)3011 4062 y Fn(blo)s(c)m(k)34 b(as)h(a)g(c)m(hild.)52 -b(If)236 4174 y(no)m(w)29 b(the)g(blo)s(c)m(k)g Fj(v)862 -4188 y Fh(1)916 4174 y Fj(:)15 b(:)g(:)h(v)1081 4188 -y Fh(4)1150 4174 y Fn(w)m(as)29 b(added,)g(it)f(w)m(ould)g(b)s(ecome)h -(a)g(c)m(hild)f(of)h(the)g Fj(v)2886 4188 y Fh(1)2940 -4174 y Fj(:)15 b(:)g(:)i(v)3106 4188 y Fh(8)3174 4174 -y Fn(blo)s(c)m(k,)29 b(similarly)236 4287 y(the)35 b(blo)s(c)m(k)f -Fj(v)685 4301 y Fh(5)739 4287 y Fj(:)15 b(:)g(:)i(v)905 -4301 y Fh(8)978 4287 y Fn(w)m(ould)33 b(b)s(e)h(a)h(c)m(hild)e(of)h -(the)h Fj(v)1991 4301 y Fh(1)2045 4287 y Fj(:)15 b(:)g(:)i(v)2211 -4301 y Fh(8)2284 4287 y Fn(blo)s(c)m(k.)53 b(If)34 b(w)m(e)g(add)g(the) -h(v)-5 b(ariables)33 b Fj(v)3571 4301 y Fh(1)3610 4287 -y Fn(,)j Fj(v)3715 4301 y Fh(2)3754 4287 y Fn(,)236 4400 -y Fj(v)280 4414 y Fh(3)349 4400 y Fn(and)29 b Fj(v)569 -4414 y Fh(4)639 4400 y Fn(as)h(single)e(v)-5 b(ariable)28 -b(blo)s(c)m(ks)h(w)m(e)i(at)f(last)g(get)h(tree)f(sho)m(w)m(ed)g(in)e -(\014gure)h(2.4.)42 b(If)29 b(all)g(v)-5 b(ariables)236 -4513 y(should)33 b(b)s(e)h(added)g(as)h(single)f(v)-5 -b(ariable)33 b(blo)s(c)m(ks)h(then)h Fm(bdd)p 2290 4513 -V 33 w(varblockall)d Fn(can)j(b)s(e)f(used)g(instead)g(of)236 -4626 y(doing)c(it)g(man)m(ually)-8 b(.)377 4739 y(The)33 -b(reordering)g(algorithm)f(is)h(then)g(to)h(\014rst)f(reorder)g(the)h -(top)g(most)f(blo)s(c)m(ks)g(and)g(there)h(after)236 -4852 y(descend)k(in)m(to)f(eac)m(h)i(blo)s(c)m(k)f(and)f(reorder)g -(these)i(recursiv)m(ely)d(-)i(unless)e(the)i(blo)s(c)m(k)g(is)e -(de\014ned)h(as)h(a)236 4965 y(\014xed)30 b(blo)s(c)m(k.)377 -5078 y(If)47 b(the)h(user)f(w)m(an)m(t)h(to)h(con)m(trol)f(the)f(sw)m -(apping)f(of)i(v)-5 b(ariables)46 b(himself,)k(then)d(the)h(functions) -236 5191 y Fm(bdd)p 386 5191 V 34 w(swapvar)42 b(bdd)p -942 5191 V 34 w(setvarorder)f Fn(ma)m(y)k(b)s(e)f(used.)83 -b(But)44 b(this)g(is)f(not)i(p)s(ossible)d(in)h(conjunction)236 -5304 y(with)34 b(the)h(use)g(of)g(v)-5 b(ariable)34 b(blo)s(c)m(ks)h -(and)f(the)i Fm(bdd)p 1999 5304 V 33 w(swapvar)d Fn(is)i(unfortunately) -e(quite)i(slo)m(w)g(since)f(a)236 5416 y(full)29 b(scan)i(of)g(all)f -(the)h(no)s(des)f(m)m(ust)h(b)s(e)f(done)h(b)s(oth)f(b)s(efore)g(and)h -(after)g(the)g(sw)m(ap.)42 b(Other)31 b(reordering)236 -5529 y(functions)i(are)j Fm(bdd)p 939 5529 V 33 w(autoreorder)p -1500 5529 V 31 w(times)p Fn(,)f Fm(bdd)p 1975 5529 V -34 w(reorder)p 2345 5529 V 32 w(verbose)p Fn(,)f Fm(bdd)p -2916 5529 V 34 w(sizeprobe)p 3382 5529 V 32 w(hook)f -Fn(and)236 5642 y Fm(bdd)p 386 5642 V 34 w(reorder)p -756 5642 V 32 w(hook)p Fn(.)1985 5989 y(5)p eop -%%Page: 6 14 -6 13 bop 236 127 a Fm(#include)46 b()236 352 y(main\(void\))236 -465 y({)379 578 y(bdd)h(x,y,z;)379 804 y(bdd_init\(1000,100\);)379 -917 y(bdd_setvarnum\(5\);)379 1143 y(x)h(=)f(bdd_ithvar\(0\);)379 -1256 y(y)h(=)f(bdd_ithvar\(1\);)379 1369 y(z)h(=)f(x)h(&)f(y;)379 -1594 y(cout)g(<<)g(bddtable)f(<<)h(z)g(<<)h(endl;)379 -1820 y(bdd_done\(\);)236 1933 y(})236 2229 y Fn(Figure)36 -b(2.2:)52 b(C++)35 b(in)m(terface)h(to)h(BuDDy)-8 b(.)58 -b(In)35 b(this)g(mo)s(de)g('b)s(dd')f(is)h(a)h(C++)f(class)h(that)g -(wraps)f(a)236 2342 y(handler)e(around)g(the)i(standard)f(C)g(in)m -(terface,)i(and)e(the)h('BDD')h(t)m(yp)s(e)f(referes)f(to)h(the)g -(standard)f(C)236 2454 y(BDD)e(t)m(yp)s(e.)43 b(The)30 -b(C++)g(in)m(terface)h(handles)f(all)f(garbage)k(collection,)d(so)i(no) -e(calls)g(to)i('b)s(dd)p 3471 2454 28 4 v 31 w(addref)7 -b(')236 2567 y(and)30 b('b)s(dd)p 599 2567 V 31 w(delref)7 -b(')30 b(are)g(needed.)236 2825 y Fk(2.7)136 b(Error)45 -b(Handling)236 3028 y Fn(If)33 b(an)g(error)g(o)s(ccurs)g(then)g(a)g(c) -m(hec)m(k)i(is)d(done)h(to)h(see)g(if)e(there)i(is)e(an)m(y)i(error)f -(handler)e(de\014ned)h(and)g(if)236 3141 y(so)37 b(it)f(is)f(called)g -(with)g(the)i(error)f(co)s(de)g(of)h(in)m(terest.)58 -b(The)36 b(default)g(error)f(handler)g(prin)m(ts)g(an)h(error)236 -3253 y(message)g(on)e Fm(stderr)e Fn(and)i(then)f(ab)s(orts)h(the)h -(program.)52 b(A)34 b(handler)e(can)j(also)f(b)s(e)f(de\014ned)g(b)m(y) -h(the)236 3366 y(user)c(with)f(a)i(call)e(to)j Fm(bdd)p -1140 3366 29 4 v 33 w(error)p 1413 3366 V 33 w(hook)p -Fn(.)236 3653 y Fk(2.8)136 b(The)44 b(C++)g(in)l(terface)236 -3856 y Fn(Mostly)35 b(this)e(consists)i(of)f(a)h(set)g(of)g(o)m(v)m -(erloaded)h(function)d(wrapp)s(ers)g(that)i(tak)m(es)h(a)f -Fm(bdd)f Fn(class)g(and)236 3969 y(calls)24 b(the)i(appropriate)e(C)g -(functions)g(with)g(the)h(ro)s(ot)g(n)m(um)m(b)s(er)f(stored)h(in)f -(the)h Fm(bdd)f Fn(class.)39 b(The)25 b(names)236 4082 -y(of)36 b(these)f(wrapp)s(ers)f(are)h(exactly)h(the)g(same)f(as)h(for)f -(the)g(C)g(functions.)54 b(In)34 b(addition)g(to)i(this)e(a)h(lot)236 -4194 y(of)k(the)g(C++)e(op)s(erators)i(lik)m(e)f Fm(|)p -Fn(&)g(-)g(=)h(==)f(are)g(o)m(v)m(erloaded)i(in)d(order)h(to)i(p)s -(erform)d(most)i(of)f(the)236 4307 y Fm(bdd)p 386 4307 -V 34 w(apply\(\))28 b Fn(op)s(erations.)40 b(These)30 -b(are)h(listed)e(together)j(with)d Fm(bdd)p 2630 4307 -V 33 w(apply)p Fn(.)40 b(The)30 b(rest)g(are)427 4508 -y Fo(Op)s(erator)111 b(Description)101 b(Return)35 b(v)-6 -b(alue)427 4621 y Fm(=)481 b Fn(assignmen)m(t)427 4733 -y Fm(==)433 b Fn(test)480 b(returns)29 b(1)i(if)e(t)m(w)m(o)j(BDDs)f -(are)g(equal,)f(otherwise)g(0)427 4846 y Fm(!=)433 b -Fn(test)480 b(returns)29 b(0)i(if)e(t)m(w)m(o)j(BDDs)f(are)g(equal,)f -(otherwise)g(1)427 4959 y Fm(bdd.id\(\))145 b Fn(iden)m(tit)m(y)320 -b(returns)29 b(the)i(ro)s(ot)f(n)m(um)m(b)s(er)f(of)i(the)g(BDD)236 -5215 y(The)i(default)f(constructor)h(for)g(the)g Fm(bdd)g -Fn(class)f(initializes)f(the)i(b)s(dds)e(to)i(the)h(constan)m(t)g -(false)f(v)-5 b(alue.)236 5328 y(Reference)32 b(coun)m(ting)e(is)g -(totally)g(automatic)i(when)d(the)i Fm(bdd)f Fn(class)g(is)g(used,)g -(here)g(the)h(constructors)236 5441 y(and)f(destructors)f(tak)m(es)j -(care)f(of)f Ff(al)5 b(l)30 b Fn(reference)h(coun)m(ting!)40 -b(The)30 b(C++)f(in)m(terface)h(is)f(also)h(de\014ned)f(in)236 -5554 y Fm(bdd.h)g Fn(so)i(nothing)e(extra)i(is)f(needed)g(to)h(use)f -(it.)1985 5989 y(6)p eop -%%Page: 7 15 -7 14 bop 236 127 a Fm(#include)46 b()236 352 y(main\(\))236 -465 y({)379 578 y(bdd)h(v1,)g(v3;)379 691 y(bdd)g(seta,)g(setb;)379 -804 y(static)f(int)h(v[2])g(=)g({1,3};)379 1030 y(bdd_init\(100,100\);) -379 1143 y(bdd_setvarnum\(5\);)379 1369 y(v1)h(=)f(bdd_ithvar\(1\);)379 -1481 y(v3)h(=)f(bdd_ithvar\(3\);)523 1707 y(/*)g(One)g(way)g(*/)379 -1820 y(seta)g(=)g(bdd_addref\()e(bdd_apply\(v1,v3,bddop_and)o(\))d(\);) -379 1933 y(bdd_printtable\(seta\);)523 2159 y(/*)47 b(Another)f(way)g -(*/)379 2272 y(setb)h(=)g(bdd_addref\()e(bdd_makeset\(v,2\))f(\);)379 -2385 y(bdd_printtable\(setb\);)236 2498 y(})1095 2793 -y Fn(Figure)30 b(2.3:)41 b(Tw)m(o)31 b(w)m(a)m(ys)g(to)g(create)h(a)f -(v)-5 b(ariable)29 b(set.)236 3062 y Fk(2.9)136 b(Finite)45 -b(Domain)h(Blo)t(c)l(ks)236 3265 y Fn(Included)20 b(in)h(the)i(BDD)g -(pac)m(k)-5 b(age)24 b(is)d(a)i(set)g(of)f(functions)f(for)h -(manipulating)d(v)-5 b(alues)22 b(of)g(\014nite)f(domains,)236 -3378 y(lik)m(e)27 b(for)f(example)h(\014nite)f(state)i(mac)m(hines.)39 -b(These)27 b(functions)f(are)h(used)f(to)i(allo)s(cate)g(blo)s(c)m(ks)e -(of)h(BDD)236 3491 y(v)-5 b(ariables)29 b(to)i(represen)m(t)g(in)m -(teger)g(v)-5 b(alues)29 b(instead)h(of)g(only)g(true)g(and)g(false.) -377 3604 y(New)j(\014nite)f(domain)f(blo)s(c)m(ks)i(are)g(allo)s(cated) -f(using)g Fm(fdd)p 2356 3604 29 4 v 33 w(extdomain)e -Fn(and)i(BDDs)i(represen)m(ting)236 3717 y(in)m(teger)k(v)-5 -b(alues)37 b(can)g(b)s(e)g(build)d(using)i Fm(fdd)p 1760 -3717 V 34 w(ithvar)p Fn(.)60 b(The)37 b(BDD)h(represen)m(ting)f(iden)m -(tit)m(y)g(b)s(et)m(w)m(een)236 3830 y(t)m(w)m(o)i(sets)f(of)f -(di\013eren)m(t)g(domains)f(can)h(b)s(e)g(build)d(using)i -Fm(fdd)p 2380 3830 V 34 w(equals)p Fn(.)60 b(BDDs)38 -b(represen)m(ting)f(\014nite)236 3943 y(domain)h(sets)h(can)f(b)s(e)g -(prin)m(ted)f(using)g Fm(fdd)p 1780 3943 V 34 w(printset)f -Fn(and)i(the)h(o)m(v)m(erloaded)g(C++)f(op)s(erator)h -Fm(<<)p Fn(.)236 4056 y(P)m(airs)g(for)h Fm(bdd)p 776 -4056 V 33 w(replace)e Fn(can)i(b)s(e)e(made)i(using)e -Fm(fdd)p 2134 4056 V 34 w(setpair)f Fn(and)i(v)-5 b(ariable)39 -b(sets)h(can)f(b)s(e)g(made)236 4169 y(using)27 b Fm(fdd)p -622 4169 V 34 w(ithset)f Fn(and)i Fm(fdd)p 1289 4169 -V 34 w(makeset)p Fn(.)38 b(The)28 b(\014nite)f(domain)g(blo)s(c)m(k)h -(in)m(terface)h(is)f(de\014ned)f(for)h(b)s(oth)236 4282 -y(C)i(and)g(C++.)40 b(T)-8 b(o)31 b(use)f(this)f(in)m(terface)i(y)m(ou) -g(m)m(ust)f(include)e Fm("fdd.h")p Fn(.)377 4394 y(Enco)s(ding)37 -b(using)g(FDDs)i(are)g(done)f(with)f(the)i(Least)g(Signi\014can)m(t)e -(Bits)h(\014rst)f(in)g(the)i(ordering)236 4507 y(\(top)29 -b(of)g(the)g(BDD\).)h(Assume)e(v)-5 b(ariables)27 b Fj(V)1743 -4521 y Fh(0)1798 4507 y Fj(:)15 b(:)g(:)h(V)1972 4521 -y Fh(3)2040 4507 y Fn(are)29 b(used)f(to)h(enco)s(de)f(the)h(v)-5 -b(alue)28 b(12)i(-)e(this)g(w)m(ould)236 4620 y(yield)h -Fj(V)509 4634 y Fh(0)574 4620 y Fn(=)c(0)p Fj(;)15 b(V)808 -4634 y Fh(1)873 4620 y Fn(=)25 b(0)p Fj(;)15 b(V)1107 -4634 y Fh(2)1173 4620 y Fn(=)25 b(1)p Fj(;)15 b(V)1407 -4634 y Fh(3)1472 4620 y Fn(=)25 b(1.)377 4733 y(An)j(example)f(program) -h(using)e(the)i(FDD)h(in)m(terface)g(can)f(b)s(e)f(found)f(in)h(the)h -(examples)f(directory)-8 b(.)236 5018 y Fk(2.10)136 b(Bo)t(olean)45 -b(V)-11 b(ectors)236 5221 y Fn(Another)28 b(in)m(terface)h(la)m(y)m(er) -f(for)g(BuDDy)g(implemen)m(ts)f(b)s(o)s(olean)g(v)m(ectors)i(for)f(use) -f(with)g(in)m(teger)h(arith-)236 5334 y(metics.)65 b(A)39 -b(b)s(o)s(olean)e(v)m(ector)j(is)e(simply)e(an)i(arra)m(y)h(of)g(BDDs)g -(where)f(eac)m(h)i(BDD)g(represen)m(ts)e(one)236 5447 -y(bit)d(of)g(an)h(expression.)55 b(T)-8 b(o)36 b(use)f(this)f(in)m -(terface)i(y)m(ou)g(m)m(ust)g(include)d Fm("bvec.h")p -Fn(.)54 b(As)35 b(an)h(example,)236 5560 y(supp)s(ose)29 -b(w)m(e)i(w)m(an)m(t)g(to)g(express)f(the)h(follo)m(wing)e(assignmen)m -(t)h(from)g(an)g(expression)463 5740 y Fj(x)c Fn(:=)f -Fj(y)e Fn(+)d(10)1985 5989 y(7)p eop -%%Page: 8 16 -8 15 bop 1465 1068 a @beginspecial 0 @llx 0 @lly 177 -@urx 120 @ury 1770 @rwi @setspecial -%%BeginDocument: varblock.pstex -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: varblock.pstex -%%Creator: fig2dev Version 3.2 Patchlevel 1 -%%CreationDate: Tue Feb 29 15:36:52 2000 -%%For: jln@joshua.itu.dk (Jorn Lind-Nielsen) -%%Orientation: Portrait -%%BoundingBox: 0 0 177 120 -%%Pages: 0 -%%BeginSetup -%%EndSetup -%%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save --108.0 153.0 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def -%%EndProlog - -$F2psBegin -10 setmiterlimit -n -1000 3550 m -1000 -1000 l 5740 -1000 l 5740 3550 l cp clip - 0.06000 0.06000 sc -% Polyline -7.500 slw -gs clippath -3255 1110 m 3225 1200 l 3195 1110 l 3195 1215 l 3255 1215 l cp -clip -n 3225 825 m 3225 1200 l gs col0 s gr gr - -% arrowhead -n 3255 1110 m 3225 1200 l 3195 1110 l 3225 1110 l 3255 1110 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2643 1783 m 2550 1800 l 2614 1730 l 2522 1781 l 2551 1834 l cp -clip -n 3225 1425 m 2550 1800 l gs col0 s gr gr - -% arrowhead -n 2643 1783 m 2550 1800 l 2614 1730 l 2629 1756 l 2643 1783 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3836 1730 m 3900 1800 l 3807 1783 l 3899 1834 l 3928 1781 l cp -clip -n 3225 1425 m 3900 1800 l gs col0 s gr gr - -% arrowhead -n 3836 1730 m 3900 1800 l 3807 1783 l 3821 1756 l 3836 1730 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2397 2338 m 2325 2400 l 2346 2307 l 2292 2397 l 2343 2428 l cp -clip -n 2550 2025 m 2325 2400 l gs col0 s gr gr - -% arrowhead -n 2397 2338 m 2325 2400 l 2346 2307 l 2371 2323 l 2397 2338 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2746 2314 m 2764 2407 l 2694 2343 l 2745 2435 l 2798 2405 l cp -clip -n 2550 2025 m 2764 2407 l gs col0 s gr gr - -% arrowhead -n 2746 2314 m 2764 2407 l 2694 2343 l 2720 2328 l 2746 2314 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3090 2327 m 3150 2400 l 3058 2378 l 3147 2433 l 3179 2383 l cp -clip -n 2550 2025 m 3150 2400 l gs col0 s gr gr - -% arrowhead -n 3090 2327 m 3150 2400 l 3058 2378 l 3074 2352 l 3090 2327 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2042 2378 m 1950 2400 l 2010 2327 l 1921 2383 l 1953 2433 l cp -clip -n 2550 2025 m 1950 2400 l gs col0 s gr gr - -% arrowhead -n 2042 2378 m 1950 2400 l 2010 2327 l 2026 2352 l 2042 2378 l cp gs 0.00 setgray ef gr col0 s -$F2psEnd -rs - -%%EndDocument - @endspecial 1690 768 a Fd(v)1737 783 y Fh(1)1793 768 -y Fd(:)17 b(:)g(:)f(v)1971 783 y Fh(4)1990 468 y Fd(v)2037 -483 y Fh(1)2093 468 y Fd(:)h(:)g(:)f(v)2271 483 y Fh(8)1990 -168 y Fd(v)2037 183 y Fh(0)2093 168 y Fd(:)h(:)g(:)f(v)2271 -183 y Fh(9)1690 1068 y Fd(v)1737 1083 y Fh(2)1915 1068 -y Fd(v)1962 1083 y Fh(3)2140 1068 y Fd(v)2187 1083 y -Fh(4)2327 768 y Fd(v)2374 783 y Fh(5)2430 768 y Fd(:)h(:)g(:)g(v)2609 -783 y Fh(8)1465 1068 y Fd(v)1512 1083 y Fh(1)236 1264 -y Fn(Figure)33 b(2.4:)49 b(The)33 b(v)-5 b(ariable)33 -b(tree)h(for)g(the)g(v)-5 b(ariable)32 b(blo)s(c)m(ks)h -Fj(v)2405 1278 y Fh(0)2460 1264 y Fj(:)15 b(:)g(:)h(v)2625 -1278 y Fh(9)2665 1264 y Fn(,)35 b Fj(v)2769 1278 y Fh(1)2823 -1264 y Fj(:)15 b(:)g(:)h(v)2988 1278 y Fh(8)3028 1264 -y Fn(,)35 b Fj(v)3132 1278 y Fh(1)3186 1264 y Fj(:)15 -b(:)g(:)i(v)3352 1278 y Fh(4)3391 1264 y Fn(,)35 b Fj(v)3495 -1278 y Fh(5)3550 1264 y Fj(:)15 b(:)g(:)h(v)3715 1278 -y Fh(8)3754 1264 y Fn(,)236 1377 y Fj(v)280 1391 y Fh(1)320 -1377 y Fn(,)30 b Fj(v)419 1391 y Fh(2)459 1377 y Fn(,)g -Fj(v)558 1391 y Fh(3)628 1377 y Fn(and)g Fj(v)849 1391 -y Fh(4)888 1377 y Fn(.)236 1752 y(what)j(w)m(e)g(do)g(is)e(to)j(enco)s -(de)f(the)g(v)-5 b(ariable)31 b Fj(y)36 b Fn(and)c(the)h(v)-5 -b(alue)32 b(10)i(as)f(b)s(o)s(olean)e(v)m(ectors)k Fj(y)g -Fn(and)d Fj(v)k Fn(of)d(a)236 1865 y(\014xed)d(length.)40 -b(Assume)30 b(w)m(e)h(use)f(four)f(bits)h(with)f(LSB)h(to)h(the)g(righ) -m(t,)f(then)g(w)m(e)h(get)463 2053 y Fj(y)e Fn(=)c Fc(h)p -Fj(y)713 2067 y Fh(4)752 2053 y Fj(;)15 b(:)g(:)g(:)i(;)e(y)999 -2067 y Fh(1)1038 2053 y Fc(i)463 2265 y Fj(v)29 b Fn(=)c -Fc(h)p Fn(1)p Fj(;)15 b Fn(0)p Fj(;)g Fn(1)p Fj(;)g Fn(0)p -Fc(i)236 2478 y Fn(where)32 b(eac)m(h)h Fj(y)752 2492 -y Fi(i)812 2478 y Fn(is)e(the)i(BDD)g(v)-5 b(ariable)31 -b(used)g(to)i(enco)s(de)g(the)f(in)m(teger)g(v)-5 b(ariable)31 -b Fj(y)s Fn(.)46 b(No)m(w)33 b(the)g(result)236 2591 -y(of)e(the)f(addition)f(can)i(b)s(e)e(expressed)h(as)h(the)f(v)m(ector) -i Fj(z)e Fn(=)25 b Fc(h)p Fj(z)2339 2605 y Fh(4)2379 -2591 y Fj(;)15 b(:)g(:)g(:)h(;)f(z)2622 2605 y Fh(1)2663 -2591 y Fc(i)30 b Fn(where)g(eac)m(h)i Fj(z)3238 2605 -y Fi(i)3296 2591 y Fn(is:)463 2778 y Fj(z)505 2792 y -Fi(i)559 2778 y Fn(=)25 b Fj(y)700 2792 y Fi(i)758 2778 -y Fn(xor)31 b Fj(v)962 2792 y Fi(i)1020 2778 y Fn(xor)f -Fj(c)1218 2792 y Fi(i)p Fg(\000)p Fh(1)236 2966 y Fn(and)g(the)h(carry) -f(in)f Fj(c)950 2980 y Fi(i)1009 2966 y Fn(is)463 3153 -y Fj(c)502 3167 y Fi(i)556 3153 y Fn(=)c(\()p Fj(y)732 -3167 y Fi(i)791 3153 y Fn(and)k Fj(v)1011 3167 y Fi(i)1040 -3153 y Fn(\))h(or)h(\()p Fj(c)1291 3167 y Fi(i)p Fg(\000)p -Fh(1)1440 3153 y Fn(and)f(\()p Fj(y)1697 3167 y Fi(i)1755 -3153 y Fn(or)h Fj(v)1911 3167 y Fi(i)1939 3153 y Fn(\)\))p -Fj(:)236 3341 y Fn(with)37 b Fj(c)490 3355 y Fh(0)569 -3341 y Fn(=)h(0.)65 b(What)39 b(is)f(left)g(no)m(w)g(is)g(to)h(assign)f -(the)g(result)g(to)h Fj(x)p Fn(.)65 b(This)37 b(is)g(a)i(conjunction)e -(of)i(a)236 3454 y(biimplication)27 b(of)j(eac)m(h)i(elemen)m(t)f(in)e -(the)h(v)m(ectors,)i(so)f(the)g(result)e(is)463 3712 -y Fj(R)d Fn(=)694 3606 y Fh(4)665 3631 y Fb(^)654 3813 -y Fi(i)p Fh(=1)784 3712 y Fj(x)836 3726 y Fi(i)889 3712 -y Fc(,)f Fj(z)1047 3726 y Fi(i)1076 3712 y Fj(:)236 3967 -y Fn(The)37 b(ab)s(o)m(v)m(e)h(example)f(could)f(b)s(e)g(carried)h(out) -g(with)f(the)h(follo)m(wing)f(C++)g(program)h(that)g(utilizes)236 -4080 y(the)31 b(FDD)g(in)m(terface)g(for)f(prin)m(ting)f(the)h(result.) -236 4268 y Fm(#include)46 b("bvec.h")236 4494 y(main\(\))236 -4607 y({)379 4720 y(int)h(domain[2])f(=)h({16,16};)379 -4945 y(bdd_init\(100,100\);)379 5058 y(fdd_extdomain\(domain,)42 -b(2\);)379 5284 y(bvec)47 b(y)g(=)h(bvec_varfdd\(0\);)379 -5397 y(bvec)f(v)g(=)h(bvec_con\(4,)d(10\);)379 5510 y(bvec)i(z)g(=)h -(bvec_add\(y,)d(v\);)379 5736 y(bvec)i(x)g(=)h(bvec_varfdd\(1\);)1985 -5989 y Fn(8)p eop -%%Page: 9 17 -9 16 bop 379 162 a Fm(bdd)95 b(result)46 b(=)i(bddtrue;)379 -388 y(for)f(\(int)g(n=0)g(;)g(n;)g Fc(\024)p Fj(;)g Fc(\025)p Fj(;)g Fn(=)p -Fj(;)g Fc(6)p Fn(=)27 b(can)g(also)g(b)s(e)f(enco)s(ded.)40 -b(Assume)26 b(w)m(e)h(w)m(an)m(t)h(to)f(enco)s(de)236 -1140 y Fj(x)e Fc(\024)g Fj(y)34 b Fn(using)28 b(the)j(same)g(v)-5 -b(ariables)29 b(as)h(in)f(the)i(ab)s(o)m(v)m(e)h(example.)40 -b(This)29 b(w)m(ould)g(b)s(e)g(done)i(as:)236 1328 y -Fm(#include)46 b("bvec.h")236 1554 y(main\(\))236 1667 -y({)379 1780 y(int)h(domain[2])f(=)h({16,16};)379 2005 -y(bdd_init\(100,100\);)379 2118 y(fdd_extdomain\(domain,)42 -b(2\);)379 2344 y(bvec)47 b(y)g(=)h(bvec_varfdd\(1\);)379 -2457 y(bvec)f(x)g(=)h(bvec_varfdd\(0\);)379 2683 y(bdd)95 -b(result)46 b(=)i(bvec_lte\(x,y\);)379 2909 y(cout)f(<<)g(fddset)f(<<)h -(result)g(<<)g(endl)f(<<)i(endl;)236 3022 y(})236 3209 -y Fn(Please)42 b(note)g(that)g(all)e(v)m(ectors)i(that)g(are)g -(returned)e(from)h(an)m(y)h(of)f(the)h Fm(bvec)p 3044 -3209 29 4 v 33 w(xxx)e Fn(functions)g(are)236 3322 y(referenced)31 -b(coun)m(ted)f(b)m(y)h(the)f(system.)236 3566 y Fe(2.10.1)113 -b(C++)37 b(In)m(terface)236 3737 y Fn(The)30 b(C++)f(in)m(terface)i -(de\014nes)f(the)g(class)236 3925 y Fm(class)47 b(bvec)236 -4038 y({)284 4151 y(public:)379 4376 y(bvec\(void\);)379 -4489 y(bvec\(int)f(bitnum\);)379 4602 y(bvec\(int)g(bitnum,)g(int)h -(val\);)379 4715 y(bvec\(const)e(bvec)i(&v\);)379 4828 -y(~bvec\(void\);)379 5054 y(void)g(set\(int)f(i,)h(const)f(bdd)h(&b\);) -379 5167 y(bdd)g(operator[]\(int)d(i\))95 b(const;)379 -5280 y(int)47 b(bitnum\(void\))e(const;)379 5393 y(int)i(empty\(void\)) -e(const;)379 5506 y(bvec)i(operator=\(const)d(bvec)i(&src\);)236 -5618 y(})1985 5989 y Fn(9)p eop -%%Page: 10 18 -10 17 bop 236 162 a Fn(The)29 b(default)f(constructor)h(mak)m(es)g(an)g -(empt)m(y)g(v)m(ector)i(with)c(no)i(elemen)m(ts,)h(the)f(in)m(teger)g -(constructor)236 275 y(creates)34 b(a)e(v)m(ector)i(with)d -Fm(bitnum)f Fn(elemen)m(ts)j(\(all)e(set)i(to)g(false\))f(and)g(the)g -(third)e(constructor)j(creates)236 388 y(a)d(v)m(ector)i(with)d -Fm(bitnum)f Fn(elemen)m(ts)i(and)f(assigns)g(the)h(in)m(teger)h(v)-5 -b(alue)29 b Fm(val)g Fn(to)h(the)h(v)m(ector.)42 b(Reference)236 -501 y(coun)m(ting)33 b(is)g(done)g(automatically)-8 b(.)49 -b(The)33 b(i'th)f(elemen)m(t)i(in)e(the)i(v)m(ector)g(can)g(b)s(e)f(c)m -(hanged)g(with)f Fm(set)236 614 y Fn(and)24 b(read)g(with)f -Fm(operator[])p Fn(.)36 b(The)24 b(n)m(um)m(b)s(er)f(of)h(bits)f(can)i -(b)s(e)e(found)g(with)g Fm(bitnum)g Fn(and)h(the)g(metho)s(d)236 -727 y Fm(empty)29 b Fn(returns)g(true)h(if)g(the)g(v)m(ector)i(is)e(a)h -(NULL)f(v)m(ector.)1962 5989 y(10)p eop -%%Page: 11 19 -11 18 bop 236 785 a Fl(Chapter)65 b(3)236 1200 y Fp(E\016ciency)77 -b(Concerns)236 1645 y Fn(Getting)29 b(the)g(most)g(out)f(of)h(an)m(y)g -(BDD)g(pac)m(k)-5 b(age)31 b(is)c(not)i(alw)m(a)m(ys)g(easy)-8 -b(.)41 b(It)29 b(requires)e(some)h(kno)m(wledge)236 1758 -y(ab)s(out)c(the)g(optimal)g(order)f(of)i(the)f(BDD)h(v)-5 -b(ariables)23 b(and)h(it)f(also)h(helps)f(if)g(y)m(ou)i(ha)m(v)m(e)g -(some)f(kno)m(wledge)236 1871 y(of)31 b(the)f(in)m(ternals)f(of)i(the)f -(pac)m(k)-5 b(age.)377 1984 y(First)31 b(of)g(all)g(|)g(a)g(go)s(o)s(d) -h(initial)c(v)-5 b(ariable)30 b(order)h(is)f(a)i(m)m(ust.)44 -b(Using)30 b(the)i(automatic)g(reordering)236 2097 y(metho)s(ds)c(ma)m -(y)h(b)s(e)f(an)g(easy)h(solution,)f(but)f(without)h(a)h(go)s(o)s(d)f -(initial)e(order)h(it)h(ma)m(y)h(also)g(b)s(e)f(a)g(w)m(aste)236 -2210 y(of)j(time.)377 2323 y(Second)c(|)f(memory)h(is)e(sp)s(eed.)39 -b(If)26 b(y)m(ou)h(allo)s(cate)g(as)g(m)m(uc)m(h)g(memory)f(as)h(p)s -(ossible)d(from)i(the)h(v)m(ery)236 2435 y(b)s(eginning,)i(then)i -(BuDDy)h(do)s(es)f(not)h(ha)m(v)m(e)g(to)g(w)m(aste)g(time)f(trying)g -(to)h(allo)s(cate)f(more)h(whenev)m(er)f(it)236 2548 -y(is)26 b(needed.)39 b(So)26 b(if)g(y)m(ou)h(really)f(w)m(an)m(t)h(sp)s -(eed)f(then)g Fm(bdd)p 2096 2548 29 4 v 34 w(init)f Fn(should)g(b)s(e)h -(called)f(with)h(as)h(man)m(y)f(no)s(des)236 2661 y(as)j(p)s(ossible.) -38 b(This)26 b(do)s(es)i(unfortunately)f(ha)m(v)m(e)j(the)f(side)e -(e\013ect)j(that)f(v)-5 b(ariable)27 b(reordering)g(b)s(ecomes)236 -2774 y(extremely)37 b(slo)m(w)e(since)h(it)g(has)g(to)h(reorder)e(an)i -(enormous)e(amoun)m(t)i(of)f(no)s(des)g(the)g(\014rst)g(time)g(it)f(is) -236 2887 y(triggered.)377 3000 y(Third)18 b(|)i(the)h(op)s(erator)f -(cac)m(hes)i(should)c(b)s(e)i(as)g(big)g(as)g(p)s(ossible.)35 -b(Use)21 b(the)f(function)f Fm(bdd)p 3427 3000 V 34 w(setcacheratio)236 -3113 y Fn(to)28 b(mak)m(e)f(sure)f(the)h(size)f(of)h(these)g(is)e -(increased)h(whenev)m(er)h(more)f(no)s(des)g(are)h(allo)s(cated.)39 -b Ff(Ple)-5 b(ase)30 b(note)236 3226 y(that)39 b(BuDDy)e(uses)g(a)h -(\014xe)-5 b(d)38 b(numb)-5 b(er)38 b(of)g(elements)g(for)g(these)g(c) --5 b(aches)39 b(as)f(default)p Fn(.)57 b(Y)-8 b(ou)37 -b(m)m(ust)e(call)236 3339 y Fm(bdd)p 386 3339 V 34 w(setcacheratio)c -Fn(to)36 b(c)m(hange)h(this.)54 b(I)35 b(ha)m(v)m(e)i(found)d(a)h(cac)m -(he)i(ratio)e(of)h(1:64)h(\014tting)d(for)h(BDDs)236 -3452 y(of)d(more)g(than)f(one)h(million)c(no)s(des)j(\(the)h(solitare)f -(example\).)44 b(This)30 b(ma)m(y)i(b)s(e)f(a)g(bit)g(o)m(v)m(erkill,)g -(but)g(it)236 3565 y(w)m(orks.)377 3677 y(F)-8 b(ourth)30 -b(|)g(BuDDy)g(allo)s(cates)g(b)m(y)f(default)g(a)h(maxim)m(um)f(of)g -(50000)j(no)s(des)d(\(1Mb)h(RAM\))h(ev)m(ery)236 3790 -y(time)j(it)g(resizes)g(the)g(no)s(de)g(table.)52 b(If)33 -b(y)m(our)h(problem)f(needs)h(millions)c(of)35 b(no)s(des,)f(then)g -(this)f(is)g(w)m(a)m(y)236 3903 y(to)s(o)k(small)e(a)i(n)m(um)m(b)s -(er.)57 b(Use)37 b Fm(bdd)p 1442 3903 V 33 w(setmaxincrease)c -Fn(to)k(increase)f(this)f(n)m(um)m(b)s(er.)58 b(In)35 -b(the)i(solitare)236 4016 y(example)30 b(something)g(lik)m(e)g(5000000) -j(no)s(des)d(seems)g(more)h(reasonable.)377 4129 y(Fifth)g(|)g(b)m(y)f -(default,)h(BuDDy)h(increases)f(the)g(no)s(de)f(table)h(whenev)m(er)g -(there)h(is)e(less)g(than)h(20\045)236 4242 y(no)s(des)25 -b(free.)40 b(By)26 b(increasing)e(this)h(v)-5 b(alue)26 -b(y)m(ou)g(can)g(mak)m(e)h(BuDDy)g(go)f(faster)h(and)e(use)h(more)g -(memory)236 4355 y(or)31 b(vice)f(v)m(ersa.)41 b(Y)-8 -b(ou)31 b(can)g(c)m(hange)g(the)g(v)-5 b(alue)30 b(with)f -Fm(bdd)p 2203 4355 V 33 w(setminfreenodes)p Fn(.)377 -4468 y(So,)f(to)f(sum)e(it)h(up:)38 b(if)25 b(y)m(ou)h(w)m(an)m(t)i(sp) -s(eed,)e(then)g(allo)s(cate)h(as)g(man)m(y)f(no)s(des)f(as)i(p)s -(ossible,)e(use)h(small)236 4581 y(cac)m(he)34 b(ratios)e(and)g(set)h -Fm(maxincrease)p Fn(.)43 b(If)32 b(y)m(ou)h(need)f(memory)-8 -b(,)33 b(then)f(allo)s(cate)h(a)g(small)d(n)m(um)m(b)s(er)h(of)236 -4694 y(no)s(des)i(from)h(the)g(b)s(eginning,)e(use)i(a)g(\014xed)g -(size)f(cac)m(he,)k(do)d(not)g(c)m(hange)h Fm(maxincrease)c -Fn(and)i(lo)m(w)m(er)236 4807 y Fm(minfreenodes)p Fn(.)1962 -5989 y(11)p eop -%%Page: 12 20 -12 19 bop 1962 5989 a Fn(12)p eop -%%Page: 13 21 -13 20 bop 236 785 a Fl(Chapter)65 b(4)236 1200 y Fp(Some)78 -b(Implemen)-6 b(tation)76 b(details)373 1645 y Fc(\017)45 -b Fn(Negated)33 b(p)s(oin)m(ters)c(are)i(not)f(used.)373 -1833 y Fc(\017)45 b Fn(All)27 b(no)s(des)f(are)i(stored)f(in)f(one)i -(big)f(con)m(tiguous)g(arra)m(y)h(whic)m(h)e(is)h(also)g(used)g(as)g -(the)h(hash)f(table)463 1946 y(for)k(\014nding)d(iden)m(tical)h(no)s -(des.)373 2133 y Fc(\017)45 b Fn(The)g(hash)f(function)g(used)g(to)h -(\014nd)f(iden)m(tical)f(no)s(des)h(from)h(the)g(triple)e(\()p -Fj(l)r(ev)s(el)r(;)15 b(l)r(ow)r(;)g(hig)s(h)p Fn(\))463 -2246 y(spreads)27 b(all)f(no)s(des)h(ev)m(enly)g(in)f(the)i(table.)39 -b(This)26 b(means)h(the)g(a)m(v)m(erage)j(length)d(of)h(a)f(hash)g(c)m -(hain)463 2359 y(is)j(at)h(most)g(1.)373 2547 y Fc(\017)45 -b Fn(Eac)m(h)37 b(no)s(de)e(in)f(the)i(no)s(de)f(table)g(con)m(tains)h -(a)g(reference)g(coun)m(t,)i(the)e Fm(level)e Fn(of)i(the)g(v)-5 -b(ariable)463 2660 y(\(this)37 b(is)f(its)g(p)s(osition)f(in)h(the)h -(curren)m(t)g(v)-5 b(ariable)36 b(order\),)j(the)e Fm(high)f -Fn(and)g Fm(low)g Fn(part,)j(a)f Fm(hash)463 2772 y Fn(index)31 -b(used)g(to)i(\014nd)d(the)j(\014rst)e(no)s(de)g(in)g(a)h(hash)g(c)m -(hain)f(and)h(a)g Fm(next)f Fn(index)f(used)i(to)g(link)e(the)463 -2885 y(hash)j(c)m(hains.)48 b(Eac)m(h)34 b(no)s(de)e(\014ts)h(in)m(to)g -(20)h(b)m(ytes)f(of)g(memory)-8 b(.)49 b(Other)33 b(pac)m(k)-5 -b(ages)35 b(uses)d(only)h(16)463 2998 y(b)m(ytes)28 b(for)e(eac)m(h)i -(no)s(de)e(but)h(in)e(addition)g(to)j(this)d(they)i(m)m(ust)g(k)m(eep)g -(separate)h(tables)f(with)e(hash)463 3111 y(table)36 -b(en)m(tries.)57 b(The)35 b(e\013ect)i(of)f(this)e(is)h(that)i(the)e -(total)i(memory)e(consumption)g(is)f(20)j(b)m(ytes)463 -3224 y(for)31 b(eac)m(h)g(no)s(de)f(on)g(a)m(v)m(erage.)373 -3412 y Fc(\017)45 b Fn(Reference)32 b(coun)m(ting)e(are)h(done)f(on)g -(the)h(externally)e(referenced)h(no)s(des)g(only)-8 b(.)373 -3599 y Fc(\017)45 b Fn(The)30 b(ANSI-C)h Fm(bdd)e Fn(t)m(yp)s(e)i(is)e -(an)i(in)m(teger)g(n)m(um)m(b)s(er)e(referring)g(to)i(an)g(index)e(in)g -(the)h(no)s(de)g(table.)463 3712 y(In)g(C++)g(it)f(is)h(a)h(class.)373 -3900 y Fc(\017)45 b Fn(New)25 b(no)s(des)f(are)i(created)f(b)m(y)g -(doubling)d(\(or)j(just)g(extending\))f(the)h(no)s(de)f(table,)i(not)f -(b)m(y)g(adding)463 4013 y(new)30 b(blo)s(c)m(ks)g(of)h(no)s(des.)373 -4200 y Fc(\017)45 b Fn(Garbage)35 b(collection)f(recursiv)m(ely)e -(marks)i(all)e(no)s(des)h(reac)m(hable)h(from)g(the)g(externally)e -(refer-)463 4313 y(enced)f(no)s(des)f(b)s(efore)g(dead)g(no)s(des)f -(are)i(remo)m(v)m(ed.)373 4501 y Fc(\017)45 b Fn(Reordering)30 -b(in)m(terrupts)f(the)h(curren)m(t)g(BDD)i(op)s(eration)e(and)g -(restarts)g(it)g(again)h(afterw)m(ards.)373 4689 y Fc(\017)45 -b Fn(Reordering)37 b(c)m(hanges)i(the)f(hash)f(function)f(to)i(one)g -(where)f(all)g(no)s(des)g(of)h(a)g(sp)s(eci\014c)e(lev)m(el)h(is)463 -4802 y(placed)d(in)e(one)i(con)m(tin)m(uous)f(blo)s(c)m(k)g(and)g(up)s -(dates)g(the)g(reference)h(coun)m(t)h(\014eld)d(to)i(include)e(all)463 -4914 y(recursiv)m(e)40 b(dep)s(endencies.)67 b(After)40 -b(reordering)e(the)i(pac)m(k)-5 b(age)42 b(returns)c(to)j(the)f(normal) -e(hash)463 5027 y(function.)1962 5989 y(13)p eop -%%Page: 14 22 -14 21 bop 1962 5989 a Fn(14)p eop -%%Page: 15 23 -15 22 bop 236 785 a Fl(Chapter)65 b(5)236 1200 y Fp(Reference)p -327 1544 3192 4 v 325 1657 4 113 v 412 1623 a Fo(Bo)s(olean)35 -b(v)m(ectors)p 3517 1657 V 327 1660 3192 4 v 325 1773 -4 113 v 377 1739 a Fm(bvec)p 1080 1773 V 562 w Fn(a)c(b)s(o)s(olean)f -(v)m(ector)p 3517 1773 V 327 1776 3192 4 v 325 1889 4 -113 v 377 1855 a Fm(bvec)p 575 1855 29 4 v 33 w(add)p -1080 1889 4 113 v 385 w Fn(builds)e(a)i(b)s(o)s(olean)g(v)m(ector)i -(for)e(addition)p 3517 1889 V 327 1892 3192 4 v 325 2005 -4 113 v 377 1971 a Fm(bvec)p 575 1971 29 4 v 33 w(addref)p -1080 2005 4 113 v 241 w Fn(increase)h(reference)f(coun)m(t)h(of)g(a)g -(b)s(o)s(olean)e(v)m(ector)p 3517 2005 V 327 2009 3192 -4 v 325 2122 4 113 v 377 2088 a Fm(bvec)p 575 2088 29 -4 v 33 w(coerce)p 1080 2122 4 113 v 241 w Fn(adjust)h(the)h(size)f(of)g -(a)h(b)s(o)s(olean)f(v)m(ector)p 3517 2122 V 327 2125 -3192 4 v 325 2238 4 113 v 377 2204 a Fm(bvec)p 575 2204 -29 4 v 33 w(con)p 1080 2238 4 113 v 385 w Fn(build)e(a)i(b)s(o)s(olean) -g(v)m(ector)i(represen)m(ting)d(an)i(in)m(teger)f(v)-5 -b(alue)p 3517 2238 V 327 2241 3192 4 v 325 2354 4 113 -v 377 2320 a Fm(bvec)p 575 2320 29 4 v 33 w(copy)p 1080 -2354 4 113 v 337 w Fn(create)32 b(a)f(cop)m(y)g(of)g(a)f(b)m(v)m(ec)p -3517 2354 V 327 2357 3192 4 v 325 2470 4 113 v 377 2436 -a Fm(bvec)p 575 2436 29 4 v 33 w(delref)p 1080 2470 4 -113 v 241 w Fn(decrease)i(the)e(reference)h(coun)m(t)g(of)g(a)f(b)s(o)s -(olean)g(v)m(ector)p 3517 2470 V 327 2474 3192 4 v 325 -2587 4 113 v 377 2553 a Fm(bvec)p 575 2553 29 4 v 33 -w(div)p 1080 2587 4 113 v 385 w Fn(builds)e(a)i(b)s(o)s(olean)g(v)m -(ector)i(for)e(division)p 3517 2587 V 327 2590 3192 4 -v 325 2703 4 113 v 377 2669 a Fm(bvec)p 575 2669 29 4 -v 33 w(divfixed)p 1080 2703 4 113 v 145 w Fn(builds)e(a)i(b)s(o)s -(olean)g(v)m(ector)i(for)e(division)d(b)m(y)j(a)h(constan)m(t)p -3517 2703 V 327 2706 3192 4 v 325 2819 4 113 v 377 2785 -a Fm(bvec)p 575 2785 29 4 v 33 w(equ)p 1080 2819 4 113 -v 385 w Fn(calculates)g(the)g(truth)e(v)-5 b(alue)30 -b(of)h Fj(x)25 b Fn(=)g Fj(y)p 3517 2819 V 327 2822 3192 -4 v 325 2935 4 113 v 377 2901 a Fm(bvec)p 575 2901 29 -4 v 33 w(false)p 1080 2935 4 113 v 289 w Fn(build)j(a)i(v)m(ector)i(of) -f(constan)m(t)h(false)e(BDDs)p 3517 2935 V 327 2939 3192 -4 v 325 3051 4 113 v 377 3018 a Fm(bvec)p 575 3018 29 -4 v 33 w(free)p 1080 3051 4 113 v 337 w Fn(frees)h(all)e(memory)h(used) -g(b)m(y)g(a)h(b)s(o)s(olean)e(v)m(ector)p 3517 3051 V -327 3055 3192 4 v 325 3168 4 113 v 377 3134 a Fm(bvec)p -575 3134 29 4 v 33 w(gte)p 1080 3168 4 113 v 385 w Fn(calculates)i(the) -g(truth)e(v)-5 b(alue)30 b(of)h Fj(x)25 b Fc(\025)g Fj(y)p -3517 3168 V 327 3171 3192 4 v 325 3284 4 113 v 377 3250 -a Fm(bvec)p 575 3250 29 4 v 33 w(gth)p 1080 3284 4 113 -v 385 w Fn(calculates)31 b(the)g(truth)e(v)-5 b(alue)30 -b(of)h Fj(x)25 b(>)g(y)p 3517 3284 V 327 3287 3192 4 -v 325 3400 4 113 v 377 3366 a Fm(bvec)p 575 3366 29 4 -v 33 w(isconst)p 1080 3400 4 113 v 193 w Fn(test)32 b(a)e(v)m(ector)i -(for)f(constan)m(t)g(true/false)g(BDDs)p 3517 3400 V -327 3403 3192 4 v 325 3516 4 113 v 377 3482 a Fm(bvec)p -575 3482 29 4 v 33 w(ite)p 1080 3516 4 113 v 385 w Fn(calculates)g(the) -g(if-then-else)e(op)s(erator)i(for)f(a)h(b)s(o)s(olean)e(v)m(ector)p -3517 3516 V 327 3520 3192 4 v 325 3633 4 113 v 377 3599 -a Fm(bvec)p 575 3599 29 4 v 33 w(lte)p 1080 3633 4 113 -v 385 w Fn(calculates)i(the)g(truth)e(v)-5 b(alue)30 -b(of)h Fj(x)25 b Fc(\024)g Fj(y)p 3517 3633 V 327 3636 -3192 4 v 325 3749 4 113 v 377 3715 a Fm(bvec)p 575 3715 -29 4 v 33 w(lth)p 1080 3749 4 113 v 385 w Fn(calculates)31 -b(the)g(truth)e(v)-5 b(alue)30 b(of)h Fj(x)25 b(<)g(y)p -3517 3749 V 327 3752 3192 4 v 325 3865 4 113 v 377 3831 -a Fm(bvec)p 575 3831 29 4 v 33 w(map1)p 1080 3865 4 113 -v 337 w Fn(map)30 b(a)h(function)e(on)m(to)j(a)f(b)s(o)s(olean)e(v)m -(ector)p 3517 3865 V 327 3868 3192 4 v 325 3981 4 113 -v 377 3947 a Fm(bvec)p 575 3947 29 4 v 33 w(map2)p 1080 -3981 4 113 v 337 w Fn(map)h(a)h(function)e(on)m(to)j(a)f(b)s(o)s(olean) -e(v)m(ector)p 3517 3981 V 327 3985 3192 4 v 325 4098 -4 113 v 377 4064 a Fm(bvec)p 575 4064 29 4 v 33 w(map3)p -1080 4098 4 113 v 337 w Fn(map)h(a)h(function)e(on)m(to)j(a)f(b)s(o)s -(olean)e(v)m(ector)p 3517 4098 V 327 4101 3192 4 v 325 -4214 4 113 v 377 4180 a Fm(bvec)p 575 4180 29 4 v 33 -w(mul)p 1080 4214 4 113 v 385 w Fn(builds)f(a)i(b)s(o)s(olean)g(v)m -(ector)i(for)e(m)m(ultiplication)p 3517 4214 V 327 4217 -3192 4 v 325 4330 4 113 v 377 4296 a Fm(bvec)p 575 4296 -29 4 v 33 w(mulfixed)p 1080 4330 4 113 v 145 w Fn(builds)e(a)i(b)s(o)s -(olean)g(v)m(ector)i(for)e(m)m(ultiplication)d(with)i(a)i(constan)m(t)p -3517 4330 V 327 4333 3192 4 v 325 4446 4 113 v 377 4412 -a Fm(bvec)p 575 4412 29 4 v 33 w(neq)p 1080 4446 4 113 -v 385 w Fn(calculates)g(the)g(truth)e(v)-5 b(alue)30 -b(of)h Fj(x)25 b Fc(6)p Fn(=)g Fj(y)p 3517 4446 V 327 -4450 3192 4 v 325 4562 4 113 v 377 4529 a Fm(bvec)p 575 -4529 29 4 v 33 w(shl)p 1080 4562 4 113 v 385 w Fn(shift)k(left)i(op)s -(eration)e(\(sym)m(b)s(olic\))p 3517 4562 V 327 4566 -3192 4 v 325 4679 4 113 v 377 4645 a Fm(bvec)p 575 4645 -29 4 v 33 w(shlfixed)p 1080 4679 4 113 v 145 w Fn(shift)g(left)i(op)s -(eration)e(\(\014xed)h(n)m(um)m(b)s(er)f(of)i(bits\))p -3517 4679 V 327 4682 3192 4 v 325 4795 4 113 v 377 4761 -a Fm(bvec)p 575 4761 29 4 v 33 w(shr)p 1080 4795 4 113 -v 385 w Fn(shift)e(righ)m(t)h(op)s(eration)g(\(sym)m(b)s(olic\))p -3517 4795 V 327 4798 3192 4 v 325 4911 4 113 v 377 4877 -a Fm(bvec)p 575 4877 29 4 v 33 w(shrfixed)p 1080 4911 -4 113 v 145 w Fn(shift)f(righ)m(t)h(op)s(eration)p 3517 -4911 V 327 4914 3192 4 v 325 5027 4 113 v 377 4993 a -Fm(bvec)p 575 4993 29 4 v 33 w(sub)p 1080 5027 4 113 -v 385 w Fn(builds)e(a)i(b)s(o)s(olean)g(v)m(ector)i(for)e(subtraction)p -3517 5027 V 327 5031 3192 4 v 325 5144 4 113 v 377 5110 -a Fm(bvec)p 575 5110 29 4 v 33 w(true)p 1080 5144 4 113 -v 337 w Fn(build)e(a)i(v)m(ector)i(of)f(constan)m(t)h(true)e(BDDs)p -3517 5144 V 327 5147 3192 4 v 325 5260 4 113 v 377 5226 -a Fm(bvec)p 575 5226 29 4 v 33 w(val)p 1080 5260 4 113 -v 385 w Fn(calculate)h(the)g(in)m(teger)f(v)-5 b(alue)30 -b(represen)m(ted)h(b)m(y)f(a)h(b)s(o)s(olean)e(v)m(ector)p -3517 5260 V 327 5263 3192 4 v 325 5376 4 113 v 377 5342 -a Fm(bvec)p 575 5342 29 4 v 33 w(var)p 1080 5376 4 113 -v 385 w Fn(build)f(a)i(b)s(o)s(olean)g(v)m(ector)i(with)d(BDD)i(v)-5 -b(ariables)p 3517 5376 V 327 5379 3192 4 v 1962 5989 -a(15)p eop -%%Page: 16 24 -16 23 bop 236 74 3482 4 v 234 187 4 113 v 286 153 a Fm(bvec)p -484 153 29 4 v 33 w(varfdd)p 1228 187 4 113 v 480 w Fn(build)27 -b(a)k(b)s(o)s(olean)f(v)m(ector)i(from)d(a)i(FDD)h(v)-5 -b(ariable)29 b(blo)s(c)m(k)p 3716 187 V 236 191 3482 -4 v 234 303 4 113 v 286 270 a Fm(bvec)p 484 270 29 4 -v 33 w(varvec)p 1228 303 4 113 v 480 w Fn(build)e(a)k(b)s(o)s(olean)f -(v)m(ector)i(with)d(the)h(v)-5 b(ariables)29 b(passed)h(in)f(an)h(arra) -m(y)p 3716 303 V 236 307 3482 4 v 234 420 4 113 v 321 -386 a Fo(Finite)k(domain)h(v)-6 b(ariable)34 b(blo)s(c)m(ks)p -3716 420 V 236 423 3482 4 v 234 536 4 113 v 286 502 a -Fm(fdd)p 436 502 29 4 v 34 w(clearall)p 1228 536 4 113 -v 431 w Fn(clear)d(all)e(allo)s(cated)h(FDD)i(blo)s(c)m(ks)p -3716 536 V 236 539 3482 4 v 234 652 4 113 v 286 618 a -Fm(fdd)p 436 618 29 4 v 34 w(domain)p 1228 652 4 113 -v 527 w Fn(bDD)f(enco)s(ding)e(of)i(the)f(domain)f(of)i(a)g(FDD)g(v)-5 -b(ariable)p 3716 652 V 236 655 3482 4 v 234 768 4 113 -v 286 734 a Fm(fdd)p 436 734 29 4 v 34 w(domainnum)p -1228 768 4 113 v 383 w Fn(n)m(um)m(b)s(er)29 b(of)i(de\014ned)e -(\014nite)g(domain)g(blo)s(c)m(ks)p 3716 768 V 236 772 -3482 4 v 234 885 4 113 v 286 851 a Fm(fdd)p 436 851 29 -4 v 34 w(domainsize)p 1228 885 4 113 v 335 w Fn(real)h(size)g(of)h(a)g -(\014nite)e(domain)g(blo)s(c)m(k)p 3716 885 V 236 888 -3482 4 v 234 1001 4 113 v 286 967 a Fm(fdd)p 436 967 -29 4 v 34 w(equals)p 1228 1001 4 113 v 527 w Fn(returns)g(a)i(BDD)h -(setting)e(t)m(w)m(o)i(FD.)f(blo)s(c)m(ks)f(equal)p 3716 -1001 V 236 1004 3482 4 v 234 1117 4 113 v 286 1083 a -Fm(fdd)p 436 1083 29 4 v 34 w(extdomain)p 1228 1117 4 -113 v 383 w Fn(adds)g(another)g(set)h(of)g(\014nite)e(domain)g(blo)s(c) -m(ks)p 3716 1117 V 236 1120 3482 4 v 234 1233 4 113 v -286 1199 a Fm(fdd)p 436 1199 29 4 v 34 w(file)p 662 1199 -V 33 w(hook)p 1228 1233 4 113 v 398 w Fn(sp)s(eci\014es)g(a)i(prin)m -(ting)d(callbac)m(k)j(handler)p 3716 1233 V 236 1237 -3482 4 v 234 1349 4 113 v 286 1316 a Fm(fdd)p 436 1316 -29 4 v 34 w(intaddvarblock)p 1228 1349 4 113 v 143 w -Fn(adds)f(a)g(new)g(v)-5 b(ariable)30 b(blo)s(c)m(k)f(for)i(reordering) -p 3716 1349 V 236 1353 3482 4 v 234 1466 4 113 v 286 -1432 a Fm(fdd)p 436 1432 29 4 v 34 w(ithset)p 1228 1466 -4 113 v 527 w Fn(the)g(v)-5 b(ariable)29 b(set)i(for)f(the)g(i'th)g -(\014nite)f(domain)h(blo)s(c)m(k)p 3716 1466 V 236 1469 -3482 4 v 234 1582 4 113 v 286 1548 a Fm(fdd)p 436 1548 -29 4 v 34 w(ithvar)p 1228 1582 4 113 v 527 w Fn(the)h(BDD)g(for)f(the)h -(i'th)f(FDD)h(set)g(to)g(a)g(sp)s(eci\014c)e(v)-5 b(alue)p -3716 1582 V 236 1585 3482 4 v 234 1698 4 113 v 286 1664 -a Fm(fdd)p 436 1664 29 4 v 34 w(makeset)p 1228 1698 4 -113 v 479 w Fn(creates)32 b(a)f(v)-5 b(ariable)29 b(set)i(for)f(N)g -(\014nite)g(domain)f(blo)s(c)m(ks)p 3716 1698 V 236 1702 -3482 4 v 234 1814 4 113 v 286 1781 a Fm(fdd)p 436 1781 -29 4 v 34 w(overlapdomain)p 1228 1814 4 113 v 191 w Fn(com)m(bine)h(t)m -(w)m(o)i(FDD)f(blo)s(c)m(ks)f(in)m(to)h(one)p 3716 1814 -V 236 1818 3482 4 v 234 1931 4 113 v 286 1897 a Fm(fdd)p -436 1897 29 4 v 34 w(printset)p 1228 1931 4 113 v 431 -w Fn(prin)m(ts)e(a)i(BDD)g(for)f(a)h(\014nite)f(domain)f(blo)s(c)m(k)p -3716 1931 V 234 2044 V 286 2010 a Fm(fdd)p 436 2010 29 -4 v 34 w(fprintset)p 1228 2044 4 113 v 3716 2044 V 236 -2047 3482 4 v 234 2160 4 113 v 286 2126 a(fdd)p 436 2126 -29 4 v 34 w(scanallvar)p 1228 2160 4 113 v 335 w Fn(\014nds)g(one)h -(satisfying)f(v)-5 b(alue)30 b(of)h(all)e(FDD)j(v)-5 -b(ariables)p 3716 2160 V 236 2163 3482 4 v 234 2276 4 -113 v 286 2242 a Fm(fdd)p 436 2242 29 4 v 34 w(scanset)p -1228 2276 4 113 v 479 w Fn(scans)30 b(a)h(v)-5 b(ariable)29 -b(set)p 3716 2276 V 236 2279 3482 4 v 234 2392 4 113 -v 286 2358 a Fm(fdd)p 436 2358 29 4 v 34 w(scanvar)p -1228 2392 4 113 v 479 w Fn(\014nds)g(one)h(satisfying)f(v)-5 -b(alue)30 b(of)h(a)g(FDD)g(v)-5 b(ariable)p 3716 2392 -V 236 2396 3482 4 v 234 2508 4 113 v 286 2475 a Fm(fdd)p -436 2475 29 4 v 34 w(setpair)p 1228 2508 4 113 v 479 -w Fn(de\014nes)30 b(a)g(pair)f(for)i(t)m(w)m(o)g(\014nite)f(domain)f -(blo)s(c)m(ks)p 3716 2508 V 236 2512 3482 4 v 234 2625 -4 113 v 286 2591 a Fm(fdd)p 436 2591 29 4 v 34 w(setpairs)p -1228 2625 4 113 v 431 w Fn(de\014nes)h(N)g(pairs)f(for)h(\014nite)g -(domain)f(blo)s(c)m(ks)p 3716 2625 V 236 2628 3482 4 -v 234 2741 4 113 v 286 2707 a Fm(fdd)p 436 2707 29 4 -v 34 w(strm)p 662 2707 V 33 w(hook)p 1228 2741 4 113 -v 398 w Fn(sp)s(eci\014es)g(a)i(prin)m(ting)d(callbac)m(k)j(handler)p -3716 2741 V 236 2744 3482 4 v 234 2857 4 113 v 286 2823 -a Fm(fdd)p 436 2823 29 4 v 34 w(varnum)p 1228 2857 4 -113 v 527 w Fn(binary)e(size)h(of)g(a)h(\014nite)f(domain)f(blo)s(c)m -(k)p 3716 2857 V 236 2860 3482 4 v 234 2973 4 113 v 286 -2940 a Fm(fdd)p 436 2940 29 4 v 34 w(vars)p 1228 2973 -4 113 v 623 w Fn(all)g(BDD)j(v)-5 b(ariables)29 b(asso)s(ciated)i(with) -e(a)i(\014nite)e(domain)g(blo)s(c)m(k)p 3716 2973 V 236 -2977 3482 4 v 234 3090 4 113 v 321 3056 a Fo(File)35 -b(input/output)p 3716 3090 V 236 3093 3482 4 v 234 3206 -4 113 v 286 3172 a Fm(bdd)p 436 3172 29 4 v 34 w(load)p -1228 3206 4 113 v 623 w Fn(loads)30 b(a)h(BDD)g(from)f(a)h(\014le)p -3716 3206 V 234 3319 V 286 3285 a Fm(bdd)p 436 3285 29 -4 v 34 w(fnload)p 1228 3319 4 113 v 3716 3319 V 236 3322 -3482 4 v 234 3435 4 113 v 286 3401 a(bdd)p 436 3401 29 -4 v 34 w(printall)p 1228 3435 4 113 v 431 w Fn(prin)m(ts)e(all)g(used)h -(en)m(tries)g(in)f(the)i(no)s(de)e(table)p 3716 3435 -V 234 3548 V 286 3514 a Fm(bdd)p 436 3514 29 4 v 34 w(fprintall)p -1228 3548 4 113 v 3716 3548 V 236 3551 3482 4 v 234 3664 -4 113 v 286 3630 a(bdd)p 436 3630 29 4 v 34 w(printdot)p -1228 3664 4 113 v 431 w Fn(prin)m(ts)g(a)i(description)d(of)j(a)f(BDD)i -(in)d(DOT)h(format)p 3716 3664 V 234 3777 V 286 3743 -a Fm(bdd)p 436 3743 29 4 v 34 w(fprintdot)p 1228 3777 -4 113 v 3716 3777 V 236 3780 3482 4 v 234 3893 4 113 -v 286 3859 a(bdd)p 436 3859 29 4 v 34 w(printset)p 1228 -3893 4 113 v 431 w Fn(prin)m(ts)f(the)i(set)f(of)h(truth)f(assignmen)m -(ts)g(sp)s(eci\014ed)e(b)m(y)j(a)f(BDD)p 3716 3893 V -234 4006 V 286 3972 a Fm(bdd)p 436 3972 29 4 v 34 w(fprintset)p -1228 4006 4 113 v 3716 4006 V 236 4010 3482 4 v 234 4122 -4 113 v 286 4089 a(bdd)p 436 4089 29 4 v 34 w(printtable)p -1228 4122 4 113 v 335 w Fn(prin)m(ts)f(the)i(no)s(de)e(table)h(en)m -(tries)h(used)e(b)m(y)i(a)f(BDD)p 3716 4122 V 234 4235 -V 286 4201 a Fm(bdd)p 436 4201 29 4 v 34 w(fprinttable)p -1228 4235 4 113 v 3716 4235 V 236 4239 3482 4 v 234 4352 -4 113 v 286 4318 a(bdd)p 436 4318 29 4 v 34 w(save)p -1228 4352 4 113 v 623 w Fn(sa)m(v)m(es)i(a)f(BDD)g(to)g(a)g(\014le)p -3716 4352 V 234 4464 V 286 4431 a Fm(bdd)p 436 4431 29 -4 v 34 w(fnsave)p 1228 4464 4 113 v 3716 4464 V 236 4468 -3482 4 v 234 4581 4 113 v 286 4547 a(operator<<)p 1228 -4581 V 513 w Fn(c++)f(output)g(op)s(erator)h(for)f(BDDs)p -3716 4581 V 236 4584 3482 4 v 234 4697 4 113 v 321 4663 -a Fo(Information)k(on)h(BDDs)p 3716 4697 V 236 4700 3482 -4 v 234 4813 4 113 v 286 4779 a Fm(bdd)p 436 4779 29 -4 v 34 w(anodecount)p 1228 4813 4 113 v 335 w Fn(coun)m(ts)c(the)g(n)m -(um)m(b)s(er)e(of)h(shared)g(no)s(des)f(in)g(an)i(arra)m(y)g(of)f(BDDs) -p 3716 4813 V 236 4816 3482 4 v 234 4929 4 113 v 286 -4896 a Fm(bdd)p 436 4896 29 4 v 34 w(high)p 1228 4929 -4 113 v 623 w Fn(gets)h(the)g(true)f(branc)m(h)g(of)h(a)f(b)s(dd)p -3716 4929 V 236 4933 3482 4 v 234 5046 4 113 v 286 5012 -a Fm(bdd)p 436 5012 29 4 v 34 w(low)p 1228 5046 4 113 -v 671 w Fn(gets)h(the)g(false)f(branc)m(h)g(of)g(a)h(b)s(dd)p -3716 5046 V 236 5049 3482 4 v 234 5162 4 113 v 286 5128 -a Fm(bdd)p 436 5128 29 4 v 34 w(nodecount)p 1228 5162 -4 113 v 383 w Fn(coun)m(ts)g(the)g(n)m(um)m(b)s(er)e(of)h(no)s(des)g -(used)f(for)h(a)h(BDD)p 3716 5162 V 236 5165 3482 4 v -234 5278 4 113 v 286 5244 a Fm(bdd)p 436 5244 29 4 v -34 w(pathcount)p 1228 5278 4 113 v 383 w Fn(coun)m(t)g(the)g(n)m(um)m -(b)s(er)e(of)h(paths)g(leading)f(to)i(the)g(true)f(terminal)p -3716 5278 V 236 5281 3482 4 v 1962 5989 a(16)p eop -%%Page: 17 25 -17 24 bop 236 74 3549 4 v 234 187 4 113 v 286 153 a Fm(bdd)p -436 153 29 4 v 34 w(satcount)p 1275 187 4 113 v 479 w -Fn(calculates)30 b(the)h(n)m(um)m(b)s(er)e(of)i(satisfying)e(v)-5 -b(ariable)29 b(assignmen)m(ts)p 3783 187 V 234 300 V -286 266 a Fm(bdd)p 436 266 29 4 v 34 w(setcountset)p -1275 300 4 113 v 3783 300 V 236 303 3549 4 v 234 416 -4 113 v 286 382 a(bdd)p 436 382 29 4 v 34 w(satcountln)p -1275 416 4 113 v 383 w Fn(calculates)h(the)h(log.)41 -b(n)m(um)m(b)s(er)29 b(of)h(satisfying)g(v)-5 b(ariable)29 -b(assignmen)m(ts)p 3783 416 V 234 529 V 286 495 a Fm(bdd)p -436 495 29 4 v 34 w(setcountlnset)p 1275 529 4 113 v -3783 529 V 236 533 3549 4 v 234 645 4 113 v 286 612 a(bdd)p -436 612 29 4 v 34 w(support)p 1275 645 4 113 v 527 w -Fn(returns)g(the)i(v)-5 b(ariable)29 b(supp)s(ort)f(of)j(a)g(BDD)p -3783 645 V 236 649 3549 4 v 234 762 4 113 v 286 728 a -Fm(bdd)p 436 728 29 4 v 34 w(var)p 1275 762 4 113 v 719 -w Fn(gets)g(the)g(v)-5 b(ariable)29 b(lab)s(eling)f(the)i(b)s(dd)p -3783 762 V 236 765 3549 4 v 234 878 4 113 v 286 844 a -Fm(bdd)p 436 844 29 4 v 34 w(varprofile)p 1275 878 4 -113 v 383 w Fn(returns)f(a)i(v)-5 b(ariable)29 b(pro\014le)p -3783 878 V 236 881 3549 4 v 234 994 4 113 v 321 960 a -Fo(Kernel)35 b(BDD)g(op)s(erations)g(and)g(data)f(structures)p -3783 994 V 236 997 3549 4 v 234 1110 4 113 v 286 1077 -a Fm(bddCacheStat)p 1275 1110 V 465 w Fn(status)d(information)d(ab)s -(out)i(cac)m(he)i(usage)p 3783 1110 V 236 1114 3549 4 -v 234 1227 4 113 v 286 1193 a Fm(bddGbcStat)p 1275 1227 -V 561 w Fn(status)f(information)d(ab)s(out)i(garbage)i(collections)p -3783 1227 V 236 1230 3549 4 v 234 1343 4 113 v 286 1309 -a Fm(bddStat)p 1275 1343 V 705 w Fn(status)f(information)d(ab)s(out)i -(the)h(b)s(dd)d(pac)m(k)-5 b(age)p 3783 1343 V 236 1346 -3549 4 v 234 1459 4 113 v 286 1425 a Fm(bdd)p 436 1425 -29 4 v 34 w(addref)p 1275 1459 4 113 v 575 w Fn(increases)30 -b(the)g(reference)h(coun)m(t)g(on)g(a)f(no)s(de)p 3783 -1459 V 236 1462 3549 4 v 234 1575 4 113 v 286 1541 a -Fm(bdd)p 436 1541 29 4 v 34 w(cachestats)p 1275 1575 -4 113 v 383 w Fn(fetc)m(h)h(cac)m(he)h(access)g(usage)p -3783 1575 V 236 1579 3549 4 v 234 1692 4 113 v 286 1658 -a Fm(bdd)p 436 1658 29 4 v 34 w(clear)p 710 1658 V 33 -w(error)p 1275 1692 4 113 v 350 w Fn(clears)e(an)g(error)g(condition)f -(in)g(the)i(k)m(ernel)p 3783 1692 V 236 1695 3549 4 v -234 1808 4 113 v 286 1774 a Fm(bdd)p 436 1774 29 4 v -34 w(delref)p 1275 1808 4 113 v 575 w Fn(decreases)g(the)g(reference)f -(coun)m(t)h(on)g(a)f(no)s(de)p 3783 1808 V 236 1811 3549 -4 v 234 1924 4 113 v 286 1890 a Fm(bdd)p 436 1890 29 -4 v 34 w(done)p 1275 1924 4 113 v 671 w Fn(resets)h(the)f(b)s(dd)f(pac) -m(k)-5 b(age)p 3783 1924 V 236 1927 3549 4 v 234 2040 -4 113 v 286 2006 a Fm(bdd)p 436 2006 29 4 v 34 w(error)p -710 2006 V 33 w(hook)p 1275 2040 4 113 v 398 w Fn(set)31 -b(a)g(handler)d(for)i(error)g(conditions)p 3783 2040 -V 236 2044 3549 4 v 234 2156 4 113 v 286 2123 a Fm(bdd)p -436 2123 29 4 v 34 w(errstring)p 1275 2156 4 113 v 431 -w Fn(con)m(v)m(erts)i(an)e(error)g(co)s(de)g(to)i(a)e(string)p -3783 2156 V 236 2160 3549 4 v 234 2273 4 113 v 286 2239 -a Fm(bdd)p 436 2239 29 4 v 34 w(extvarnum)p 1275 2273 -4 113 v 431 w Fn(add)g(extra)h(BDD)g(v)-5 b(ariables)p -3783 2273 V 236 2276 3549 4 v 234 2389 4 113 v 286 2355 -a Fm(bdd)p 436 2355 29 4 v 34 w(false)p 1275 2389 4 113 -v 623 w Fn(returns)29 b(the)i(constan)m(t)g(false)f(b)s(dd)p -3783 2389 V 236 2392 3549 4 v 234 2505 4 113 v 286 2471 -a Fm(bdd)p 436 2471 29 4 v 34 w(file)p 662 2471 V 33 -w(hook)p 1275 2505 4 113 v 446 w Fn(sp)s(eci\014es)f(a)i(prin)m(ting)d -(callbac)m(k)i(handler)p 3783 2505 V 236 2508 3549 4 -v 234 2621 4 113 v 286 2588 a Fm(bdd)p 436 2588 29 4 -v 34 w(freepair)p 1275 2621 4 113 v 479 w Fn(frees)g(a)h(table)f(of)h -(pairs)p 3783 2621 V 236 2625 3549 4 v 234 2738 4 113 -v 286 2704 a Fm(bdd)p 436 2704 29 4 v 34 w(gbc)p 614 -2704 V 33 w(hook)p 1275 2738 4 113 v 494 w Fn(set)g(a)g(handler)d(for)i -(garbage)i(collections)p 3783 2738 V 236 2741 3549 4 -v 234 2854 4 113 v 286 2820 a Fm(bdd)p 436 2820 29 4 -v 34 w(getallocnum)p 1275 2854 4 113 v 335 w Fn(get)f(the)g(n)m(um)m(b) -s(er)e(of)i(allo)s(cated)f(no)s(des)p 3783 2854 V 236 -2857 3549 4 v 234 2970 4 113 v 286 2936 a Fm(bdd)p 436 -2936 29 4 v 34 w(getnodenum)p 1275 2970 4 113 v 383 w -Fn(get)h(the)g(n)m(um)m(b)s(er)e(of)i(activ)m(e)g(no)s(des)f(in)f(use)p -3783 2970 V 236 2973 3549 4 v 234 3086 4 113 v 286 3052 -a Fm(bdd)p 436 3052 29 4 v 34 w(init)p 1275 3086 4 113 -v 671 w Fn(initializes)e(the)k(BDD)h(pac)m(k)-5 b(age)p -3783 3086 V 236 3090 3549 4 v 234 3203 4 113 v 286 3169 -a Fm(bdd)p 436 3169 29 4 v 34 w(isrunning)p 1275 3203 -4 113 v 431 w Fn(test)31 b(whether)f(the)g(pac)m(k)-5 -b(age)33 b(is)c(started)i(or)f(not)p 3783 3203 V 236 -3206 3549 4 v 234 3319 4 113 v 286 3285 a Fm(bdd)p 436 -3285 29 4 v 34 w(ithvar)p 1275 3319 4 113 v 575 w Fn(returns)f(a)i(b)s -(dd)d(represen)m(ting)i(the)g(I'th)h(v)-5 b(ariable)p -3783 3319 V 236 3322 3549 4 v 234 3435 4 113 v 286 3401 -a Fm(bdd)p 436 3401 29 4 v 34 w(makeset)p 1275 3435 4 -113 v 527 w Fn(builds)27 b(a)k(BDD)g(v)-5 b(ariable)30 -b(set)g(from)g(an)h(in)m(teger)f(arra)m(y)p 3783 3435 -V 236 3438 3549 4 v 234 3551 4 113 v 286 3517 a Fm(bdd)p -436 3517 29 4 v 34 w(newpair)p 1275 3551 4 113 v 527 -w Fn(creates)i(an)e(empt)m(y)h(v)-5 b(ariable)29 b(pair)g(table)p -3783 3551 V 236 3555 3549 4 v 234 3667 4 113 v 286 3634 -a Fm(bdd)p 436 3634 29 4 v 34 w(nithvar)p 1275 3667 4 -113 v 527 w Fn(returns)g(a)i(b)s(dd)d(represen)m(ting)i(the)g(negation) -h(of)g(the)f(I'th)g(v)-5 b(ariable)p 3783 3667 V 236 -3671 3549 4 v 234 3784 4 113 v 286 3750 a Fm(bdd)p 436 -3750 29 4 v 34 w(printstat)p 1275 3784 4 113 v 431 w -Fn(prin)m(t)29 b(cac)m(he)j(statistics)p 3783 3784 V -234 3897 V 286 3863 a Fm(bdd)p 436 3863 29 4 v 34 w(fprintstat)p -1275 3897 4 113 v 3783 3897 V 236 3900 3549 4 v 234 4013 -4 113 v 286 3979 a(bdd)p 436 3979 29 4 v 34 w(resetpair)p -1275 4013 4 113 v 431 w Fn(clear)e(all)g(v)-5 b(ariable)29 -b(pairs)p 3783 4013 V 236 4016 3549 4 v 234 4129 4 113 -v 286 4095 a Fm(bdd)p 436 4095 29 4 v 34 w(resize)p 758 -4095 V 32 w(hook)p 1275 4129 4 113 v 351 w Fn(set)i(a)g(handler)d(for)i -(no)s(detable)g(resizes)p 3783 4129 V 236 4132 3549 4 -v 234 4245 4 113 v 286 4211 a Fm(bdd)p 436 4211 29 4 -v 34 w(scanset)p 1275 4245 4 113 v 527 w Fn(returns)f(an)h(in)m(teger)h -(represen)m(tation)f(of)h(a)g(v)-5 b(ariable)29 b(set)p -3783 4245 V 236 4249 3549 4 v 234 4362 4 113 v 286 4328 -a Fm(bdd)p 436 4328 29 4 v 34 w(setcacheratio)p 1275 -4362 4 113 v 239 w Fn(sets)i(the)f(cac)m(he)i(ratio)f(for)f(the)g(op)s -(erator)h(cac)m(hes)p 3783 4362 V 236 4365 3549 4 v 234 -4478 4 113 v 286 4444 a Fm(bdd)p 436 4444 29 4 v 34 w(setmaxincrease)p -1275 4478 4 113 v 191 w Fn(set)g(max.)41 b(n)m(um)m(b)s(er)29 -b(of)h(no)s(des)g(used)f(to)i(increase)g(no)s(de)e(table)p -3783 4478 V 236 4481 3549 4 v 234 4594 4 113 v 286 4560 -a Fm(bdd)p 436 4560 29 4 v 34 w(setmaxnodenum)p 1275 -4594 4 113 v 239 w Fn(set)i(the)f(maxim)m(um)g(a)m(v)-5 -b(ailable)29 b(n)m(um)m(b)s(er)g(of)i(b)s(dd)d(no)s(des)p -3783 4594 V 236 4597 3549 4 v 234 4710 4 113 v 286 4676 -a Fm(bdd)p 436 4676 29 4 v 34 w(setminfreenodes)p 1275 -4710 4 113 v 143 w Fn(set)j(min.)39 b(no.)i(of)30 b(no)s(des)g(to)h(b)s -(e)e(reclaimed)h(after)h(GBC.)p 3783 4710 V 236 4714 -3549 4 v 234 4826 4 113 v 286 4793 a Fm(bdd)p 436 4793 -29 4 v 34 w(setpair)p 1275 4826 4 113 v 527 w Fn(set)g(one)f(v)-5 -b(ariable)30 b(pair)p 3783 4826 V 234 4939 V 286 4905 -a Fm(bdd)p 436 4905 29 4 v 34 w(setbddpair)p 1275 4939 -4 113 v 3783 4939 V 236 4943 3549 4 v 234 5056 4 113 -v 286 5022 a(bdd)p 436 5022 29 4 v 34 w(setpairs)p 1275 -5056 4 113 v 479 w Fn(de\014nes)f(a)i(whole)f(set)h(of)f(pairs)p -3783 5056 V 234 5169 V 286 5135 a Fm(bdd)p 436 5135 29 -4 v 34 w(setbddpairs)p 1275 5169 4 113 v 3783 5169 V -236 5172 3549 4 v 234 5285 4 113 v 286 5251 a(bdd)p 436 -5251 29 4 v 34 w(setvarnum)p 1275 5285 4 113 v 431 w -Fn(set)h(the)f(n)m(um)m(b)s(er)f(of)i(used)e(b)s(dd)g(v)-5 -b(ariables)p 3783 5285 V 236 5288 3549 4 v 1962 5989 -a(17)p eop -%%Page: 18 26 -18 25 bop 236 74 3435 4 v 234 187 4 113 v 286 153 a Fm(bdd)p -436 153 29 4 v 34 w(stats)p 1357 187 4 113 v 705 w Fn(returns)29 -b(some)i(status)g(information)d(ab)s(out)i(the)h(b)s(dd)d(pac)m(k)-5 -b(age)p 3669 187 V 236 191 3435 4 v 234 303 4 113 v 286 -270 a Fm(bdd)p 436 270 29 4 v 34 w(strm)p 662 270 V 33 -w(hook)p 1357 303 4 113 v 528 w Fn(sp)s(eci\014es)29 -b(a)i(prin)m(ting)d(callbac)m(k)i(handler)p 3669 303 -V 236 307 3435 4 v 234 420 4 113 v 286 386 a Fm(bdd)p -436 386 29 4 v 34 w(true)p 1357 420 4 113 v 753 w Fn(returns)f(the)i -(constan)m(t)g(true)f(b)s(dd)p 3669 420 V 236 423 3435 -4 v 234 536 4 113 v 286 502 a Fm(bdd)p 436 502 29 4 v -34 w(varnum)p 1357 536 4 113 v 657 w Fn(returns)f(the)i(n)m(um)m(b)s -(er)e(of)h(de\014ned)f(v)-5 b(ariables)p 3669 536 V 236 -539 3435 4 v 234 652 4 113 v 286 618 a Fm(bdd)p 436 618 -29 4 v 34 w(versionnum)p 1357 652 4 113 v 465 w Fn(returns)29 -b(the)i(v)m(ersion)e(n)m(um)m(b)s(er)h(of)g(the)h(b)s(dd)d(pac)m(k)-5 -b(age)p 3669 652 V 236 655 3435 4 v 234 768 4 113 v 286 -734 a Fm(bdd)p 436 734 29 4 v 34 w(versionstr)p 1357 -768 4 113 v 465 w Fn(returns)29 b(a)i(text)g(string)f(with)f(v)m -(ersion)g(information)p 3669 768 V 236 772 3435 4 v 234 -885 4 113 v 286 851 a Fm(bddfalse)p 1357 885 V 739 w -Fn(the)h(constan)m(t)i(false)e(b)s(dd)p 3669 885 V 236 -888 3435 4 v 234 1001 4 113 v 286 967 a Fm(bddtrue)p -1357 1001 V 787 w Fn(the)g(constan)m(t)i(true)e(b)s(dd)p -3669 1001 V 236 1004 3435 4 v 234 1117 4 113 v 321 1083 -a Fo(BDD)35 b(op)s(erators)p 3669 1117 V 236 1120 3435 -4 v 234 1233 4 113 v 286 1199 a Fm(bdd)p 436 1199 29 -4 v 34 w(allsat)p 1357 1233 4 113 v 657 w Fn(\014nds)29 -b(all)g(satisfying)g(v)-5 b(ariable)29 b(assignmen)m(ts)p -3669 1233 V 236 1237 3435 4 v 234 1349 4 113 v 286 1316 -a Fm(bdd)p 436 1316 29 4 v 34 w(and)p 1357 1349 4 113 -v 801 w Fn(the)h(logical)g('and')h(of)f(t)m(w)m(o)i(BDDs)p -3669 1349 V 236 1353 3435 4 v 234 1466 4 113 v 286 1432 -a Fm(bdd)p 436 1432 29 4 v 34 w(appall)p 1357 1466 4 -113 v 657 w Fn(apply)d(op)s(eration)h(and)g(univ)m(ersal)e(quan)m -(ti\014cation)p 3669 1466 V 236 1469 3435 4 v 234 1582 -4 113 v 286 1548 a Fm(bdd)p 436 1548 29 4 v 34 w(appex)p -1357 1582 4 113 v 705 w Fn(apply)h(op)s(eration)h(and)g(existen)m(tial) -f(quan)m(ti\014cation)p 3669 1582 V 236 1585 3435 4 v -234 1698 4 113 v 286 1664 a Fm(bdd)p 436 1664 29 4 v -34 w(apply)p 1357 1698 4 113 v 705 w Fn(basic)h(b)s(dd)e(op)s(erations) -p 3669 1698 V 236 1702 3435 4 v 234 1814 4 113 v 286 -1781 a Fm(bdd)p 436 1781 29 4 v 34 w(appuni)p 1357 1814 -4 113 v 657 w Fn(apply)h(op)s(eration)h(and)g(unique)e(quan)m -(ti\014cation)p 3669 1814 V 236 1818 3435 4 v 234 1931 -4 113 v 286 1897 a Fm(bdd)p 436 1897 29 4 v 34 w(biimp)p -1357 1931 4 113 v 705 w Fn(the)i(logical)g('bi-implication')e(b)s(et)m -(w)m(een)j(t)m(w)m(o)g(BDDs)p 3669 1931 V 236 1934 3435 -4 v 234 2047 4 113 v 286 2013 a Fm(bdd)p 436 2013 29 -4 v 34 w(buildcube)p 1357 2047 4 113 v 513 w Fn(build)c(a)k(cub)s(e)f -(from)g(an)g(arra)m(y)h(of)f(v)-5 b(ariables)p 3669 2047 -V 234 2160 V 286 2126 a Fm(bdd)p 436 2126 29 4 v 34 w(ibuildcube)p -1357 2160 4 113 v 3669 2160 V 236 2163 3435 4 v 234 2276 -4 113 v 286 2242 a(bdd)p 436 2242 29 4 v 34 w(compose)p -1357 2276 4 113 v 609 w Fn(functional)29 b(comp)s(osition)p -3669 2276 V 236 2279 3435 4 v 234 2392 4 113 v 286 2358 -a Fm(bdd)p 436 2358 29 4 v 34 w(constrain)p 1357 2392 -4 113 v 513 w Fn(generalized)h(cofactor)p 3669 2392 V -236 2396 3435 4 v 234 2508 4 113 v 286 2475 a Fm(bdd)p -436 2475 29 4 v 34 w(exist)p 1357 2508 4 113 v 705 w -Fn(existen)m(tial)g(quan)m(ti\014cation)g(of)g(v)-5 b(ariables)p -3669 2508 V 236 2512 3435 4 v 234 2625 4 113 v 286 2591 -a Fm(bdd)p 436 2591 29 4 v 34 w(forall)p 1357 2625 4 -113 v 657 w Fn(univ)m(ersal)29 b(quan)m(ti\014cation)g(of)i(v)-5 -b(ariables)p 3669 2625 V 236 2628 3435 4 v 234 2741 4 -113 v 286 2707 a Fm(bdd)p 436 2707 29 4 v 34 w(fullsatone)p -1357 2741 4 113 v 465 w Fn(\014nds)29 b(one)h(satisfying)f(v)-5 -b(ariable)29 b(assignmen)m(t)p 3669 2741 V 236 2744 3435 -4 v 234 2857 4 113 v 286 2823 a Fm(bdd)p 436 2823 29 -4 v 34 w(imp)p 1357 2857 4 113 v 801 w Fn(the)h(logical)g -('implication')f(b)s(et)m(w)m(een)i(t)m(w)m(o)g(BDDs)p -3669 2857 V 236 2860 3435 4 v 234 2973 4 113 v 286 2940 -a Fm(bdd)p 436 2940 29 4 v 34 w(ite)p 1357 2973 4 113 -v 801 w Fn(if-then-else)f(op)s(erator)p 3669 2973 V 236 -2977 3435 4 v 234 3090 4 113 v 286 3056 a Fm(bdd)p 436 -3056 29 4 v 34 w(not)p 1357 3090 4 113 v 801 w Fn(negates)i(a)e(b)s(dd) -p 3669 3090 V 236 3093 3435 4 v 234 3206 4 113 v 286 -3172 a Fm(bdd)p 436 3172 29 4 v 34 w(or)p 1357 3206 4 -113 v 849 w Fn(the)g(logical)g('or')h(of)g(t)m(w)m(o)g(BDDs)p -3669 3206 V 236 3209 3435 4 v 234 3322 4 113 v 286 3288 -a Fm(bdd)p 436 3288 29 4 v 34 w(relprod)p 1357 3322 4 -113 v 609 w Fn(relational)e(pro)s(duct)p 3669 3322 V -236 3325 3435 4 v 234 3438 4 113 v 286 3404 a Fm(bdd)p -436 3404 29 4 v 34 w(replace)p 1357 3438 4 113 v 609 -w Fn(replaces)h(v)-5 b(ariables)29 b(with)g(other)i(v)-5 -b(ariables)p 3669 3438 V 236 3442 3435 4 v 234 3555 4 -113 v 286 3521 a Fm(bdd)p 436 3521 29 4 v 34 w(restrict)p -1357 3555 4 113 v 561 w Fn(restric)30 b(a)g(set)h(of)g(v)-5 -b(ariables)29 b(to)i(constan)m(t)h(v)-5 b(alues)p 3669 -3555 V 236 3558 3435 4 v 234 3671 4 113 v 286 3637 a -Fm(bdd)p 436 3637 29 4 v 34 w(satone)p 1357 3671 4 113 -v 657 w Fn(\014nds)29 b(one)h(satisfying)f(v)-5 b(ariable)29 -b(assignmen)m(t)p 3669 3671 V 236 3674 3435 4 v 234 3787 -4 113 v 286 3753 a Fm(bdd)p 436 3753 29 4 v 34 w(satoneset)p -1357 3787 4 113 v 513 w Fn(\014nds)g(one)h(satisfying)f(v)-5 -b(ariable)29 b(assignmen)m(t)p 3669 3787 V 236 3790 3435 -4 v 234 3903 4 113 v 286 3869 a Fm(bdd)p 436 3869 29 -4 v 34 w(simplify)p 1357 3903 4 113 v 561 w Fn(coudert)h(and)g(Madre's) -h(restrict)f(function)p 3669 3903 V 236 3907 3435 4 v -234 4019 4 113 v 286 3986 a Fm(bdd)p 436 3986 29 4 v -34 w(unique)p 1357 4019 4 113 v 657 w Fn(unique)e(quan)m(ti\014cation)i -(of)h(v)-5 b(ariables)p 3669 4019 V 236 4023 3435 4 v -234 4136 4 113 v 286 4102 a Fm(bdd)p 436 4102 29 4 v -34 w(veccompose)p 1357 4136 4 113 v 465 w Fn(sim)m(ultaneous)29 -b(functional)g(comp)s(osition)p 3669 4136 V 236 4139 -3435 4 v 234 4252 4 113 v 286 4218 a Fm(bdd)p 436 4218 -29 4 v 34 w(xor)p 1357 4252 4 113 v 801 w Fn(the)h(logical)g('xor')h -(of)g(t)m(w)m(o)g(BDDs)p 3669 4252 V 236 4255 3435 4 -v 234 4368 4 113 v 321 4334 a Fo(V)-9 b(ariable)35 b(reordering)p -3669 4368 V 236 4371 3435 4 v 234 4484 4 113 v 286 4451 -a Fm(bdd)p 436 4451 29 4 v 34 w(addvarblock)p 1357 4484 -4 113 v 417 w Fn(adds)30 b(a)g(new)g(v)-5 b(ariable)29 -b(blo)s(c)m(k)h(for)g(reordering)p 3669 4484 V 234 4597 -V 286 4563 a Fm(bdd)p 436 4563 29 4 v 34 w(intaddvarblock)p -1357 4597 4 113 v 3669 4597 V 236 4601 3435 4 v 234 4714 -4 113 v 286 4680 a(bdd)p 436 4680 29 4 v 34 w(autoreorder)p -1357 4714 4 113 v 417 w Fn(enables)g(automatic)h(reordering)p -3669 4714 V 234 4826 V 286 4793 a Fm(bdd)p 436 4793 29 -4 v 34 w(autoreorder)p 998 4793 V 31 w(times)p 1357 4826 -4 113 v 3669 4826 V 236 4830 3435 4 v 234 4943 4 113 -v 286 4909 a(bdd)p 436 4909 29 4 v 34 w(blockfile)p 902 -4909 V 31 w(hook)p 1357 4943 4 113 v 290 w Fn(sp)s(eci\014es)e(a)i -(prin)m(ting)d(callbac)m(k)i(handler)p 3669 4943 V 236 -4946 3435 4 v 234 5059 4 113 v 286 5025 a Fm(bdd)p 436 -5025 29 4 v 34 w(clrvarblocks)p 1357 5059 4 113 v 369 -w Fn(clears)g(all)f(v)-5 b(ariable)30 b(blo)s(c)m(ks)p -3669 5059 V 236 5062 3435 4 v 234 5175 4 113 v 286 5141 -a Fm(bdd)p 436 5141 29 4 v 34 w(disable)p 806 5141 V -32 w(reorder)p 1357 5175 4 113 v 241 w Fn(disable)e(automatic)k -(reordering)p 3669 5175 V 236 5178 3435 4 v 234 5291 -4 113 v 286 5258 a Fm(bdd)p 436 5258 29 4 v 34 w(enable)p -758 5258 V 32 w(reorder)p 1357 5291 4 113 v 289 w Fn(enables)e -(automatic)h(reordering)p 3669 5291 V 236 5295 3435 4 -v 1962 5989 a(18)p eop -%%Page: 19 27 -19 26 bop 236 74 3116 4 v 234 187 4 113 v 286 153 a Fm(bdd)p -436 153 29 4 v 34 w(getreorder)p 950 153 V 31 w(method)p -1357 187 4 113 v 146 w Fn(fetc)m(h)31 b(the)g(curren)m(t)f(reorder)g -(metho)s(d)p 3351 187 V 236 191 3116 4 v 234 303 4 113 -v 286 270 a Fm(bdd)p 436 270 29 4 v 34 w(getreorder)p -950 270 V 31 w(times)p 1357 303 4 113 v 194 w Fn(fetc)m(h)h(the)g -(curren)m(t)f(n)m(um)m(b)s(er)f(of)h(allo)m(w)m(ed)h(reorderings)p -3351 303 V 236 307 3116 4 v 234 420 4 113 v 286 386 a -Fm(bdd)p 436 386 29 4 v 34 w(level2var)p 1357 420 4 113 -v 513 w Fn(fetc)m(h)g(the)g(v)-5 b(ariable)29 b(n)m(um)m(b)s(er)g(of)h -(a)h(sp)s(eci\014c)e(lev)m(el)p 3351 420 V 236 423 3116 -4 v 234 536 4 113 v 286 502 a Fm(bdd)p 436 502 29 4 v -34 w(printorder)p 1357 536 4 113 v 465 w Fn(prin)m(ts)g(the)h(curren)m -(t)h(order)p 3351 536 V 236 539 3116 4 v 234 652 4 113 -v 286 618 a Fm(bdd)p 436 618 29 4 v 34 w(reorder)p 1357 -652 4 113 v 609 w Fn(start)g(dynamic)e(reordering)p 3351 -652 V 236 655 3116 4 v 234 768 4 113 v 286 734 a Fm(bdd)p -436 734 29 4 v 34 w(reorder)p 806 734 V 32 w(gain)p 1357 -768 4 113 v 385 w Fn(calculate)i(the)f(gain)g(in)f(size)i(after)f(a)h -(reordering)p 3351 768 V 236 772 3116 4 v 234 885 4 113 -v 286 851 a Fm(bdd)p 436 851 29 4 v 34 w(reorder)p 806 -851 V 32 w(hook)p 1357 885 4 113 v 385 w Fn(sets)g(a)f(handler)f(for)h -(automatic)h(reorderings)p 3351 885 V 236 888 3116 4 -v 234 1001 4 113 v 286 967 a Fm(bdd)p 436 967 29 4 v -34 w(reorder)p 806 967 V 32 w(probe)p 1357 1001 4 113 -v 337 w Fn(de\014ne)f(a)g(handler)f(for)h(minimization)d(of)k(BDDs)p -3351 1001 V 236 1004 3116 4 v 234 1117 4 113 v 286 1083 -a Fm(bdd)p 436 1083 29 4 v 34 w(reorder)p 806 1083 V -32 w(verbose)p 1357 1117 4 113 v 241 w Fn(enables)f(v)m(erb)s(ose)g -(information)f(ab)s(out)h(reorderings)p 3351 1117 V 236 -1120 3116 4 v 234 1233 4 113 v 286 1199 a Fm(bdd)p 436 -1199 29 4 v 34 w(setvarorder)p 1357 1233 4 113 v 417 -w Fn(set)h(a)g(sp)s(eci\014c)e(v)-5 b(ariable)29 b(order)p -3351 1233 V 236 1237 3116 4 v 234 1349 4 113 v 286 1316 -a Fm(bdd)p 436 1316 29 4 v 34 w(swapvar)p 1357 1349 4 -113 v 609 w Fn(sw)m(ap)h(t)m(w)m(o)i(BDD)f(v)-5 b(ariables)p -3351 1349 V 236 1353 3116 4 v 234 1466 4 113 v 286 1432 -a Fm(bdd)p 436 1432 29 4 v 34 w(var2level)p 1357 1466 -4 113 v 513 w Fn(fetc)m(h)31 b(the)g(lev)m(el)f(of)g(a)h(sp)s(eci\014c) -e(BDD)j(v)-5 b(ariable)p 3351 1466 V 236 1469 3116 4 -v 234 1582 4 113 v 286 1548 a Fm(bdd)p 436 1548 29 4 -v 34 w(varblockall)p 1357 1582 4 113 v 417 w Fn(add)30 -b(a)g(v)-5 b(ariable)30 b(blo)s(c)m(k)g(for)g(all)f(v)-5 -b(ariables)p 3351 1582 V 236 1585 3116 4 v 1962 5989 -a(19)p eop -%%Page: 20 28 -20 27 bop 236 83 3544 12 v 236 196 a Fo(b)s(ddCac)m(heStat)95 -b Fn({)31 b(Status)f(information)f(ab)s(out)h(cac)m(he)i(usage)p -236 250 V 236 447 a Fm(typedef)46 b(struct)g(s_bddCacheStat)236 -560 y({)379 673 y(long)h(unsigned)f(int)g(uniqueAccess;)379 -786 y(long)h(unsigned)f(int)g(uniqueChain;)379 899 y(long)h(unsigned)f -(int)g(uniqueHit;)379 1012 y(long)h(unsigned)f(int)g(uniqueMiss;)379 -1125 y(long)h(unsigned)f(int)g(opHit;)379 1238 y(long)h(unsigned)f(int) -g(opMiss;)379 1350 y(long)h(unsigned)f(int)g(swapCount;)236 -1463 y(})i(bddCacheStat;)236 1688 y Fo(Description)p -236 1743 3544 5 v 236 1855 a Fn(The)30 b(\014elds)f(are)286 -2056 y Fo(Name)357 b(Num)m(b)s(er)34 b(of)286 2169 y -Fn(uniqueAccess)99 b(accesses)32 b(to)f(the)g(unique)d(no)s(de)i(table) -286 2282 y(uniqueChain)120 b(iterations)30 b(through)f(the)i(cac)m(he)h -(c)m(hains)e(in)f(the)h(unique)f(no)s(de)g(table)286 -2394 y(uniqueHit)230 b(en)m(tries)30 b(actually)g(found)f(in)g(the)i -(the)f(unique)f(no)s(de)g(table)286 2507 y(uniqueMiss)178 -b(en)m(tries)30 b(not)h(found)e(in)g(the)h(the)h(unique)d(no)s(de)i -(table)286 2620 y(opHit)401 b(en)m(tries)30 b(found)f(in)g(the)i(op)s -(erator)f(cac)m(hes)286 2733 y(opMiss)349 b(en)m(tries)30 -b(not)h(found)e(in)g(the)h(op)s(erator)h(cac)m(hes)286 -2846 y(sw)m(apCoun)m(t)186 b(n)m(um)m(b)s(er)29 b(of)i(v)-5 -b(ariable)29 b(sw)m(aps)h(in)f(reordering)236 3102 y -Fo(See)35 b(also)p 236 3156 V 236 3269 a Fn(b)s(dd)p -397 3269 28 4 v 31 w(cac)m(hestats)1962 5989 y(20)p eop -%%Page: 21 29 -21 28 bop 236 83 3544 12 v 236 196 a Fo(b)s(ddGb)s(cStat)96 -b Fn({)30 b(Status)h(information)d(ab)s(out)j(garbage)g(collections)p -236 250 V 236 447 a Fm(typedef)46 b(struct)g(s_bddGbcStat)236 -560 y({)379 673 y(int)h(nodes;)379 786 y(int)g(freenodes;)379 -899 y(long)g(time;)379 1012 y(long)g(sumtime;)379 1125 -y(int)g(num;)236 1238 y(})h(bddGbcStat;)236 1463 y Fo(Description)p -236 1517 3544 5 v 236 1630 a Fn(The)30 b(\014elds)f(are)286 -1830 y Fm(nodes)289 b Fn(T)-8 b(otal)31 b(n)m(um)m(b)s(er)e(of)i(allo)s -(cated)f(no)s(des)g(in)f(the)h(no)s(detable)286 1943 -y Fm(freenodes)97 b Fn(Num)m(b)s(er)29 b(of)i(free)f(no)s(des)g(in)f -(the)i(no)s(detable)286 2056 y Fm(time)337 b Fn(Time)30 -b(used)f(for)h(garbage)i(collection)e(this)f(time)286 -2169 y Fm(sumtime)193 b Fn(T)-8 b(otal)31 b(time)f(used)g(for)g -(garbage)i(collection)286 2282 y Fm(num)385 b Fn(n)m(um)m(b)s(er)29 -b(of)i(garbage)g(collections)f(done)h(un)m(til)d(no)m(w)236 -2537 y Fo(See)35 b(also)p 236 2591 V 236 2704 a Fn(b)s(dd)p -397 2704 28 4 v 31 w(gb)s(c)p 567 2704 V 33 w(ho)s(ok)1962 -5989 y(21)p eop -%%Page: 22 30 -22 29 bop 236 83 3544 12 v 236 196 a Fo(b)s(ddStat)95 -b Fn({)31 b(Status)f(information)f(ab)s(out)h(the)g(b)s(dd)f(pac)m(k)-5 -b(age)p 236 250 V 236 447 a Fm(typedef)46 b(struct)g(s_bddStat)236 -560 y({)379 673 y(long)h(int)g(produced;)379 786 y(int)g(nodenum;)379 -899 y(int)g(maxnodenum;)379 1012 y(int)g(freenodes;)379 -1125 y(int)g(minfreenodes;)379 1238 y(int)g(varnum;)379 -1350 y(int)g(cachesize;)379 1463 y(int)g(gbcnum;)236 -1576 y(})h(bddStat;)236 1801 y Fo(Description)p 236 1855 -3544 5 v 236 1968 a Fn(The)30 b(\014elds)f(are)286 2169 -y Fm(produced)288 b Fn(total)32 b(n)m(um)m(b)s(er)d(of)h(new)g(no)s -(des)g(ev)m(er)h(pro)s(duced)286 2282 y Fm(nodenum)336 -b Fn(curren)m(tly)30 b(allo)s(cated)g(n)m(um)m(b)s(er)f(of)i(b)s(dd)d -(no)s(des)286 2394 y Fm(maxnodenum)192 b Fn(user)30 b(de\014ned)f -(maxim)m(um)g(n)m(um)m(b)s(er)g(of)i(b)s(dd)d(no)s(des)286 -2507 y Fm(freenodes)240 b Fn(n)m(um)m(b)s(er)29 b(of)i(curren)m(tly)e -(free)i(no)s(des)286 2620 y Fm(minfreenodes)96 b Fn(minim)m(um)54 -b(n)m(um)m(b)s(er)i(of)h(no)s(des)e(that)j(should)c(b)s(e)i(left)h -(after)g(a)958 2733 y(garbage)32 b(collection.)286 2846 -y Fm(varnum)384 b Fn(n)m(um)m(b)s(er)29 b(of)i(de\014ned)e(b)s(dd)f(v) --5 b(ariables)286 2959 y Fm(cachesize)240 b Fn(n)m(um)m(b)s(er)29 -b(of)i(en)m(tries)f(in)f(the)i(in)m(ternal)e(cac)m(hes)286 -3072 y Fm(gbcnum)384 b Fn(n)m(um)m(b)s(er)29 b(of)i(garbage)h -(collections)e(done)g(un)m(til)e(no)m(w)236 3327 y Fo(See)35 -b(also)p 236 3382 V 236 3495 a Fn(b)s(dd)p 397 3495 28 -4 v 31 w(stats)p 236 3828 3544 12 v 236 3941 a Fo(b)s(dd)p -419 3941 32 4 v 38 w(addref)95 b Fn({)31 b(increases)f(the)h(reference) -g(coun)m(t)g(on)f(a)h(no)s(de)p 236 3995 3544 12 v 236 -4200 a Fm(BDD)47 b(bdd_addref\(BDD)d(r\))236 4425 y Fo(Description)p -236 4479 3544 5 v 236 4592 a Fn(Reference)28 b(coun)m(ting)f(is)f(done) -h(on)g(externaly)g(referenced)g(no)s(des)f(only)g(and)h(the)g(coun)m(t) -g(for)g(a)h(sp)s(eci\014c)236 4705 y(no)s(de)d Fm(r)g -Fn(can)h(and)f(m)m(ust)g(b)s(e)g(increased)g(using)f(this)g(function)g -(to)j(a)m(v)m(oid)f(lo)s(osing)e(the)i(no)s(de)e(in)h(the)g(next)236 -4818 y(garbage)32 b(collection.)236 5081 y Fo(Return)j(v)-6 -b(alue)p 236 5135 V 236 5248 a Fn(The)30 b(BDD)i(no)s(de)d -Fm(r)p Fn(.)236 5511 y Fo(See)35 b(also)p 236 5565 V -236 5678 a Fn(b)s(dd)p 397 5678 28 4 v 31 w(delref)1962 -5989 y(22)p eop -%%Page: 23 31 -23 30 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(addv)-6 b(arblo)s(c)m(k)97 b Fn({)30 -b(adds)g(a)h(new)f(v)-5 b(ariable)29 b(blo)s(c)m(k)h(for)g(reordering)p -236 250 3544 12 v 236 455 a Fm(int)47 b(bdd_addvarblock\(BDD)c(var,)j -(int)h(fixed\))236 568 y(int)g(bdd_intaddvarblock\(int)42 -b(first,)k(int)h(last,)f(int)h(fixed\))236 793 y Fo(Description)p -236 847 3544 5 v 236 960 a Fn(Creates)40 b(a)g(new)e(v)-5 -b(ariable)38 b(blo)s(c)m(k)h(with)f(the)i(v)-5 b(ariables)38 -b(in)f(the)j(v)-5 b(ariable)38 b(set)i Fm(var)p Fn(.)66 -b(The)39 b(v)-5 b(ariables)236 1073 y(in)33 b Fm(var)h -Fn(m)m(ust)g(b)s(e)g(con)m(tiguous.)53 b(In)34 b(the)h(second)f(form)g -(the)h(argumen)m(t)g Fm(first)e Fn(is)g(the)i(\014rst)f(v)-5 -b(ariable)236 1186 y(included)28 b(in)g(the)j(blo)s(c)m(k)e(and)h -Fm(last)f Fn(is)g(the)h(last)g(v)-5 b(ariable)29 b(included)f(in)g(the) -j(blo)s(c)m(k.)40 b(This)28 b(order)i(do)s(es)236 1298 -y(not)h(dep)s(end)d(on)j(curren)m(t)f(v)-5 b(ariable)29 -b(order.)327 1411 y(The)24 b(v)-5 b(ariable)23 b(blo)s(c)m(ks)h(are)h -(ordered)f(as)h(a)g(tree,)h(with)e(the)g(largest)h(ranges)g(at)g(top)g -(and)f(the)g(smallest)236 1524 y(at)34 b(the)g(b)s(ottom.)50 -b(Example:)c(Assume)33 b(the)g(blo)s(c)m(k)g(0-9)i(is)d(added)h(as)g -(the)h(\014rst)f(blo)s(c)m(k)f(and)h(then)g(the)236 1637 -y(blo)s(c)m(k)f(0-6.)48 b(This)31 b(yields)f(the)j(0-9)g(blo)s(c)m(k)f -(at)h(the)g(top,)g(with)e(the)i(0-6)h(blo)s(c)m(k)d(as)i(a)g(c)m(hild.) -45 b(If)32 b(no)m(w)g(the)236 1750 y(blo)s(c)m(k)e(2-4)h(w)m(as)f -(added,)g(it)f(w)m(ould)g(b)s(ecome)h(a)h(c)m(hild)d(of)i(the)g(0-6)h -(blo)s(c)m(k.)40 b(A)30 b(blo)s(c)m(k)g(of)g(0-8)h(w)m(ould)e(b)s(e)g -(a)236 1863 y(c)m(hild)i(of)h(the)h(0-9)g(blo)s(c)m(k)f(and)g(ha)m(v)m -(e)h(the)g(0-6)g(blo)s(c)m(k)f(as)h(a)g(c)m(hild.)45 -b(P)m(artially)31 b(o)m(v)m(erlapping)g(blo)s(c)m(ks)h(are)236 -1976 y(not)f(allo)m(w)m(ed.)327 2089 y(The)g Fm(fixed)f -Fn(parameter)i(sets)g(the)g(blo)s(c)m(k)f(to)h(b)s(e)f(\014xed)g(\(no)g -(reordering)g(of)g(its)g(c)m(hild)f(blo)s(c)m(ks)h(is)g(al-)236 -2202 y(lo)m(w)m(ed\))23 b(or)f(free,)i(using)d(the)h(constan)m(ts)h -Fm(BDD)p 1734 2202 29 4 v 34 w(REORDER)p 2104 2202 V -32 w(FIXED)e Fn(and)g Fm(BDD)p 2709 2202 V 34 w(REORDER)p -3079 2202 V 32 w(FREE)p Fn(.)g(Reordering)236 2315 y(is)30 -b(alw)m(a)m(ys)h(done)f(on)g(the)h(top)f(most)h(blo)s(c)m(ks)f(\014rst) -f(and)h(then)g(recursiv)m(ely)f(do)m(wn)m(w)m(ards.)327 -2428 y(The)g(return)g(v)-5 b(alue)29 b(is)f(an)i(in)m(teger)g(that)g -(can)g(b)s(e)f(used)f(to)j(iden)m(tify)d(the)i(blo)s(c)m(k)f(later)g -(on)h(-)f(with)g(for)236 2540 y(example)h Fm(bdd)p 742 -2540 V 34 w(blockfile)p 1208 2540 V 32 w(hook)p Fn(.)39 -b(The)30 b(v)-5 b(alues)30 b(returned)f(will)f(b)s(e)i(in)f(the)h -(sequence)h(0)p Fj(;)15 b Fn(1)p Fj(;)g Fn(2)p Fj(;)g -Fn(3)p Fj(;)g(:)g(:)g(:)t Fn(.)236 2804 y Fo(Return)35 -b(v)-6 b(alue)p 236 2858 3544 5 v 236 2971 a Fn(A)31 -b(non-negativ)m(e)g(iden)m(ti\014er)e(on)h(success,)h(otherwise)f(a)g -(negativ)m(e)i(error)e(co)s(de.)236 3234 y Fo(See)35 -b(also)p 236 3288 V 236 3401 a Fn(b)s(dd)p 397 3401 28 -4 v 31 w(v)-5 b(arblo)s(c)m(k)g(all,)29 b(fdd)p 1038 -3401 V 32 w(in)m(taddv)-5 b(arblo)s(c)m(k,)29 b(b)s(dd)p -1870 3401 V 31 w(clrv)-5 b(arblo)s(c)m(ks)1962 5989 y(23)p -eop -%%Page: 24 32 -24 31 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(allsat)95 b Fn({)31 b(\014nds)e(all)g(satisfying)g(v)-5 -b(ariable)29 b(assignmen)m(ts)p 236 250 3544 12 v 236 -455 a Fm(BDD)47 b(bdd_satone\(BDD)d(r,)j(bddallsathandler)d(handler\)) -236 680 y Fo(Description)p 236 734 3544 5 v 236 847 a -Fn(Iterates)33 b(through)e(all)g(legal)g(v)-5 b(ariable)31 -b(assignmen)m(ts)g(\(those)i(that)f(mak)m(e)h(the)f(BDD)h(come)g -(true\))f(for)236 960 y(the)h(b)s(dd)d Fm(r)i Fn(and)g(calls)g(the)h -(callbac)m(k)f(handler)f Fm(handler)f Fn(for)j(eac)m(h)g(of)g(them.)47 -b(The)32 b(arra)m(y)h(passed)f(to)236 1073 y Fm(handler)c -Fn(con)m(tains)i(one)g(en)m(try)g(for)f(eac)m(h)i(of)f(the)g(globaly)f -(de\014ned)f(v)-5 b(ariables.)39 b(Eac)m(h)30 b(en)m(try)g(is)f(either) -236 1186 y(0)i(if)e(the)i(v)-5 b(ariable)29 b(is)g(false,)i(1)g(if)e -(it)h(is)f(true,)i(and)e(-1)i(if)f(it)g(is)f(a)i(don't)f(care.)327 -1298 y(The)f(follo)m(wing)e(is)h(an)h(example)g(of)g(a)h(callbac)m(k)f -(handler)e(that)j(prin)m(ts)e('X')h(for)g(don't)g(cares,)i('0')f(for) -236 1411 y(zero,)i(and)d('1')j(for)e(one:)236 1599 y -Fm(void)47 b(allsatPrintHandler\(char*)41 b(varset,)46 -b(int)h(size\))236 1712 y({)332 1825 y(for)g(\(int)f(v=0;)h(v>)377 2063 y(bddop)p 623 2063 V 33 w(biimp)146 -b Fn(bi-implication)27 b(\()p Fj(A)f Fc(,)f Fj(B)5 b -Fn(\))297 b([1,0,0,1])377 2176 y Fm(bddop)p 623 2176 -V 33 w(diff)194 b Fn(set)31 b(di\013erence)f(\()p Fj(A)20 -b Fc(n)h Fj(B)5 b Fn(\))385 b([0,0,1,0])524 b Fm(-)377 -2289 y(bddop)p 623 2289 V 33 w(less)194 b Fn(less)30 -b(than)g(\()p Fj(A)c(<)e(B)5 b Fn(\))519 b([0,1,0,0])524 -b Fm(<)377 2402 y(bddop)p 623 2402 V 33 w(invimp)98 b -Fn(rev)m(erse)31 b(implication)d(\()p Fj(A)e Fc(\()f -Fj(B)5 b Fn(\))99 b([1,0,1,1])500 b Fm(<<)236 2658 y -Fo(Return)35 b(v)-6 b(alue)p 236 2712 3544 5 v 236 2825 -a Fn(The)30 b(result)f(of)i(the)f(op)s(eration.)236 3088 -y Fo(See)35 b(also)p 236 3142 V 236 3255 a Fn(b)s(dd)p -397 3255 28 4 v 31 w(ite)p 236 3588 3544 12 v 236 3701 -a Fo(b)s(dd)p 419 3701 32 4 v 38 w(appuni)96 b Fn({)30 -b(apply)f(op)s(eration)h(and)g(unique)e(quan)m(ti\014cation)p -236 3755 3544 12 v 236 3960 a Fm(BDD)47 b(bdd_appuni\(BDD)d(left,)i -(BDD)h(right,)f(int)h(opr,)g(BDD)g(var\))236 4185 y Fo(Description)p -236 4239 3544 5 v 236 4352 a Fn(Applies)32 b(the)i(binary)e(op)s -(erator)i Fm(opr)f Fn(to)i(the)f(argumen)m(ts)g Fm(left)e -Fn(and)i Fm(right)e Fn(and)h(then)h(p)s(erforms)e(a)236 -4465 y(unique)c(quan)m(ti\014cation)g(of)h(the)h(v)-5 -b(ariables)28 b(from)g(the)i(v)-5 b(ariable)28 b(set)i -Fm(var)p Fn(.)39 b(This)27 b(is)i(done)g(in)f(a)h(b)s(ottom)236 -4578 y(up)f(manner)g(suc)m(h)h(that)h(b)s(oth)e(the)h(apply)f(and)h -(quan)m(ti\014cation)f(is)g(done)h(on)g(the)g(lo)m(w)m(er)h(no)s(des)e -(b)s(efore)236 4691 y(stepping)d(up)g(to)i(the)g(higher)d(no)s(des.)39 -b(This)24 b(mak)m(es)j(the)g Fm(bdd)p 2321 4691 29 4 -v 33 w(appuni)e Fn(function)f(m)m(uc)m(h)j(more)f(e\016cien)m(t)236 -4804 y(than)k(an)h(apply)e(op)s(eration)g(follo)m(w)m(ed)h(b)m(y)h(a)f -(quan)m(ti\014cation.)236 5067 y Fo(Return)35 b(v)-6 -b(alue)p 236 5121 3544 5 v 236 5234 a Fn(The)30 b(result)f(of)i(the)f -(op)s(eration.)236 5497 y Fo(See)35 b(also)p 236 5552 -V 236 5665 a Fn(b)s(dd)p 397 5665 28 4 v 31 w(app)s(ex,)30 -b(b)s(dd)p 877 5665 V 31 w(appall,)f(b)s(dd)p 1362 5665 -V 30 w(apply)-8 b(,)30 b(b)s(dd)p 1816 5665 V 31 w(exist,)g(b)s(dd)p -2243 5665 V 31 w(unique,)f(b)s(dd)p 2751 5665 V 31 w(forall,)g(b)s(dd)p -3198 5665 V 31 w(mak)m(eset)1962 5989 y(27)p eop -%%Page: 28 36 -28 35 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(autoreorder)96 b Fn({)30 b(enables)g(automatic)h -(reordering)p 236 250 3544 12 v 236 455 a Fm(int)47 b -(bdd_autoreorder\(int)c(method\))236 568 y(int)k -(bdd_autoreorder_times\(int)41 b(method,)46 b(int)h(num\))236 -793 y Fo(Description)p 236 847 3544 5 v 236 960 a Fn(Enables)h -(automatic)j(reordering)d(using)f Fm(method)h Fn(as)i(the)f(reordering) -f(metho)s(d.)97 b(If)49 b Fm(method)e Fn(is)236 1073 -y Fm(BDD)p 386 1073 29 4 v 34 w(REORDER)p 756 1073 V -32 w(NONE)35 b Fn(then)g(automatic)i(reordering)d(is)h(disabled.)54 -b(Automatic)37 b(reordering)d(is)h(done)236 1186 y(ev)m(ery)42 -b(time)e(the)g(n)m(um)m(b)s(er)g(of)g(activ)m(e)i(no)s(des)e(in)f(the)i -(no)s(de)f(table)g(has)g(b)s(een)g(doubled)f(and)g(w)m(orks)236 -1298 y(b)m(y)i(in)m(terrupting)d(the)j(curren)m(t)f(BDD)i(op)s -(eration,)h(doing)d(the)g(reordering)g(and)g(the)h(retrying)e(the)236 -1411 y(op)s(eration.)327 1524 y(In)34 b(the)h(second)g(form)g(the)g -(argumen)m(t)g Fm(num)f Fn(sp)s(eci\014es)g(the)h(allo)m(w)m(ed)g(n)m -(um)m(b)s(er)f(of)h(reorderings.)53 b(So)236 1637 y(if)31 -b(for)h(example)f(a)h("one)h(shot")f(reordering)f(is)g(needed,)h(then)f -(the)h Fm(num)f Fn(argumen)m(t)i(w)m(ould)d(b)s(e)h(set)i(to)236 -1750 y(one.)327 1863 y(V)-8 b(alues)31 b(for)f Fm(method)e -Fn(can)j(b)s(e)f(found)f(under)g Fm(bdd)p 2025 1863 V -33 w(reorder)p Fn(.)236 2126 y Fo(Return)35 b(v)-6 b(alue)p -236 2180 3544 5 v 236 2293 a Fn(Returns)30 b(the)g(old)g(v)-5 -b(alue)30 b(of)g Fm(method)236 2557 y Fo(See)35 b(also)p -236 2611 V 236 2724 a Fn(b)s(dd)p 397 2724 28 4 v 31 -w(reorder)p 236 3057 3544 12 v 236 3170 a Fo(b)s(dd)p -419 3170 32 4 v 38 w(biimp)95 b Fn({)31 b(The)e(logical)h -('bi-implication')e(b)s(et)m(w)m(een)j(t)m(w)m(o)g(BDDs)p -236 3224 3544 12 v 236 3429 a Fm(BDD)47 b(bdd_biimp\(BDD)d(l,)j(BDD)g -(r\))236 3654 y Fo(Description)p 236 3708 3544 5 v 236 -3821 a Fn(This)29 b(a)i(wrapp)s(er)d(that)j(calls)f Fm(bdd)p -1426 3821 29 4 v 33 w(apply\(l,r,bddop)p 2179 3821 V -30 w(biimp\))p Fn(.)236 4084 y Fo(Return)35 b(v)-6 b(alue)p -236 4138 3544 5 v 236 4251 a Fn(The)30 b(logical)g('bi-implication')d -(of)k Fm(l)f Fn(and)g Fm(r)g Fn(\()p Fj(l)d Fc(,)e Fj(r)s -Fn(\).)236 4514 y Fo(See)35 b(also)p 236 4569 V 236 4681 -a Fn(b)s(dd)p 397 4681 28 4 v 31 w(apply)-8 b(,)30 b(b)s(dd)p -852 4681 V 30 w(imp)1962 5989 y(28)p eop -%%Page: 29 37 -29 36 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(blo)s(c)m(k\014le)p 832 196 V 39 w(ho)s(ok)96 -b Fn({)31 b(Sp)s(eci\014es)d(a)j(prin)m(ting)d(callbac)m(k)j(handler)p -236 250 3544 12 v 236 455 a Fm(bddfilehandler)44 b -(bdd_blockfile_hook\(bddfil)o(eha)o(ndle)o(r)e(handler\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(A)27 -b(prin)m(ting)d(callbac)m(k)i(handler)f(is)g(used)g(to)i(con)m(v)m(ert) -h(the)f(v)-5 b(ariable)25 b(blo)s(c)m(k)g(iden)m(ti\014ers)g(in)m(to)h -(something)236 960 y(readable)d(b)m(y)g(the)g(end)g(user.)38 -b(Use)23 b Fm(bdd)p 1569 960 29 4 v 34 w(blockfile)p -2035 960 V 32 w(hook)f Fn(to)h(pass)g(a)h(handler)d(to)j(BuDDy)-8 -b(.)40 b(A)23 b(t)m(ypical)236 1073 y(handler)29 b(could)g(lo)s(ok)h -(lik)m(e)g(this:)236 1260 y Fm(void)47 b(printhandler\(FILE)c(*o,)k -(int)g(block\))236 1373 y({)379 1486 y(extern)f(char)h(**blocknames;) -379 1599 y(fprintf\(o,)e("\045s",)i(blocknames[block]\);)236 -1712 y(})236 1900 y Fn(The)42 b(handler)e(is)h(then)h(called)f(from)h -Fm(bdd)p 1743 1900 V 33 w(printorder)d Fn(and)j Fm(bdd)p -2628 1900 V 33 w(reorder)e Fn(\(dep)s(ending)g(on)i(the)236 -2012 y(v)m(erb)s(ose)36 b(lev)m(el\))g(with)f(the)h(blo)s(c)m(k)g(n)m -(um)m(b)s(ers)e(returned)h(b)m(y)h Fm(bdd)p 2466 2012 -V 33 w(addvarblock)d Fn(as)j(argumen)m(ts.)58 b(No)236 -2125 y(default)25 b(handler)f(is)g(supplied.)36 b(The)25 -b(argumen)m(t)i Fm(handler)c Fn(ma)m(y)j(b)s(e)f(NULL)h(if)f(no)g -(handler)f(is)h(needed.)236 2389 y Fo(Return)35 b(v)-6 -b(alue)p 236 2443 3544 5 v 236 2556 a Fn(The)30 b(old)g(handler)236 -2819 y Fo(See)35 b(also)p 236 2873 V 236 2986 a Fn(b)s(dd)p -397 2986 28 4 v 31 w(prin)m(torder)p 236 3337 3544 12 -v 236 3450 a Fo(b)s(dd)p 419 3450 32 4 v 38 w(buildcub)s(e)96 -b Fn({)31 b(build)c(a)k(cub)s(e)f(from)g(an)g(arra)m(y)h(of)f(v)-5 -b(ariables)p 236 3504 3544 12 v 236 3709 a Fm(BDD)47 -b(bdd_buildcube\(int)c(value,)j(int)h(width,)f(BDD)h(*var\))236 -3822 y(BDD)g(bdd_ibuildcube\(int)c(value,)j(int)h(width,)f(int)h -(*var\))236 4047 y Fo(Description)p 236 4101 3544 5 v -236 4214 a Fn(This)24 b(function)g(builds)e(a)k(cub)s(e)e(from)h(the)h -(v)-5 b(ariables)24 b(in)g Fm(var)p Fn(.)38 b(It)25 b(do)s(es)h(so)f(b) -m(y)g(in)m(terpreting)f(the)i Fm(width)236 4327 y Fn(lo)m(w)g(order)g -(bits)f(of)i Fm(value)d Fn(as)j(a)f(bit)g(mask{a)h(set)g(bit)e -(indicates)g(that)i(the)f(v)-5 b(ariable)25 b(should)g(b)s(e)g(added) -236 4440 y(in)i(it's)g(p)s(ositiv)m(e)f(form,)i(and)f(a)h(cleared)g -(bit)f(the)h(opp)s(osite.)39 b(The)27 b(most)h(signi\014can)m(t)e(bits) -h(are)h(enco)s(ded)236 4553 y(with)i(the)i(\014rst)f(v)-5 -b(ariables)30 b(in)g Fm(var)p Fn(.)43 b(Consider)29 b(as)j(an)f -(example)g(the)h(call)f Fm(bdd)p 2941 4553 29 4 v 33 -w(buildcube\(0xB,)44 b(4,)236 4665 y(var\))p Fn(.)62 -b(This)36 b(corresp)s(onds)g(to)j(the)f(expression:)54 -b Fj(v)s(ar)s Fn([0])26 b Fc(^)f(:)p Fj(v)s(ar)s Fn([1])h -Fc(^)e Fj(v)s(ar)s Fn([2])i Fc(^)f Fj(v)s(ar)s Fn([3].)64 -b(The)37 b(\014rst)236 4778 y(v)m(ersion)j(of)h(the)g(function)f(tak)m -(es)i(an)f(arra)m(y)g(of)g(BDDs,)k(whereas)40 b(the)h(second)g(tak)m -(es)h(an)f(arra)m(y)g(of)236 4891 y(v)-5 b(ariable)29 -b(n)m(um)m(b)s(ers)g(as)i(used)e(in)h Fm(bdd)p 1520 4891 -V 33 w(ithvar)p Fn(.)236 5154 y Fo(Return)35 b(v)-6 b(alue)p -236 5209 3544 5 v 236 5322 a Fn(The)30 b(resulting)f(cub)s(e)236 -5585 y Fo(See)35 b(also)p 236 5639 V 236 5752 a Fn(b)s(dd)p -397 5752 28 4 v 31 w(ith)m(v)-5 b(ar,)30 b(fdd)p 846 -5752 V 32 w(ith)m(v)-5 b(ar)1962 5989 y(29)p eop -%%Page: 30 38 -30 37 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(cac)m(hestats)96 b Fn({)31 b(F)-8 b(etc)m(h)32 -b(cac)m(he)g(access)g(usage)p 236 250 3544 12 v 236 455 -a Fm(void)47 b(bdd_cachestats\(bddCacheS)o(tat)41 b(*s\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(F)-8 -b(etc)m(hes)38 b(cac)m(he)g(usage)f(information)e(and)g(stores)i(it)e -(in)g Fm(s)p Fn(.)58 b(The)36 b(\014elds)e(of)j Fm(s)f -Fn(can)g(b)s(e)g(found)e(in)h(the)236 960 y(do)s(cumen)m(taion)k(for)h -Fm(bddCacheStat)p Fn(.)65 b(This)38 b(function)h(ma)m(y)h(or)g(ma)m(y)g -(not)g(b)s(e)f(compiled)g(in)m(to)g(the)236 1073 y(BuDDy)31 -b(pac)m(k)-5 b(age)33 b(-)d(dep)s(ending)e(on)i(the)h(setup)f(at)h -(compile)e(time)h(of)h(BuDDy)-8 b(.)236 1336 y Fo(See)35 -b(also)p 236 1390 V 236 1503 a Fn(b)s(ddCac)m(heStat,)30 -b(b)s(dd)p 1013 1503 28 4 v 31 w(prin)m(tstat)p 236 1854 -3544 12 v 236 1967 a Fo(b)s(dd)p 419 1967 32 4 v 38 w(clear)p -674 1967 V 38 w(error)96 b Fn({)31 b(clears)f(an)g(error)g(condition)f -(in)g(the)i(k)m(ernel)p 236 2021 3544 12 v 236 2226 a -Fm(void)47 b(bdd_clear_error\(void\))236 2451 y Fo(Description)p -236 2505 3544 5 v 236 2618 a Fn(The)28 b(BuDDy)h(k)m(ernel)f(ma)m(y)i -(at)f(some)g(p)s(oin)m(t)e(run)g(out)i(of)g(new)f(R)m(OBDD)h(no)s(des)f -(if)f(a)i(maxim)m(um)f(limit)236 2731 y(is)37 b(set)g(with)f -Fm(bdd)p 847 2731 29 4 v 34 w(setmaxnodenum)p Fn(.)58 -b(In)36 b(this)g(case)i(the)g(curren)m(t)f(error)g(handler)e(is)h -(called)h(and)g(an)236 2844 y(in)m(ternal)27 b(error)h(\015ag)h(is)e -(set.)41 b(F)-8 b(urther)28 b(calls)f(to)i(BuDDy)g(will)d(alw)m(a)m(ys) -j(return)e Fm(bddfalse)p Fn(.)38 b(F)-8 b(rom)29 b(here)236 -2957 y(BuDDy)j(m)m(ust)g(either)f(b)s(e)f(restarted)i(or)g -Fm(bdd)p 1828 2957 V 33 w(clear)p 2101 2957 V 33 w(error)e -Fn(ma)m(y)j(b)s(e)d(called)h(after)h(action)g(is)e(tak)m(en)236 -3070 y(to)g(let)e(BuDDy)i(con)m(tin)m(ue.)40 b(This)27 -b(ma)m(y)j(not)f(b)s(e)f(esp)s(ecially)f(usefull)f(since)i(the)h -(default)f(error)g(handler)236 3182 y(exits)i(the)h(program)f(-)h -(other)f(needs)g(ma)m(y)h(of)g(course)f(exist.)236 3446 -y Fo(See)35 b(also)p 236 3500 3544 5 v 236 3613 a Fn(b)s(dd)p -397 3613 28 4 v 31 w(error)p 621 3613 V 32 w(ho)s(ok,)c(b)s(dd)p -1057 3613 V 31 w(setmaxno)s(den)m(um)p 236 3964 3544 -12 v 236 4077 a Fo(b)s(dd)p 419 4077 32 4 v 38 w(clrv)-6 -b(arblo)s(c)m(ks)98 b Fn({)30 b(clears)h(all)e(v)-5 b(ariable)29 -b(blo)s(c)m(ks)p 236 4131 3544 12 v 236 4336 a Fm(void)47 -b(bdd_clrvarblocks\(void\))236 4561 y Fo(Description)p -236 4615 3544 5 v 236 4728 a Fn(Clears)30 b(all)f(the)i(v)-5 -b(ariable)29 b(blo)s(c)m(ks)h(that)g(has)h(b)s(een)e(de\014ned)g(b)m(y) -i(calls)e(to)i(b)s(dd)p 2902 4728 28 4 v 31 w(addv)-5 -b(arblo)s(c)m(k.)236 4991 y Fo(See)35 b(also)p 236 5045 -3544 5 v 236 5158 a Fn(b)s(dd)p 397 5158 28 4 v 31 w(addv)-5 -b(arblo)s(c)m(k)1962 5989 y(30)p eop -%%Page: 31 39 -31 38 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(comp)s(ose)96 b Fn({)30 b(functional)f(comp)s(osition)p -236 250 3544 12 v 236 455 a Fm(BDD)47 b(bdd_compose\(BDD)d(f,)j(BDD)g -(g,)g(int)g(var\))236 680 y Fo(Description)p 236 734 -3544 5 v 236 847 a Fn(Substitutes)29 b(the)i(v)-5 b(ariable)29 -b Fm(var)g Fn(with)g(the)i(BDD)g Fm(g)f Fn(in)g(the)g(BDD)i -Fm(f)p Fn(:)40 b(result)29 b(=)c Fj(f)10 b Fn([)p Fj(g)s(=v)s(ar)s -Fn(].)236 1110 y Fo(Return)35 b(v)-6 b(alue)p 236 1164 -V 236 1277 a Fn(The)30 b(comp)s(osed)g(BDD)236 1540 y -Fo(See)35 b(also)p 236 1595 V 236 1707 a Fn(b)s(dd)p -397 1707 28 4 v 31 w(v)m(eccomp)s(ose,)d(b)s(dd)p 1102 -1707 V 31 w(replace,)f(b)s(dd)p 1623 1707 V 30 w(restrict)p -236 2058 3544 12 v 236 2171 a Fo(b)s(dd)p 419 2171 32 -4 v 38 w(constrain)96 b Fn({)31 b(generalized)f(cofactor)p -236 2225 3544 12 v 236 2430 a Fm(BDD)47 b(bdd_constrain\(BDD)c(f,)k -(BDD)g(c\))236 2655 y Fo(Description)p 236 2709 3544 -5 v 236 2822 a Fn(Computes)30 b(the)h(generalized)f(cofactor)i(of)e -Fm(f)g Fn(with)f(resp)s(ect)i(to)g Fm(c)p Fn(.)236 3086 -y Fo(Return)k(v)-6 b(alue)p 236 3140 V 236 3253 a Fn(The)30 -b(constrained)g(BDD)236 3516 y Fo(See)35 b(also)p 236 -3570 V 236 3683 a Fn(b)s(dd)p 397 3683 28 4 v 31 w(restrict,)30 -b(b)s(dd)p 923 3683 V 31 w(simplify)1962 5989 y(31)p -eop -%%Page: 32 40 -32 39 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(delref)95 b Fn({)31 b(decreases)g(the)g(reference)g -(coun)m(t)g(on)f(a)h(no)s(de)p 236 250 3544 12 v 236 -455 a Fm(BDD)47 b(bdd_delref\(BDD)d(r\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Reference)28 b(coun)m(ting)f(is)f(done)h -(on)g(externaly)g(referenced)g(no)s(des)f(only)g(and)h(the)g(coun)m(t)g -(for)g(a)h(sp)s(eci\014c)236 960 y(no)s(de)k Fm(r)g Fn(can)h(and)f(m)m -(ust)h(b)s(e)e(decreased)j(using)d(this)g(function)g(to)j(mak)m(e)f(it) -f(p)s(ossible)e(to)k(reclaim)d(the)236 1073 y(no)s(de)f(in)f(the)i -(next)f(garbage)i(collection.)236 1336 y Fo(Return)j(v)-6 -b(alue)p 236 1390 V 236 1503 a Fn(The)30 b(BDD)i(no)s(de)d -Fm(r)p Fn(.)236 1766 y Fo(See)35 b(also)p 236 1820 V -236 1933 a Fn(b)s(dd)p 397 1933 28 4 v 31 w(addref)p -236 2266 3544 12 v 236 2379 a Fo(b)s(dd)p 419 2379 32 -4 v 38 w(disable)p 771 2379 V 38 w(reorder)96 b Fn({)30 -b(Disable)g(automatic)h(reordering)p 236 2434 3544 12 -v 236 2638 a Fm(void)47 b(bdd_disable_reorder\(void)o(\))236 -2863 y Fo(Description)p 236 2918 3544 5 v 236 3031 a -Fn(Disables)29 b(automatic)i(reordering)e(un)m(til)g -Fm(bdd)p 1823 3031 29 4 v 33 w(enable)p 2144 3031 V 33 -w(reorder)f Fn(is)h(called.)40 b(Reordering)29 b(is)g(enabled)236 -3143 y(b)m(y)h(default)g(as)h(so)s(on)f(as)g(an)m(y)h(v)-5 -b(ariable)29 b(blo)s(c)m(ks)h(ha)m(v)m(e)i(b)s(een)d(de\014ned.)236 -3407 y Fo(See)35 b(also)p 236 3461 3544 5 v 236 3574 -a Fn(b)s(dd)p 397 3574 28 4 v 31 w(enable)p 681 3574 -V 32 w(reorder)p 236 3907 3544 12 v 236 4020 a Fo(b)s(dd)p -419 4020 32 4 v 38 w(done)61 b Fn({)31 b(resets)g(the)f(b)s(dd)e(pac)m -(k)-5 b(age)p 236 4074 3544 12 v 236 4279 a Fm(void)47 -b(bdd_done\(void\))236 4504 y Fo(Description)p 236 4558 -3544 5 v 236 4671 a Fn(This)37 b(function)g(frees)h(all)g(memory)g -(used)f(b)m(y)i(the)f(b)s(dd)f(pac)m(k)-5 b(age)40 b(and)e(resets)h -(the)f(pac)m(k)-5 b(age)41 b(to)e(it's)236 4784 y(initial)28 -b(state.)236 5047 y Fo(See)35 b(also)p 236 5101 V 236 -5214 a Fn(b)s(dd)p 397 5214 28 4 v 31 w(init)1962 5989 -y(32)p eop -%%Page: 33 41 -33 40 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(enable)p 749 196 V 37 w(reorder)96 b -Fn({)31 b(Enables)e(automatic)j(reordering)p 236 250 -3544 12 v 236 455 a Fm(void)47 b(bdd_enable_reorder\(void\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Re-enables)31 -b(reordering)e(after)i(a)f(call)g(to)h Fm(bdd)p 1846 -847 29 4 v 34 w(disable)p 2216 847 V 32 w(reorder)p Fn(.)236 -1110 y Fo(See)k(also)p 236 1164 3544 5 v 236 1277 a Fn(b)s(dd)p -397 1277 28 4 v 31 w(disable)p 703 1277 V 31 w(reorder)p -236 1610 3544 12 v 236 1723 a Fo(b)s(dd)p 419 1723 32 -4 v 38 w(error)p 686 1723 V 38 w(ho)s(ok)96 b Fn({)31 -b(set)g(a)g(handler)d(for)i(error)g(conditions)p 236 -1777 3544 12 v 236 1982 a Fm(bddinthandler)44 b -(bdd_error_hook\(bddinthandl)o(er)d(handler\))236 2207 -y Fo(Description)p 236 2262 3544 5 v 236 2374 a Fn(Whenev)m(er)35 -b(an)e(error)g(o)s(ccurs)h(in)e(the)i(b)s(dd)d(pac)m(k)-5 -b(age)36 b(a)e(test)h(is)d(done)i(to)g(see)g(if)f(an)g(error)h(handler) -d(is)236 2487 y(supplied)k(b)m(y)j(the)h(user)f(and)f(if)h(suc)m(h)g -(exists)g(then)g(it)g(will)d(b)s(e)j(called)f(with)h(an)g(error)g(co)s -(de)g(in)f(the)236 2600 y(v)-5 b(ariable)29 b Fm(errcode)p -Fn(.)38 b(The)30 b(handler)d(ma)m(y)k(then)e(prin)m(t)g(an)m(y)h -(usefull)d(information)h(and)h(return)g(or)h(exit)236 -2713 y(afterw)m(ards.)327 2826 y(This)h(function)h(sets)h(the)g -(handler)e(to)j(b)s(e)e Fm(handler)p Fn(.)47 b(If)32 -b(a)h Fm(NULL)f Fn(argumen)m(t)h(is)f(supplied)e(then)j(no)236 -2939 y(calls)26 b(are)h(made)f(when)g(an)g(error)h(o)s(ccurs.)39 -b(P)m(ossible)25 b(error)h(co)s(des)h(are)g(found)e(in)g -Fm(bdd.h)p Fn(.)38 b(The)26 b(default)236 3052 y(handler)j(is)g -Fm(bdd)p 806 3052 29 4 v 34 w(default)p 1176 3052 V 32 -w(errhandler)f Fn(whic)m(h)h(will)f(use)i Fm(exit\(\))e -Fn(to)j(terminate)g(the)f(program.)327 3165 y(An)m(y)h(handler)d -(should)g(b)s(e)i(de\014ned)f(lik)m(e)h(this:)236 3352 -y Fm(void)47 b(my_error_handler\(int)42 b(errcode\))236 -3465 y({)379 3578 y(...)236 3691 y(})236 4029 y Fo(Return)35 -b(v)-6 b(alue)p 236 4083 3544 5 v 236 4196 a Fn(The)30 -b(previous)f(handler)236 4459 y Fo(See)35 b(also)p 236 -4514 V 236 4626 a Fn(b)s(dd)p 397 4626 28 4 v 31 w(errstring)1962 -5989 y(33)p eop -%%Page: 34 42 -34 41 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(errstring)96 b Fn({)31 b(con)m(v)m(erts)g(an)g(error)f -(co)s(de)g(to)h(a)g(string)p 236 250 3544 12 v 236 455 -a Fm(const)47 b(char)f(*bdd_errstring\(int)d(errorcode\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Con)m(v)m(erts)25 -b(a)g(negativ)m(e)g(error)f(co)s(de)g Fm(errorcode)e -Fn(to)j(a)f(descriptiv)m(e)g(string)f(that)h(can)h(b)s(e)f(used)f(for)h -(error)236 960 y(handling.)236 1223 y Fo(Return)35 b(v)-6 -b(alue)p 236 1277 V 236 1390 a Fn(An)30 b(error)g(description)f(string) -g(if)g Fm(e)h Fn(is)g(kno)m(wn,)g(otherwise)g Fm(NULL)p -Fn(.)236 1653 y Fo(See)35 b(also)p 236 1707 V 236 1820 -a Fn(b)s(dd)p 397 1820 28 4 v 31 w(err)p 540 1820 V 32 -w(ho)s(ok)p 236 2154 3544 12 v 236 2266 a Fo(b)s(dd)p -419 2266 32 4 v 38 w(exist)95 b Fn({)31 b(existen)m(tial)f(quan)m -(ti\014cation)g(of)g(v)-5 b(ariables)p 236 2321 3544 -12 v 236 2526 a Fm(BDD)47 b(bdd_exist\(BDD)d(r,)j(BDD)g(var\))236 -2751 y Fo(Description)p 236 2805 3544 5 v 236 2918 a -Fn(Remo)m(v)m(es)32 b(all)e(o)s(ccurences)g(in)f Fm(r)h -Fn(of)h(v)-5 b(ariables)29 b(in)g(the)i(set)f Fm(var)g -Fn(b)m(y)g(existen)m(tial)g(quan)m(ti\014cation.)236 -3181 y Fo(Return)35 b(v)-6 b(alue)p 236 3235 V 236 3348 -a Fn(The)30 b(quan)m(ti\014ed)f(BDD.)236 3611 y Fo(See)35 -b(also)p 236 3665 V 236 3778 a Fn(b)s(dd)p 397 3778 28 -4 v 31 w(forall,)29 b(b)s(dd)p 844 3778 V 31 w(unique,)g(b)s(dd)p -1352 3778 V 31 w(mak)m(eset)p 236 4129 3544 12 v 236 -4242 a Fo(b)s(dd)p 419 4242 32 4 v 38 w(extv)-6 b(arn)m(um)95 -b Fn({)31 b(add)e(extra)i(BDD)h(v)-5 b(ariables)p 236 -4296 3544 12 v 236 4501 a Fm(int)47 b(bdd_extvarnum\(int)c(num\))236 -4726 y Fo(Description)p 236 4780 3544 5 v 236 4893 a -Fn(Extends)30 b(the)h(curren)m(t)f(n)m(um)m(b)s(er)f(of)h(allo)s(cated) -h(BDD)g(v)-5 b(ariables)29 b(with)g Fm(num)h Fn(extra)h(v)-5 -b(ariables.)236 5156 y Fo(Return)35 b(v)-6 b(alue)p 236 -5211 V 236 5323 a Fn(The)30 b(old)g(n)m(um)m(b)s(er)f(of)h(allo)s -(cated)h(v)-5 b(ariables)29 b(or)h(a)h(negativ)m(e)g(error)f(co)s(de.) -236 5587 y Fo(See)35 b(also)p 236 5641 V 236 5754 a Fn(b)s(dd)p -397 5754 28 4 v 31 w(setv)-5 b(arn)m(um,)30 b(b)s(dd)p -1049 5754 V 31 w(ith)m(v)-5 b(ar,)30 b(b)s(dd)p 1524 -5754 V 31 w(nith)m(v)-5 b(ar)1962 5989 y(34)p eop -%%Page: 35 43 -35 42 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(false)95 b Fn({)31 b(returns)e(the)i(constan)m(t)h -(false)e(b)s(dd)p 236 250 3544 12 v 236 455 a Fm(BDD)47 -b(bdd_false\(void\))236 680 y Fo(Description)p 236 734 -3544 5 v 236 847 a Fn(This)39 b(function)g(returns)g(the)h(constan)m(t) -i(false)e(b)s(dd)e(and)h(can)i(freely)f(b)s(e)f(used)h(together)h(with) -e(the)236 960 y Fm(bddtrue)29 b Fn(and)g Fm(bddfalse)f -Fn(constan)m(ts.)236 1223 y Fo(Return)35 b(v)-6 b(alue)p -236 1277 V 236 1390 a Fn(The)30 b(constan)m(t)i(false)e(b)s(dd)236 -1653 y Fo(See)35 b(also)p 236 1707 V 236 1820 a Fn(b)s(dd)p -397 1820 28 4 v 31 w(true,)30 b(b)s(ddtrue,)f(b)s(ddfalse)p -236 2171 3544 12 v 236 2284 a Fo(b)s(dd)p 419 2284 32 -4 v 38 w(\014le)p 592 2284 V 38 w(ho)s(ok)96 b Fn({)31 -b(Sp)s(eci\014es)d(a)j(prin)m(ting)d(callbac)m(k)j(handler)p -236 2338 3544 12 v 236 2543 a Fm(bddfilehandler)44 b -(bdd_file_hook\(bddfilehand)o(ler)d(handler\))236 2768 -y Fo(Description)p 236 2822 3544 5 v 236 2935 a Fn(A)23 -b(prin)m(ting)e(callbac)m(k)i(handler)d(for)j(use)f(with)g(BDDs)i(is)e -(used)f(to)j(con)m(v)m(ert)g(the)f(BDD)h(v)-5 b(ariable)22 -b(n)m(um)m(b)s(er)236 3048 y(in)m(to)34 b(something)e(readable)h(b)m(y) -h(the)f(end)g(user.)49 b(T)m(ypically)31 b(the)j(handler)e(will)e(prin) -m(t)i(a)i(string)e(name)236 3161 y(instead)e(of)g(the)h(n)m(um)m(b)s -(er.)39 b(A)31 b(handler)d(could)i(lo)s(ok)g(lik)m(e)f(this:)236 -3349 y Fm(void)47 b(printhandler\(FILE)c(*o,)k(int)g(var\))236 -3462 y({)379 3575 y(extern)f(char)h(**names;)379 3687 -y(fprintf\(o,)e("\045s",)i(names[var]\);)236 3800 y(})236 -3988 y Fn(The)30 b(handler)f(can)h(then)g(b)s(e)g(passed)g(to)h(BuDDy)g -(lik)m(e)f(this:)39 b Fm(bdd)p 2510 3988 29 4 v 34 w(file)p -2736 3988 V 33 w(hook\(printhandler\))p Fn(.)327 4101 -y(No)33 b(default)e(handler)g(is)g(supplied.)43 b(The)32 -b(argumen)m(t)h Fm(handler)d Fn(ma)m(y)j(b)s(e)e(NULL)i(if)e(no)h -(handler)e(is)236 4214 y(needed.)236 4477 y Fo(Return)35 -b(v)-6 b(alue)p 236 4531 3544 5 v 236 4644 a Fn(The)30 -b(old)g(handler)236 4907 y Fo(See)35 b(also)p 236 4962 -V 236 5074 a Fn(b)s(dd)p 397 5074 28 4 v 31 w(prin)m(tset,)30 -b(b)s(dd)p 946 5074 V 31 w(strm)p 1160 5074 V 32 w(ho)s(ok,)g(fdd)p -1569 5074 V 32 w(\014le)p 1718 5074 V 32 w(ho)s(ok)1962 -5989 y(35)p eop -%%Page: 36 44 -36 43 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(forall)96 b Fn({)30 b(univ)m(ersal)f(quan)m -(ti\014cation)h(of)g(v)-5 b(ariables)p 236 250 3544 12 -v 236 455 a Fm(BDD)47 b(bdd_forall\(BDD)d(r,)j(BDD)g(var\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Remo)m(v)m(es)32 -b(all)e(o)s(ccurences)g(in)f Fm(r)h Fn(of)h(v)-5 b(ariables)29 -b(in)g(the)i(set)f Fm(var)g Fn(b)m(y)g(univ)m(ersal)f(quan)m -(ti\014cation.)236 1110 y Fo(Return)35 b(v)-6 b(alue)p -236 1164 V 236 1277 a Fn(The)30 b(quan)m(ti\014ed)f(BDD.)236 -1540 y Fo(See)35 b(also)p 236 1595 V 236 1707 a Fn(b)s(dd)p -397 1707 28 4 v 31 w(exist,)30 b(b)s(dd)p 824 1707 V -31 w(unique,)f(b)s(dd)p 1332 1707 V 31 w(mak)m(eset)p -236 2058 3544 12 v 236 2171 a Fo(b)s(dd)p 419 2171 32 -4 v 38 w(freepair)95 b Fn({)31 b(frees)f(a)h(table)f(of)h(pairs)p -236 2225 3544 12 v 236 2430 a Fm(void)47 b(bdd_freepair\(bddPair)42 -b(*pair\))236 2655 y Fo(Description)p 236 2709 3544 5 -v 236 2822 a Fn(F)-8 b(rees)32 b(the)e(table)g(of)h(pairs)e -Fm(pair)g Fn(that)i(has)f(b)s(een)g(allo)s(cated)g(b)m(y)g(a)h(call)f -(to)h Fm(bdd)p 2992 2822 29 4 v 34 w(newpair)p Fn(.)236 -3086 y Fo(See)k(also)p 236 3140 3544 5 v 236 3253 a Fn(b)s(dd)p -397 3253 28 4 v 31 w(replace,)c(b)s(dd)p 918 3253 V 30 -w(newpair,)e(b)s(dd)p 1473 3253 V 31 w(setpair,)h(b)s(dd)p -1984 3253 V 31 w(resetpair)p 236 3604 3544 12 v 236 3717 -a Fo(b)s(dd)p 419 3717 32 4 v 38 w(fullsatone)96 b Fn({)30 -b(\014nds)f(one)i(satisfying)e(v)-5 b(ariable)29 b(assignmen)m(t)p -236 3771 3544 12 v 236 3976 a Fm(BDD)47 b(bdd_fullsatone\(BDD)c(r\))236 -4201 y Fo(Description)p 236 4255 3544 5 v 236 4368 a -Fn(Finds)29 b(a)i(BDD)h(with)e(exactly)h(one)g(v)-5 b(ariable)30 -b(at)h(all)f(lev)m(els.)41 b(This)29 b(BDD)j(implies)c -Fm(r)i Fn(and)g(is)g(not)h(false)236 4481 y(unless)e -Fm(r)h Fn(is)f(false.)236 4744 y Fo(Return)35 b(v)-6 -b(alue)p 236 4798 V 236 4911 a Fn(The)30 b(result)f(of)i(the)f(op)s -(eration.)236 5174 y Fo(See)35 b(also)p 236 5228 V 236 -5341 a Fn(b)s(dd)p 397 5341 28 4 v 31 w(allsat)30 b(b)s(dd)p -827 5341 V 31 w(satone,)h(b)s(dd)p 1322 5341 V 31 w(satoneset,)h(b)s -(dd)p 1929 5341 V 31 w(satcoun)m(t,)g(b)s(dd)p 2508 5341 -V 31 w(satcoun)m(tln)1962 5989 y(36)p eop -%%Page: 37 45 -37 44 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(gb)s(c)p 616 196 V 38 w(ho)s(ok)97 b -Fn({)30 b(set)h(a)g(handler)d(for)j(garbage)g(collections)p -236 250 3544 12 v 236 455 a Fm(bddgbchandler)44 b -(bdd_gbc_hook\(bddgbchandler)d(handler\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Whenev)m(er)26 b(a)f(garbage)h -(collection)e(is)g(required,)g(a)h(test)h(is)e(done)g(to)i(see)f(if)f -(a)h(handler)e(for)h(this)g(ev)m(en)m(t)i(is)236 960 -y(supplied)g(b)m(y)j(the)g(user)f(and)g(if)g(suc)m(h)h(exists)g(then)f -(it)h(is)f(called,)g(b)s(oth)h(b)s(efore)f(and)h(after)g(the)g(garbage) -236 1073 y(collection)38 b(tak)m(es)j(places.)65 b(This)36 -b(is)i(indicated)f(b)m(y)i(an)f(in)m(teger)h(\015ag)g -Fm(pre)f Fn(passed)g(to)h(the)g(handler,)236 1186 y(whic)m(h)29 -b(will)f(b)s(e)i(one)g(b)s(efore)g(garbage)i(collection)e(and)g(zero)h -(after)g(garbage)h(collection.)327 1298 y(This)f(function)h(sets)h(the) -g(handler)e(to)j(b)s(e)e Fm(handler)p Fn(.)47 b(If)32 -b(a)h Fm(NULL)f Fn(argumen)m(t)h(is)f(supplied)e(then)j(no)236 -1411 y(calls)28 b(are)h(made)g(when)f(a)h(garbage)h(collection)e(tak)m -(es)i(place.)40 b(The)29 b(argumen)m(t)g Fm(pre)f Fn(indicates)f(pre)h -(vs.)236 1524 y(p)s(ost)36 b(garbage)i(collection)e(and)f(the)i -(argumen)m(t)g Fm(stat)e Fn(con)m(tains)h(information)f(ab)s(out)h(the) -g(garbage)236 1637 y(collection.)41 b(The)29 b(default)h(handler)f(is)g -Fm(bdd)p 1738 1637 29 4 v 34 w(default)p 2108 1637 V -32 w(gbchandler)p Fn(.)327 1750 y(An)m(y)i(handler)d(should)g(b)s(e)i -(de\014ned)f(lik)m(e)h(this:)236 1938 y Fm(void)47 b -(my_gbc_handler\(int)c(pre,)j(bddGbcStat)f(*stat\))236 -2051 y({)379 2164 y(...)236 2276 y(})236 2614 y Fo(Return)35 -b(v)-6 b(alue)p 236 2669 3544 5 v 236 2781 a Fn(The)30 -b(previous)f(handler)236 3045 y Fo(See)35 b(also)p 236 -3099 V 236 3212 a Fn(b)s(dd)p 397 3212 28 4 v 31 w(resize)p -646 3212 V 33 w(ho)s(ok,)30 b(b)s(dd)p 1082 3212 V 31 -w(reorder)p 1397 3212 V 32 w(ho)s(ok)p 236 3563 3544 -12 v 236 3676 a Fo(b)s(dd)p 419 3676 32 4 v 38 w(getallo)s(cn)m(um)95 -b Fn({)31 b(get)g(the)g(n)m(um)m(b)s(er)e(of)i(allo)s(cated)f(no)s(des) -p 236 3730 3544 12 v 236 3935 a Fm(int)47 b(bdd_getallocnum\(void\))236 -4160 y Fo(Description)p 236 4214 3544 5 v 236 4327 a -Fn(Returns)40 b(the)h(n)m(um)m(b)s(er)e(of)i(no)s(des)e(curren)m(tly)h -(allo)s(cated.)71 b(This)39 b(includes)f(b)s(oth)i(dead)g(and)g(activ)m -(e)236 4440 y(no)s(des.)236 4703 y Fo(Return)35 b(v)-6 -b(alue)p 236 4757 V 236 4870 a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(no)s -(des.)236 5133 y Fo(See)k(also)p 236 5187 V 236 5300 -a Fn(b)s(dd)p 397 5300 28 4 v 31 w(getno)s(den)m(um,)30 -b(b)s(dd)p 1124 5300 V 31 w(setmaxno)s(den)m(um)1962 -5989 y(37)p eop -%%Page: 38 46 -38 45 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(getno)s(den)m(um)95 b Fn({)31 b(get)g(the)g(n)m(um)m(b) -s(er)e(of)h(activ)m(e)i(no)s(des)e(in)f(use)p 236 250 -3544 12 v 236 455 a Fm(int)47 b(bdd_getnodenum\(void\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Returns)32 -b(the)g(n)m(um)m(b)s(er)f(of)h(no)s(des)g(in)f(the)h(no)s(detable)g -(that)g(are)h(curren)m(tly)e(in)g(use.)46 b(Note)34 b(that)f(dead)236 -960 y(no)s(des)d(that)h(ha)m(v)m(e)g(not)g(b)s(een)f(reclaimed)f(y)m -(et)i(b)m(y)g(a)f(garbage)i(collection)e(are)h(coun)m(ted)g(as)f(activ) -m(e.)236 1223 y Fo(Return)35 b(v)-6 b(alue)p 236 1277 -V 236 1390 a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(no)s(des.)236 -1653 y Fo(See)k(also)p 236 1707 V 236 1820 a Fn(b)s(dd)p -397 1820 28 4 v 31 w(getallo)s(cn)m(um,)30 b(b)s(dd)p -1119 1820 V 31 w(setmaxno)s(den)m(um)p 236 2171 3544 -12 v 236 2284 a Fo(b)s(dd)p 419 2284 32 4 v 38 w(getreorder)p -933 2284 V 38 w(metho)s(d)94 b Fn({)31 b(F)-8 b(etc)m(h)32 -b(the)f(curren)m(t)f(reorder)g(metho)s(d)p 236 2338 3544 -12 v 236 2543 a Fm(int)47 b(bdd_getreorder_method\(voi)o(d\))236 -2768 y Fo(Description)p 236 2822 3544 5 v 236 2935 a -Fn(Returns)30 b(the)g(curren)m(t)g(reorder)g(metho)s(d)g(as)h -(de\014ned)e(b)m(y)h Fm(bdd)p 2400 2935 29 4 v 34 w(autoreorder)p -Fn(.)236 3198 y Fo(See)35 b(also)p 236 3253 3544 5 v -236 3366 a Fn(b)s(dd)p 397 3366 28 4 v 31 w(reorder,)30 -b(b)s(dd)p 923 3366 V 31 w(getreorder)p 1358 3366 V 33 -w(times)p 236 3717 3544 12 v 236 3829 a Fo(b)s(dd)p 419 -3829 32 4 v 38 w(getreorder)p 933 3829 V 38 w(times)94 -b Fn({)31 b(F)-8 b(etc)m(h)32 b(the)f(curren)m(t)f(n)m(um)m(b)s(er)f -(of)i(allo)m(w)m(ed)f(reorderings)p 236 3884 3544 12 -v 236 4089 a Fm(int)47 b(bdd_getreorder_times\(void)o(\))236 -4313 y Fo(Description)p 236 4368 3544 5 v 236 4481 a -Fn(Returns)40 b(the)i(curren)m(t)e(n)m(um)m(b)s(er)g(of)h(allo)m(w)m -(ed)g(reorderings)f(left.)72 b(This)40 b(v)-5 b(alue)40 -b(can)h(b)s(e)g(de\014ned)f(b)m(y)236 4594 y Fm(bdd)p -386 4594 29 4 v 34 w(autoreorder)p 948 4594 V 31 w(times)p -Fn(.)236 4857 y Fo(See)35 b(also)p 236 4911 3544 5 v -236 5024 a Fn(b)s(dd)p 397 5024 28 4 v 31 w(reorder)p -712 5024 V 32 w(times,)30 b(b)s(dd)p 1168 5024 V 31 w(getreorder)p -1603 5024 V 34 w(metho)s(d)1962 5989 y(38)p eop -%%Page: 39 47 -39 46 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(high)96 b Fn({)31 b(gets)g(the)g(true)f(branc)m(h)g(of) -g(a)h(b)s(dd)p 236 250 3544 12 v 236 455 a Fm(BDD)47 -b(bdd_high\(BDD)e(r\))236 680 y Fo(Description)p 236 -734 3544 5 v 236 847 a Fn(Gets)31 b(the)g(true)f(branc)m(h)g(of)h(the)f -(b)s(dd)e Fm(r)p Fn(.)236 1110 y Fo(Return)35 b(v)-6 -b(alue)p 236 1164 V 236 1277 a Fn(The)30 b(b)s(dd)e(of)j(the)g(true)f -(branc)m(h)236 1540 y Fo(See)35 b(also)p 236 1595 V 236 -1707 a Fn(b)s(dd)p 397 1707 28 4 v 31 w(lo)m(w)p 236 -2041 3544 12 v 236 2154 a Fo(b)s(dd)p 419 2154 32 4 v -38 w(imp)95 b Fn({)30 b(The)g(logical)g('implication')e(b)s(et)m(w)m -(een)j(t)m(w)m(o)h(BDDs)p 236 2208 3544 12 v 236 2413 -a Fm(BDD)47 b(bdd_imp\(BDD)e(l,)i(BDD)g(r\))236 2638 -y Fo(Description)p 236 2692 3544 5 v 236 2805 a Fn(This)29 -b(a)i(wrapp)s(er)d(that)j(calls)f Fm(bdd)p 1426 2805 -29 4 v 33 w(apply\(l,r,bddop)p 2179 2805 V 30 w(imp\))p -Fn(.)236 3068 y Fo(Return)35 b(v)-6 b(alue)p 236 3122 -3544 5 v 236 3235 a Fn(The)30 b(logical)g('implication')e(of)j -Fm(l)f Fn(and)g Fm(r)g Fn(\()p Fj(l)d Fc(\))e Fj(r)s -Fn(\).)236 3498 y Fo(See)35 b(also)p 236 3552 V 236 3665 -a Fn(b)s(dd)p 397 3665 28 4 v 31 w(apply)-8 b(,)30 b(b)s(dd)p -852 3665 V 30 w(biimp)1962 5989 y(39)p eop -%%Page: 40 48 -40 47 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(init)95 b Fn({)31 b(initializes)d(the)i(BDD)i(pac)m(k) --5 b(age)p 236 250 3544 12 v 236 455 a Fm(int)47 b(bdd_init\(int)e -(nodesize,)g(int)i(cachesize\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(This)39 b(function)g(initiates)g(the)i(b) -s(dd)d(pac)m(k)-5 b(age)43 b(and)c Ff(must)i Fn(b)s(e)f(called)g(b)s -(efore)g(an)m(y)h(b)s(dd)d(op)s(erations)236 960 y(are)g(done.)60 -b(The)37 b(argumen)m(t)g Fm(nodesize)e Fn(is)h(the)h(initial)e(n)m(um)m -(b)s(er)g(of)j(no)s(des)e(in)f(the)j(no)s(detable)e(and)236 -1073 y Fm(cachesize)28 b Fn(is)i(the)g(\014xed)g(size)h(of)f(the)h(in)m -(ternal)e(cac)m(hes.)43 b(T)m(ypical)29 b(v)-5 b(alues)30 -b(for)g Fm(nodesize)e Fn(are)j(10000)236 1186 y(no)s(des)h(for)h(small) -f(test)h(examples)g(and)f(up)g(to)i(1000000)i(no)s(des)c(for)h(large)g -(examples.)48 b(A)33 b(cac)m(he)i(size)236 1298 y(of)h(10000)i(seems)e -(to)g(w)m(ork)g(go)s(o)s(d)g(ev)m(en)g(for)g(large)f(examples,)i(but)e -(lesser)g(v)-5 b(alues)35 b(should)f(do)h(it)h(for)236 -1411 y(smaller)29 b(examples.)327 1524 y(The)c(n)m(um)m(b)s(er)f(of)h -(cac)m(he)i(en)m(tries)e(can)h(also)f(b)s(e)g(set)h(to)g(dep)s(end)d -(on)j(the)f(size)g(of)h(the)f(no)s(detable)g(using)236 -1637 y(a)31 b(call)f(to)h Fm(bdd)p 740 1637 29 4 v 33 -w(setcacheratio)p Fn(.)327 1750 y(The)36 b(initial)d(n)m(um)m(b)s(er)i -(of)i(no)s(des)e(is)g(not)i(critical)e(for)h(an)m(y)h(b)s(dd)d(op)s -(eration)h(as)i(the)f(table)h(will)c(b)s(e)236 1863 y(resized)g(whenev) -m(er)g(there)g(are)h(to)f(few)g(no)s(des)g(left)f(after)i(a)g(garbage)g -(collection.)48 b(But)34 b(it)e(do)s(es)h(ha)m(v)m(e)236 -1976 y(some)e(impact)f(on)g(the)h(e\016cency)g(of)g(the)f(op)s -(erations.)236 2239 y Fo(Return)35 b(v)-6 b(alue)p 236 -2293 3544 5 v 236 2406 a Fn(If)30 b(no)g(errors)g(o)s(ccur)g(then)h(0)f -(is)g(returned,)f(otherwise)h(a)h(negativ)m(e)g(error)f(co)s(de.)236 -2669 y Fo(See)35 b(also)p 236 2724 V 236 2837 a Fn(b)s(dd)p -397 2837 28 4 v 31 w(done,)30 b(b)s(dd)p 826 2837 V 31 -w(resize)p 1075 2837 V 33 w(ho)s(ok)p 236 3187 3544 12 -v 236 3300 a Fo(b)s(dd)p 419 3300 32 4 v 38 w(isrunning)96 -b Fn({)31 b(test)g(whether)f(the)h(pac)m(k)-5 b(age)32 -b(is)e(started)g(or)h(not)p 236 3355 3544 12 v 236 3559 -a Fm(void)47 b(bdd_isrunning\(void\))236 3784 y Fo(Description)p -236 3839 3544 5 v 236 3952 a Fn(This)29 b(function)g(tests)i(the)g(in)m -(ternal)e(state)i(of)g(the)f(pac)m(k)-5 b(age)33 b(and)d(returns)f(a)i -(status.)236 4215 y Fo(Return)k(v)-6 b(alue)p 236 4269 -V 236 4382 a Fn(1)31 b(\(true\))g(if)e(the)i(pac)m(k)-5 -b(age)32 b(has)e(b)s(een)g(started,)h(otherwise)f(0.)236 -4645 y Fo(See)35 b(also)p 236 4699 V 236 4812 a Fn(b)s(dd)p -397 4812 28 4 v 31 w(init,)29 b(b)s(dd)p 776 4812 V 31 -w(done)1962 5989 y(40)p eop -%%Page: 41 49 -41 48 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(ite)95 b Fn({)31 b(if-then-else)e(op)s(erator)p -236 250 3544 12 v 236 455 a Fm(BDD)47 b(bdd_ite\(BDD)e(f,)i(BDD)g(g,)g -(BDD)g(h\))236 680 y Fo(Description)p 236 734 3544 5 -v 236 847 a Fn(Calculates)31 b(the)h(BDD)g(for)f(the)h(expression)e(\() -p Fj(f)g Fc(^)21 b Fj(g)s Fn(\))g Fc(_)g Fn(\()p Fc(:)p -Fj(f)30 b Fc(^)20 b Fj(h)p Fn(\))32 b(more)g(e\016cien)m(tly)f(than)g -(doing)f(the)236 960 y(three)39 b(op)s(erations)e(separately)-8 -b(.)66 b Fm(bdd)p 1562 960 29 4 v 33 w(ite)38 b Fn(can)g(also)g(b)s(e)g -(used)g(for)g(conjunction,)h(disjunction)d(and)236 1073 -y(an)m(y)31 b(other)g(b)s(o)s(olean)e(op)s(erator,)i(but)f(is)f(not)i -(as)f(e\016cien)m(t)h(for)f(the)h(binary)d(and)i(unary)f(op)s -(erations.)236 1336 y Fo(Return)35 b(v)-6 b(alue)p 236 -1390 3544 5 v 236 1503 a Fn(The)30 b(BDD)i(for)e(\()p -Fj(f)g Fc(^)19 b Fj(g)s Fn(\))j Fc(_)d Fn(\()p Fc(:)p -Fj(f)30 b Fc(^)20 b Fj(h)p Fn(\))236 1766 y Fo(See)35 -b(also)p 236 1820 V 236 1933 a Fn(b)s(dd)p 397 1933 28 -4 v 31 w(apply)p 236 2284 3544 12 v 236 2397 a Fo(b)s(dd)p -419 2397 32 4 v 38 w(ith)m(v)-6 b(ar)96 b Fn({)30 b(returns)f(a)i(b)s -(dd)e(represen)m(ting)g(the)i(I'th)f(v)-5 b(ariable)p -236 2451 3544 12 v 236 2656 a Fm(BDD)47 b(bdd_ithvar\(int)d(var\))236 -2881 y Fo(Description)p 236 2935 3544 5 v 236 3048 a -Fn(This)26 b(function)h(is)g(used)g(to)i(get)g(a)f(b)s(dd)e(represen)m -(ting)i(the)g(I'th)g(v)-5 b(ariable)26 b(\(one)j(no)s(de)e(with)g(the)h -(c)m(hilds)236 3161 y(true)38 b(and)f(false\).)62 b(The)37 -b(requested)g(v)-5 b(ariable)37 b(m)m(ust)g(b)s(e)g(in)f(the)i(range)g -(de\014ne)f(b)m(y)g Fm(bdd)p 3322 3161 29 4 v 34 w(setvarnum)236 -3274 y Fn(starting)e(with)f(0)i(b)s(eing)e(the)i(\014rst.)55 -b(F)-8 b(or)36 b(ease)g(of)g(use)f(then)g(the)g(b)s(dd)f(returned)g -(from)h Fm(bdd)p 3466 3274 V 33 w(ithvar)236 3387 y Fn(do)s(es)i(not)g -(ha)m(v)m(e)i(to)f(b)s(e)e(referenced)h(coun)m(ted)h(with)e(a)h(call)g -(to)h Fm(bdd)p 2606 3387 V 33 w(addref)p Fn(.)60 b(The)36 -b(initial)f(v)-5 b(ariable)236 3500 y(order)29 b(is)f(de\014ned)f(b)m -(y)i(the)g(the)g(index)f Fm(var)g Fn(that)h(also)g(de\014nes)f(the)h(p) -s(osition)e(in)h(the)h(v)-5 b(ariable)28 b(order)g({)236 -3613 y(v)-5 b(ariables)29 b(with)g(lo)m(w)m(er)i(indecies)e(are)i(b)s -(efore)f(those)g(with)g(higher)f(indecies.)236 3876 y -Fo(Return)35 b(v)-6 b(alue)p 236 3930 3544 5 v 236 4043 -a Fn(The)30 b(I'th)g(v)-5 b(ariable)29 b(on)i(succes,)g(otherwise)f -(the)g(constan)m(t)i(false)e(b)s(dd)236 4306 y Fo(See)35 -b(also)p 236 4360 V 236 4473 a Fn(b)s(dd)p 397 4473 28 -4 v 31 w(setv)-5 b(arn)m(um,)30 b(b)s(dd)p 1049 4473 -V 31 w(nith)m(v)-5 b(ar,)30 b(b)s(ddtrue,)e(b)s(ddfalse)1962 -5989 y(41)p eop -%%Page: 42 50 -42 49 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(lev)m(el2v)-6 b(ar)96 b Fn({)31 b(F)-8 -b(etc)m(h)32 b(the)f(v)-5 b(ariable)29 b(n)m(um)m(b)s(er)g(of)h(a)h(sp) -s(eci\014c)e(lev)m(el)p 236 250 3544 12 v 236 455 a Fm(int)47 -b(bdd_level2var\(int)c(level\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Returns)30 b(the)g(v)-5 -b(ariable)29 b(placed)h(at)h(p)s(osition)e Fm(level)g -Fn(in)g(the)h(curren)m(t)h(v)-5 b(ariable)29 b(order.)236 -1110 y Fo(See)35 b(also)p 236 1164 V 236 1277 a Fn(b)s(dd)p -397 1277 28 4 v 31 w(reorder,)30 b(b)s(dd)p 923 1277 -V 31 w(v)-5 b(ar2lev)m(el)p 236 1628 3544 12 v 236 1741 -a Fo(b)s(dd)p 419 1741 32 4 v 38 w(load)96 b Fn({)30 -b(loads)g(a)h(BDD)h(from)d(a)i(\014le)p 236 1795 3544 -12 v 236 2000 a Fm(int)47 b(bdd_fnload\(char)d(*fname,)i(BDD)g(*r\))236 -2113 y(int)h(bdd_load\(FILE)d(*ifile,)i(BDD)h(*r\))236 -2338 y Fo(Description)p 236 2392 3544 5 v 236 2505 a -Fn(Loads)37 b(a)f(BDD)i(from)e(a)g(\014le)g(in)m(to)g(the)g(BDD)i(p)s -(oin)m(ted)d(to)i(b)m(y)f Fm(r)p Fn(.)59 b(The)35 b(\014le)h(can)g -(either)g(b)s(e)g(the)g(\014le)236 2618 y Fm(ifile)e -Fn(whic)m(h)h(m)m(ust)g(b)s(e)h(op)s(ened)e(for)i(reading)f(or)g(the)h -(\014le)f(named)g Fm(fname)g Fn(whic)m(h)f(will)f(b)s(e)i(op)s(ened)236 -2731 y(automatically)30 b(for)h(reading.)327 2844 y(The)k(input)e -(\014le)h(format)h(consists)f(of)h(in)m(tegers)g(arranged)g(in)f(the)h -(follo)m(wing)e(manner.)54 b(First)34 b(the)236 2957 -y(n)m(um)m(b)s(er)d(of)h(no)s(des)g Fj(N)42 b Fn(used)31 -b(b)m(y)h(the)g(BDD)h(and)f(then)g(the)g(n)m(um)m(b)s(er)f(of)h(v)-5 -b(ariables)31 b Fj(V)52 b Fn(allo)s(cated)32 b(and)236 -3070 y(the)j(v)-5 b(ariable)34 b(ordering)g(in)f(use)i(at)g(the)g(time) -g(the)g(BDD)h(w)m(as)f(sa)m(v)m(ed.)56 b(If)34 b Fj(N)45 -b Fn(and)34 b Fj(V)55 b Fn(are)36 b(b)s(oth)e(zero)236 -3182 y(then)27 b(the)g(BDD)h(is)e(either)g(the)h(constan)m(t)h(true)f -(or)g(false)f(BDD,)i(indicated)e(b)m(y)h(a)g(1)g(or)g(a)g(0)g(as)g(the) -g(next)236 3295 y(in)m(teger.)327 3408 y(In)e(an)m(y)h(other)g(case)h -(the)e(next)h Fj(N)36 b Fn(sets)26 b(of)f(4)h(in)m(tegers)g(will)d -(describ)s(e)h(the)i(no)s(des)f(used)g(b)m(y)g(the)h(BDD.)236 -3521 y(Eac)m(h)h(set)f(consists)g(of)g(\014rst)f(the)h(no)s(de)f(n)m -(um)m(b)s(er,)h(then)g(the)g(v)-5 b(ariable)25 b(n)m(um)m(b)s(er)f(and) -i(then)f(the)h(lo)m(w)g(and)236 3634 y(high)j(no)s(des.)327 -3747 y(The)36 b(no)s(des)f Ff(must)i Fn(b)s(e)e(sa)m(v)m(ed)i(in)e(a)i -(order)e(suc)m(h)h(that)h(an)m(y)f(lo)m(w)g(or)g(high)f(no)s(de)g(m)m -(ust)h(b)s(e)g(de\014ned)236 3860 y(b)s(efore)30 b(it)g(is)g(men)m -(tioned.)236 4123 y Fo(Return)35 b(v)-6 b(alue)p 236 -4177 V 236 4290 a Fn(Zero)31 b(on)f(succes,)h(otherwise)f(an)g(error)g -(co)s(de)g(from)g Fm(bdd.h)p Fn(.)236 4553 y Fo(See)35 -b(also)p 236 4608 V 236 4721 a Fn(b)s(dd)p 397 4721 28 -4 v 31 w(sa)m(v)m(e)1962 5989 y(42)p eop -%%Page: 43 51 -43 50 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(lo)m(w)95 b Fn({)31 b(gets)h(the)e(false)g(branc)m(h)g -(of)g(a)h(b)s(dd)p 236 250 3544 12 v 236 455 a Fm(BDD)47 -b(bdd_low\(BDD)e(r\))236 680 y Fo(Description)p 236 734 -3544 5 v 236 847 a Fn(Gets)31 b(the)g(false)f(branc)m(h)g(of)g(the)h(b) -s(dd)d Fm(r)p Fn(.)236 1110 y Fo(Return)35 b(v)-6 b(alue)p -236 1164 V 236 1277 a Fn(The)30 b(b)s(dd)e(of)j(the)g(false)f(branc)m -(h)236 1540 y Fo(See)35 b(also)p 236 1595 V 236 1707 -a Fn(b)s(dd)p 397 1707 28 4 v 31 w(high)p 236 2058 3544 -12 v 236 2171 a Fo(b)s(dd)p 419 2171 32 4 v 38 w(mak)m(eset)94 -b Fn({)31 b(builds)c(a)k(BDD)h(v)-5 b(ariable)29 b(set)i(from)f(an)g -(in)m(teger)h(arra)m(y)p 236 2225 3544 12 v 236 2430 -a Fm(BDD)47 b(bdd_makeset\(int)d(*v,)j(int)g(n\))236 -2655 y Fo(Description)p 236 2709 3544 5 v 236 2822 a -Fn(Reads)23 b(a)f(set)h(of)g(v)-5 b(ariable)21 b(n)m(um)m(b)s(ers)g -(from)h(the)g(in)m(teger)h(arra)m(y)g Fm(v)f Fn(whic)m(h)f(m)m(ust)h -(hold)f(exactly)i Fm(n)f Fn(in)m(tegers)236 2935 y(and)30 -b(then)g(builds)d(a)k(BDD)h(represen)m(ting)d(the)i(v)-5 -b(ariable)29 b(set.)327 3048 y(The)41 b(BDD)i(v)-5 b(ariable)40 -b(set)i(is)f(represen)m(ted)h(as)f(the)h(conjunction)f(of)h(all)e(the)i -(v)-5 b(ariables)40 b(in)g(their)236 3161 y(p)s(ositiv)m(e)32 -b(form)g(and)f(ma)m(y)j(just)d(as)i(w)m(ell)f(b)s(e)f(made)i(that)g(w)m -(a)m(y)g(b)m(y)g(the)f(user.)47 b(The)32 b(user)f(should)g(k)m(eep)236 -3274 y(a)g(reference)g(to)g(the)f(returned)g(BDD)h(instead)f(of)g -(building)d(it)j(ev)m(ery)h(time)f(the)h(set)g(is)e(needed.)236 -3537 y Fo(Return)35 b(v)-6 b(alue)p 236 3591 V 236 3704 -a Fn(A)31 b(BDD)g(v)-5 b(ariable)29 b(set.)236 3968 y -Fo(See)35 b(also)p 236 4022 V 236 4135 a Fn(b)s(dd)p -397 4135 28 4 v 31 w(scanset)1962 5989 y(43)p eop -%%Page: 44 52 -44 51 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(newpair)95 b Fn({)31 b(creates)g(an)g(empt)m(y)g(v)-5 -b(ariable)29 b(pair)g(table)p 236 250 3544 12 v 236 455 -a Fm(bddPair)46 b(*bdd_newpair\(void\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(V)-8 b(ariable)32 b(pairs)g(of)h(the)g(t) -m(yp)s(e)g Fm(bddPair)d Fn(are)k(used)e(in)f Fm(bdd)p -2284 847 29 4 v 34 w(replace)f Fn(to)k(de\014ne)e(whic)m(h)f(v)-5 -b(ariables)32 b(to)236 960 y(replace)g(with)e(other)i(v)-5 -b(ariables.)43 b(This)30 b(function)g(allo)s(cates)i(suc)m(h)f(an)g -(empt)m(y)h(table.)45 b(The)31 b(table)g(can)236 1073 -y(b)s(e)f(freed)g(b)m(y)g(a)h(call)f(to)h Ff(b)-5 b(dd)p -1200 1073 28 4 v 34 w(fr)g(e)g(ep)g(air)p Fn(.)236 1336 -y Fo(Return)35 b(v)-6 b(alue)p 236 1390 3544 5 v 236 -1503 a Fn(Returns)30 b(a)g(new)g(table)h(of)f(pairs.)236 -1766 y Fo(See)35 b(also)p 236 1820 V 236 1933 a Fn(b)s(dd)p -397 1933 28 4 v 31 w(freepair,)30 b(b)s(dd)p 941 1933 -V 30 w(replace,)h(b)s(dd)p 1461 1933 V 31 w(setpair,)f(b)s(dd)p -1972 1933 V 30 w(setpairs)p 236 2284 3544 12 v 236 2397 -a Fo(b)s(dd)p 419 2397 32 4 v 38 w(nith)m(v)-6 b(ar)96 -b Fn({)30 b(returns)g(a)g(b)s(dd)f(represen)m(ting)g(the)i(negation)g -(of)f(the)h(I'th)f(v)-5 b(ariable)p 236 2451 3544 12 -v 236 2656 a Fm(BDD)47 b(bdd_nithvar\(int)d(var\))236 -2881 y Fo(Description)p 236 2935 3544 5 v 236 3048 a -Fn(This)26 b(function)g(is)g(used)h(to)h(get)h(a)e(b)s(dd)f(represen)m -(ting)g(the)i(negation)g(of)f(the)h(I'th)f(v)-5 b(ariable)26 -b(\(one)i(no)s(de)236 3161 y(with)37 b(the)h(c)m(hilds)e(false)h(and)g -(true\).)63 b(The)38 b(requested)f(v)-5 b(ariable)37 -b(m)m(ust)h(b)s(e)f(in)f(the)i(range)h(de\014ne)e(b)m(y)236 -3274 y Fm(bdd)p 386 3274 29 4 v 34 w(setvarnum)24 b Fn(starting)i(with) -f(0)h(b)s(eing)f(the)i(\014rst.)38 b(F)-8 b(or)27 b(ease)h(of)e(use)g -(then)g(the)h(b)s(dd)d(returned)h(from)236 3387 y Fm(bdd)p -386 3387 V 34 w(nithvar)j Fn(do)s(es)i(not)h(ha)m(v)m(e)g(to)h(b)s(e)d -(referenced)i(coun)m(ted)f(with)g(a)g(call)g(to)h Fm(bdd)p -3073 3387 V 34 w(addref)p Fn(.)236 3650 y Fo(Return)k(v)-6 -b(alue)p 236 3704 3544 5 v 236 3817 a Fn(The)30 b(negated)h(I'th)g(v)-5 -b(ariable)29 b(on)h(succes,)h(otherwise)f(the)g(constan)m(t)i(false)e -(b)s(dd)236 4080 y Fo(See)35 b(also)p 236 4135 V 236 -4248 a Fn(b)s(dd)p 397 4248 28 4 v 31 w(setv)-5 b(arn)m(um,)30 -b(b)s(dd)p 1049 4248 V 31 w(ith)m(v)-5 b(ar,)30 b(b)s(ddtrue,)f(b)s -(ddfalse)1962 5989 y(44)p eop -%%Page: 45 53 -45 52 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(no)s(decoun)m(t)96 b Fn({)31 b(coun)m(ts)g(the)g(n)m -(um)m(b)s(er)e(of)h(no)s(des)g(used)f(for)h(a)h(BDD)p -236 250 3544 12 v 236 455 a Fm(int)47 b(bdd_nodecount\(BDD)c(r\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(T)-8 -b(ra)m(v)m(erses)32 b(the)e(BDD)i(and)e(coun)m(ts)h(all)e(distinct)g -(no)s(des)g(that)i(are)g(used)e(for)i(the)f(BDD.)236 -1110 y Fo(Return)35 b(v)-6 b(alue)p 236 1164 V 236 1277 -a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(no)s(des.)236 1540 -y Fo(See)k(also)p 236 1595 V 236 1707 a Fn(b)s(dd)p 397 -1707 28 4 v 31 w(pathcoun)m(t,)c(b)s(dd)p 1041 1707 V -31 w(satcoun)m(t,)h(b)s(dd)p 1620 1707 V 31 w(ano)s(decoun)m(t)p -236 2058 3544 12 v 236 2171 a Fo(b)s(dd)p 419 2171 32 -4 v 38 w(not)95 b Fn({)31 b(negates)h(a)f(b)s(dd)p 236 -2225 3544 12 v 236 2430 a Fm(BDD)47 b(bdd_not\(BDD)e(r\))236 -2655 y Fo(Description)p 236 2709 3544 5 v 236 2822 a -Fn(Negates)38 b(the)d(BDD)i Fm(r)e Fn(b)m(y)g(exc)m(hanging)h(all)e -(references)h(to)h(the)g(zero-terminal)f(with)f(references)i(to)236 -2935 y(the)31 b(one-terminal)e(and)h(vice)g(v)m(ersa.)236 -3198 y Fo(Return)35 b(v)-6 b(alue)p 236 3253 V 236 3366 -a Fn(The)30 b(negated)h(b)s(dd.)p 236 3717 3544 12 v -236 3829 a Fo(b)s(dd)p 419 3829 32 4 v 38 w(or)96 b Fn({)31 -b(The)e(logical)h('or')h(of)g(t)m(w)m(o)g(BDDs)p 236 -3884 3544 12 v 236 4089 a Fm(BDD)47 b(bdd_or\(BDD)e(l,)i(BDD)g(r\))236 -4313 y Fo(Description)p 236 4368 3544 5 v 236 4481 a -Fn(This)29 b(a)i(wrapp)s(er)d(that)j(calls)f Fm(bdd)p -1426 4481 29 4 v 33 w(apply\(l,r,bddop)p 2179 4481 V -30 w(or\))p Fn(.)236 4744 y Fo(Return)35 b(v)-6 b(alue)p -236 4798 3544 5 v 236 4911 a Fn(The)30 b(logical)g('or')h(of)f -Fm(l)g Fn(and)g Fm(r)p Fn(.)236 5174 y Fo(See)35 b(also)p -236 5228 V 236 5341 a Fn(b)s(dd)p 397 5341 28 4 v 31 -w(apply)-8 b(,)30 b(b)s(dd)p 852 5341 V 30 w(xor,)h(b)s(dd)p -1223 5341 V 31 w(and)1962 5989 y(45)p eop -%%Page: 46 54 -46 53 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(pathcoun)m(t)96 b Fn({)31 b(coun)m(t)g(the)f(n)m(um)m -(b)s(er)f(of)i(paths)f(leading)f(to)i(the)f(true)h(terminal)p -236 250 3544 12 v 236 455 a Fm(double)46 b(bdd_pathcount\(BDD)d(r\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Coun)m(ts)30 -b(the)h(n)m(um)m(b)s(er)e(of)h(paths)g(from)g(the)h(ro)s(ot)g(no)s(de)e -Fm(r)h Fn(leading)f(to)j(the)e(terminal)f(true)h(no)s(de.)236 -1110 y Fo(Return)35 b(v)-6 b(alue)p 236 1164 V 236 1277 -a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(paths)236 1540 y -Fo(See)k(also)p 236 1595 V 236 1707 a Fn(b)s(dd)p 397 -1707 28 4 v 31 w(no)s(decoun)m(t,)c(b)s(dd)p 1049 1707 -V 30 w(satcoun)m(t)p 236 2058 3544 12 v 236 2171 a Fo(b)s(dd)p -419 2171 32 4 v 38 w(prin)m(tall)95 b Fn({)31 b(prin)m(ts)e(all)g(used) -h(en)m(tries)g(in)f(the)i(no)s(de)e(table)p 236 2225 -3544 12 v 236 2430 a Fm(void)47 b(bdd_printall\(void\))236 -2543 y(void)g(bdd_fprintall\(FILE*)42 b(ofile\))236 2768 -y Fo(Description)p 236 2822 3544 5 v 236 2935 a Fn(Prin)m(ts)31 -b(to)h(either)f(stdout)h(or)g(the)g(\014le)e Fm(ofile)h -Fn(all)f(the)i(used)f(en)m(tries)g(in)g(the)h(main)e(no)s(de)h(table.) -45 b(The)236 3048 y(format)31 b(is:)327 3251 y Fm([Nodenum])45 -b(Var/level)h(Low)h(High)236 3457 y Fn(Where)34 b Fm(Nodenum)e -Fn(is)h(the)i(p)s(osition)d(in)g(the)i(no)s(de)g(table)g(and)f(lev)m -(el)h(is)f(the)h(p)s(osition)e(in)h(the)h(curren)m(t)236 -3570 y(v)-5 b(ariable)29 b(order.)236 3833 y Fo(See)35 -b(also)p 236 3887 V 236 4000 a Fn(b)s(dd)p 397 4000 28 -4 v 31 w(prin)m(ttable,)29 b(b)s(dd)p 1031 4000 V 31 -w(prin)m(tset,)h(b)s(dd)p 1580 4000 V 31 w(prin)m(tdot)1962 -5989 y(46)p eop -%%Page: 47 55 -47 54 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(prin)m(tdot)95 b Fn({)31 b(prin)m(ts)e(a)i(description) -d(of)j(a)g(BDD)g(in)e(DOT)h(format)p 236 250 3544 12 -v 236 455 a Fm(void)47 b(bdd_printdot\(BDD)c(r\))236 -568 y(int)k(bdd_fnprintdot\(char*)42 b(fname,)k(BDD)h(r\))236 -681 y(void)g(bdd_fprintdot\(FILE*)42 b(ofile,)k(BDD)h(r\))236 -906 y Fo(Description)p 236 960 3544 5 v 236 1073 a Fn(Prin)m(ts)26 -b(a)h(BDD)h(in)d(a)j(format)f(suitable)e(for)i(use)f(with)g(the)h -(graph)f(dra)m(wing)f(program)i(DOT)f(to)i(either)236 -1186 y(stdout,)h(a)f(designated)f(\014le)g Fm(ofile)f -Fn(or)h(the)h(\014le)f(named)g(b)m(y)g Fm(fname)p Fn(.)39 -b(In)27 b(the)h(last)f(case)i(the)e(\014le)g(will)e(b)s(e)236 -1298 y(op)s(ened)30 b(for)g(writing,)f(an)m(y)h(previous)f(con)m(ten)m -(ts)j(destro)m(y)m(ed)g(and)d(then)h(closed)h(again.)236 -1562 y Fo(See)k(also)p 236 1616 V 236 1729 a Fn(b)s(dd)p -397 1729 28 4 v 31 w(prin)m(tall,)28 b(b)s(dd)p 930 1729 -V 31 w(prin)m(ttable,)h(b)s(dd)p 1564 1729 V 31 w(prin)m(tset)p -236 2080 3544 12 v 236 2193 a Fo(b)s(dd)p 419 2193 32 -4 v 38 w(prin)m(torder)96 b Fn({)31 b(prin)m(ts)d(the)j(curren)m(t)f -(order)p 236 2247 3544 12 v 236 2452 a Fm(void)47 b -(bdd_printorder\(void\))236 2565 y(bdd_fprint_order\(FILE)42 -b(*f\))236 2790 y Fo(Description)p 236 2844 3544 5 v -236 2957 a Fn(Prin)m(ts)28 b(an)i(inden)m(ted)e(list)g(of)h(the)h(v)-5 -b(ariable)28 b(blo)s(c)m(ks,)h(sho)m(wing)f(the)i(top)f(most)h(blo)s(c) -m(ks)f(to)h(the)f(left)g(and)236 3070 y(the)i(lo)m(w)m(er)f(blo)s(c)m -(ks)g(to)h(the)g(righ)m(t.)40 b(Example:)332 3370 y Fm(2{)475 -3483 y(0)475 3596 y(1)332 3709 y(2})332 3822 y(3)332 -3935 y(4)236 4122 y Fn(This)d(sho)m(ws)i(5)h(v)-5 b(ariable)37 -b(blo)s(c)m(ks.)66 b(The)39 b(\014rst)f(one)h(added)g(is)f(blo)s(c)m(k) -g(zero,)k(whic)m(h)c(is)g(on)h(the)g(same)236 4235 y(lev)m(el)d(as)h -(blo)s(c)m(k)e(one.)59 b(These)36 b(t)m(w)m(o)i(blo)s(c)m(ks)d(are)i -(then)f(sub-blo)s(c)m(ks)f(of)h(blo)s(c)m(k)g(t)m(w)m(o)h(and)f(blo)s -(c)m(k)g(t)m(w)m(o)h(is)236 4348 y(on)31 b(the)g(same)g(lev)m(el)f(as)h -(blo)s(c)m(k)g(three)g(and)f(four.)41 b(The)30 b(n)m(um)m(b)s(ers)f -(are)j(the)f(iden)m(ti\014ers)d(returned)i(from)236 4461 -y Fm(bdd)p 386 4461 29 4 v 34 w(addvarblock)p Fn(.)37 -b(The)30 b(blo)s(c)m(k)g(lev)m(els)g(dep)s(ends)f(on)h(the)g(v)-5 -b(ariables)29 b(included)f(in)h(the)i(blo)s(c)m(ks.)236 -4724 y Fo(See)k(also)p 236 4778 3544 5 v 236 4891 a Fn(b)s(dd)p -397 4891 28 4 v 31 w(reorder,)30 b(b)s(dd)p 923 4891 -V 31 w(addv)-5 b(arblo)s(c)m(k)1962 5989 y(47)p eop -%%Page: 48 56 -48 55 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(prin)m(tset)95 b Fn({)31 b(prin)m(ts)e(the)h(set)h(of)g -(truth)f(assignmen)m(ts)g(sp)s(eci\014ed)e(b)m(y)j(a)f(BDD)p -236 250 3544 12 v 236 455 a Fm(bdd_printset\(BDD)44 b(r\))236 -568 y(bdd_fprintset\(FILE*)f(ofile,)j(BDD)h(r\))236 793 -y Fo(Description)p 236 847 3544 5 v 236 960 a Fn(Prin)m(ts)29 -b(all)h(the)g(truth)g(assignmen)m(ts)g(for)g Fm(r)g Fn(that)h(w)m(ould) -e(yield)g(it)h(true.)40 b(The)30 b(format)h(is:)327 1128 -y Fm(<)48 b Fj(x)475 1142 y Fh(1)p Fi(;)p Fh(1)594 1128 -y Fn(:)26 b Fj(c)684 1142 y Fh(1)p Fi(;)p Fh(1)778 1128 -y Fj(;)15 b(:)g(:)g(:)i(;)e(x)1032 1142 y Fh(1)p Fi(;n)1130 -1151 y Fa(1)1194 1128 y Fn(:)25 b Fj(c)1283 1142 y Fh(1)p -Fi(;n)1381 1151 y Fa(1)1468 1128 y Fm(>)327 1240 y(<)48 -b Fj(x)475 1254 y Fh(2)p Fi(;)p Fh(1)594 1240 y Fn(:)26 -b Fj(c)684 1254 y Fh(2)p Fi(;)p Fh(1)778 1240 y Fj(;)15 -b(:)g(:)g(:)i(;)e(x)1032 1254 y Fh(2)p Fi(;n)1130 1263 -y Fa(2)1194 1240 y Fn(:)25 b Fj(c)1283 1254 y Fh(2)p -Fi(;n)1381 1263 y Fa(2)1468 1240 y Fm(>)327 1353 y Fj(:)15 -b(:)g(:)327 1466 y Fm(<)48 b Fj(x)475 1480 y Fi(N)s(;)p -Fh(1)618 1466 y Fn(:)26 b Fj(c)708 1480 y Fi(N)s(;)p -Fh(1)826 1466 y Fj(;)15 b(:)g(:)g(:)i(;)e(x)1080 1480 -y Fi(N)s(;n)1202 1489 y Fa(3)1266 1466 y Fn(:)25 b Fj(c)1355 -1480 y Fi(N)s(;n)1477 1489 y Fa(3)1564 1466 y Fm(>)236 -1661 y Fn(Where)i(the)g Fj(x)p Fn('s)g(are)g(v)-5 b(ariable)25 -b(n)m(um)m(b)s(ers)g(\(and)i(the)f(p)s(osition)f(in)g(the)i(curren)m(t) -g(order\))f(and)g(the)h Fj(c)p Fn('s)g(are)236 1774 y(the)f(p)s -(ossible)e(assignmen)m(ts)i(to)h(these.)39 b(Eac)m(h)27 -b(set)g(of)f(brac)m(k)m(ets)i(designates)e(one)g(p)s(ossible)e -(assignmen)m(t)236 1887 y(to)31 b(the)e(set)i(of)e(v)-5 -b(ariables)29 b(that)h(mak)m(e)h(up)d(the)i(BDD.)h(All)d(v)-5 -b(ariables)29 b(not)h(sho)m(wn)f(are)h(don't)f(cares.)41 -b(It)236 2000 y(is)29 b(p)s(ossible)e(to)k(sp)s(ecify)d(a)i(callbac)m -(k)g(handler)e(for)h(prin)m(ting)f(of)h(the)h(v)-5 b(ariables)29 -b(using)f Fm(bdd)p 3336 2000 29 4 v 33 w(file)p 3561 -2000 V 34 w(hook)236 2113 y Fn(or)j Fm(bdd)p 498 2113 -V 33 w(strm)p 723 2113 V 33 w(hook)p Fn(.)236 2376 y -Fo(See)k(also)p 236 2430 3544 5 v 236 2543 a Fn(b)s(dd)p -397 2543 28 4 v 31 w(prin)m(tall,)28 b(b)s(dd)p 930 2543 -V 31 w(prin)m(ttable,)h(b)s(dd)p 1564 2543 V 31 w(prin)m(tdot,)h(b)s -(dd)p 2133 2543 V 30 w(\014le)p 2280 2543 V 32 w(ho)s(ok,)h(b)s(dd)p -2716 2543 V 30 w(strm)p 2929 2543 V 33 w(ho)s(ok)p 236 -2894 3544 12 v 236 3007 a Fo(b)s(dd)p 419 3007 32 4 v -38 w(prin)m(tstat)95 b Fn({)31 b(prin)m(t)e(cac)m(he)j(statistics)p -236 3061 3544 12 v 236 3266 a Fm(void)47 b(bdd_printstat\(void\))236 -3379 y(void)g(bdd_fprintstat\(FILE)42 b(*ofile\))236 -3604 y Fo(Description)p 236 3658 3544 5 v 236 3771 a -Fn(Prin)m(ts)26 b(information)e(ab)s(out)j(the)f(cac)m(he)i(p)s -(erformance)e(on)g(standard)g(output)g(\(or)h(the)g(supplied)c -(\014le\).)236 3884 y(The)28 b(information)f(con)m(tains)i(the)g(n)m -(um)m(b)s(er)e(of)i(accesses)h(to)f(the)g(unique)d(no)s(de)i(table,)h -(the)g(n)m(um)m(b)s(er)e(of)236 3997 y(times)33 b(a)h(no)s(de)f(w)m(as) -h(\(not\))g(found)f(there)g(and)g(ho)m(w)h(man)m(y)f(times)g(a)h(hash)f -(c)m(hain)g(had)g(to)h(tra)m(v)m(ersed.)236 4110 y(Hit)c(and)g(miss)f -(coun)m(t)i(is)f(also)g(giv)m(en)g(for)g(the)h(op)s(erator)g(cac)m -(hes.)236 4373 y Fo(See)k(also)p 236 4427 V 236 4540 -a Fn(b)s(ddCac)m(heStat,)30 b(b)s(dd)p 1013 4540 28 4 -v 31 w(cac)m(hestats)1962 5989 y(48)p eop -%%Page: 49 57 -49 56 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(prin)m(ttable)95 b Fn({)31 b(prin)m(ts)e(the)h(no)s(de) -g(table)g(en)m(tries)g(used)g(b)m(y)g(a)h(BDD)p 236 250 -3544 12 v 236 455 a Fm(void)47 b(bdd_printtable\(BDD)c(r\))236 -568 y(void)k(bdd_fprinttable\(FILE*)42 b(ofile,)k(BDD)h(r\))236 -793 y Fo(Description)p 236 847 3544 5 v 236 960 a Fn(Prin)m(ts)30 -b(to)j(either)d(stdout)i(or)f(the)h(\014le)e Fm(ofile)g -Fn(all)g(the)i(en)m(tries)f(in)f(the)i(main)e(no)s(de)g(table)i(used)e -(b)m(y)i Fm(r)p Fn(.)236 1073 y(The)e(format)h(is:)327 -1276 y Fm([Nodenum])45 b(Var/level)h(:)95 b(Low)47 b(High)236 -1481 y Fn(Where)34 b Fm(Nodenum)e Fn(is)h(the)i(p)s(osition)d(in)g(the) -i(no)s(de)g(table)g(and)f(lev)m(el)h(is)f(the)h(p)s(osition)e(in)h(the) -h(curren)m(t)236 1594 y(v)-5 b(ariable)29 b(order.)236 -1857 y Fo(See)35 b(also)p 236 1911 V 236 2024 a Fn(b)s(dd)p -397 2024 28 4 v 31 w(prin)m(tall,)28 b(b)s(dd)p 930 2024 -V 31 w(prin)m(tset,)i(b)s(dd)p 1479 2024 V 31 w(prin)m(tdot)p -236 2375 3544 12 v 236 2488 a Fo(b)s(dd)p 419 2488 32 -4 v 38 w(relpro)s(d)96 b Fn({)31 b(relational)e(pro)s(duct)p -236 2542 3544 12 v 236 2747 a Fm(#define)46 b(bdd_relprod\(a,b,var\))c -(bdd_appex\(a,b,bddop_and,v)o(ar\))236 2972 y Fo(Description)p -236 3026 3544 5 v 236 3139 a Fn(Calculates)22 b(the)g(relational)f(pro) -s(duct)g(of)h Fm(a)g Fn(and)f Fm(b)h Fn(as)g Fm(a)47 -b(AND)g(b)22 b Fn(with)f(the)h(v)-5 b(ariables)21 b(in)f -Fm(var)i Fn(quan)m(ti\014ed)236 3252 y(out)31 b(afterw)m(ards.)236 -3515 y Fo(Return)k(v)-6 b(alue)p 236 3570 V 236 3683 -a Fn(The)30 b(relational)f(pro)s(duct)h(or)g Fm(bddfalse)e -Fn(on)i(errors.)236 3946 y Fo(See)35 b(also)p 236 4000 -V 236 4113 a Fn(b)s(dd)p 397 4113 28 4 v 31 w(app)s(ex)1962 -5989 y(49)p eop -%%Page: 50 58 -50 57 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(reorder)96 b Fn({)31 b(start)f(dynamic)g(reordering)p -236 250 3544 12 v 236 455 a Fm(void)47 b(bdd_reorder\(int)c(method\)) -236 680 y Fo(Description)p 236 734 3544 5 v 236 847 a -Fn(This)34 b(function)g(initiates)f(dynamic)h(reordering)g(using)g(the) -h(heuristic)f(de\014ned)g(b)m(y)h Fm(method)p Fn(,)g(whic)m(h)236 -960 y(ma)m(y)c(b)s(e)f(one)h(of)f(the)h(follo)m(wing)282 -1147 y Fm(BDD)p 432 1147 29 4 v 33 w(REORDER)p 801 1147 -V 33 w(WIN2)463 1260 y Fn(Reordering)40 b(using)f(a)i(sliding)c(windo)m -(w)i(of)i(size)f(2.)72 b(This)39 b(algorithm)g(sw)m(aps)h(t)m(w)m(o)i -(adjacen)m(t)463 1373 y(v)-5 b(ariable)35 b(blo)s(c)m(ks)h(and)g(if)f -(this)g(results)g(in)g(more)h(no)s(des)g(then)f(the)i(t)m(w)m(o)g(blo)s -(c)m(ks)f(are)h(sw)m(app)s(ed)463 1486 y(bac)m(k)29 b(again.)40 -b(Otherwise)27 b(the)h(result)f(is)f(k)m(ept)j(in)e(the)h(v)-5 -b(ariable)26 b(order.)40 b(This)26 b(is)h(then)g(rep)s(eated)463 -1599 y(for)k(all)e(v)-5 b(ariable)29 b(blo)s(c)m(ks.)282 -1787 y Fm(BDD)p 432 1787 V 33 w(REORDER)p 801 1787 V -33 w(WIN2ITE)463 1900 y Fn(The)39 b(same)h(as)f(ab)s(o)m(v)m(e)i(but)d -(the)i(pro)s(cess)e(is)h(rep)s(eated)g(un)m(til)e(no)i(further)f -(progress)h(is)f(done.)463 2012 y(Usually)29 b(a)i(fast)g(and)f -(e\016cien)m(t)g(metho)s(d.)282 2200 y Fm(BDD)p 432 2200 -V 33 w(REORDER)p 801 2200 V 33 w(WIN3)463 2313 y Fn(The)g(same)h(as)g -(ab)s(o)m(v)m(e)g(but)f(with)f(a)i(windo)m(w)e(size)h(of)g(3.)282 -2501 y Fm(BDD)p 432 2501 V 33 w(REORDER)p 801 2501 V -33 w(WIN2ITE)463 2614 y Fn(The)g(same)h(as)g(ab)s(o)m(v)m(e)g(but)f -(with)f(a)i(windo)m(w)e(size)h(of)g(3.)282 2801 y Fm(BDD)p -432 2801 V 33 w(REORDER)p 801 2801 V 33 w(SIFT)463 2914 -y Fn(Reordering)36 b(where)f(eac)m(h)j(blo)s(c)m(k)d(is)h(mo)m(v)m(ed)h -(through)e(all)g(p)s(ossible)f(p)s(ositions.)56 b(The)36 -b(b)s(est)f(of)463 3027 y(these)c(is)f(then)g(used)f(as)i(the)g(new)e -(p)s(osition.)39 b(P)m(oten)m(tially)31 b(a)f(v)m(ery)h(slo)m(w)f(but)g -(go)s(o)s(d)g(metho)s(d.)282 3215 y Fm(BDD)p 432 3215 -V 33 w(REORDER)p 801 3215 V 33 w(SIFTITE)463 3328 y Fn(The)25 -b(same)g(as)g(ab)s(o)m(v)m(e)h(but)f(the)g(pro)s(cess)f(is)g(rep)s -(eated)h(un)m(til)e(no)i(further)f(progress)g(is)g(done.)39 -b(Can)463 3440 y(b)s(e)30 b(extremely)h(slo)m(w.)282 -3628 y Fm(BDD)p 432 3628 V 33 w(REORDER)p 801 3628 V -33 w(RANDOM)463 3741 y Fn(Mostly)d(used)f(for)g(debugging)g(purp)s -(ose,)f(but)h(ma)m(y)h(b)s(e)f(usefull)e(for)j(others.)40 -b(Selects)27 b(a)h(random)463 3854 y(p)s(osition)h(for)h(eac)m(h)i(v)-5 -b(ariable.)236 4192 y Fo(See)35 b(also)p 236 4246 3544 -5 v 236 4359 a Fn(b)s(dd)p 397 4359 28 4 v 31 w(autoreorder,)c(b)s(dd)p -1100 4359 V 31 w(reorder)p 1415 4359 V 32 w(v)m(erb)s(ose,)g(b)s(dd)p -1955 4359 V 31 w(addv)-5 b(arblo)s(c)m(k,)29 b(b)s(dd)p -2677 4359 V 31 w(clrv)-5 b(arblo)s(c)m(ks)1962 5989 y(50)p -eop -%%Page: 51 59 -51 58 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(reorder)p 792 196 V 38 w(gain)96 b Fn({)30 -b(Calculate)g(the)h(gain)f(in)f(size)h(after)h(a)g(reordering)p -236 250 3544 12 v 236 455 a Fm(int)47 b(bdd_reorder_gain\(void\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Returns)30 -b(the)g(gain)g(in)f(p)s(ercen)m(t)i(of)f(the)h(previous)e(n)m(um)m(b)s -(er)g(of)h(used)g(no)s(des.)40 b(The)30 b(v)-5 b(alue)30 -b(returned)f(is)463 1034 y(\(100)22 b Fc(\003)f Fn(\()p -Fj(A)g Fc(\000)f Fj(B)5 b Fn(\)\))p Fj(=)-5 b(A)236 1222 -y Fn(Where)31 b Fj(A)f Fn(is)g(previous)f(n)m(um)m(b)s(er)g(of)h(used)g -(no)s(des)f(and)h Fj(B)35 b Fn(is)29 b(curren)m(t)i(n)m(um)m(b)s(er)e -(of)h(used)g(no)s(des.)p 236 1573 3544 12 v 236 1686 -a Fo(b)s(dd)p 419 1686 32 4 v 38 w(reorder)p 792 1686 -V 38 w(ho)s(ok)96 b Fn({)31 b(sets)g(a)f(handler)f(for)h(automatic)h -(reorderings)p 236 1740 3544 12 v 236 1945 a Fm(bddinthandler)44 -b(bdd_reorder_hook\(bddinthan)o(dle)o(r)e(handler\))236 -2170 y Fo(Description)p 236 2224 3544 5 v 236 2337 a -Fn(Whenev)m(er)33 b(automatic)g(reordering)e(is)h(done,)h(a)f(c)m(hec)m -(k)i(is)e(done)g(to)h(see)g(if)e(the)h(user)g(has)g(supplied)d(a)236 -2450 y(handler)i(for)h(that)h(ev)m(en)m(t.)49 b(If)32 -b(so)h(then)f(it)g(is)g(called)g(with)f(the)h(argumen)m(t)h -Fm(prestate)e Fn(b)s(eing)g(1)i(if)e(the)236 2563 y(handler)21 -b(is)i(called)f(immediately)f Ff(b)-5 b(efor)g(e)24 b -Fn(reordering)e(and)g Fm(prestate)f Fn(b)s(eing)h(0)h(if)f(it)h(is)f -(called)g(immedi-)236 2676 y(ately)29 b(after.)41 b(The)28 -b(default)g(handler)e(is)i Fm(bdd)p 1764 2676 29 4 v -34 w(default)p 2134 2676 V 32 w(reohandler)e Fn(whic)m(h)h(will)f(prin) -m(t)h(information)236 2789 y(ab)s(out)j(the)h(reordering.)327 -2902 y(A)g(t)m(ypical)f(handler)e(could)i(lo)s(ok)g(lik)m(e)f(this:)236 -3089 y Fm(void)47 b(reorderhandler\(int)c(prestate\))236 -3202 y({)379 3315 y(if)48 b(\(prestate\))523 3428 y(printf\("Start)c -(reordering"\);)379 3541 y(else)523 3654 y(printf\("End)g -(reordering"\);)236 3767 y(})236 4105 y Fo(Return)35 -b(v)-6 b(alue)p 236 4159 3544 5 v 236 4272 a Fn(The)30 -b(previous)f(handler)236 4535 y Fo(See)35 b(also)p 236 -4589 V 236 4702 a Fn(b)s(dd)p 397 4702 28 4 v 31 w(reorder,)30 -b(b)s(dd)p 923 4702 V 31 w(autoreorder,)h(b)s(dd)p 1626 -4702 V 31 w(resize)p 1875 4702 V 32 w(ho)s(ok)1962 5989 -y(51)p eop -%%Page: 52 60 -52 59 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(reorder)p 792 196 V 38 w(prob)s(e)96 -b Fn({)31 b(De\014ne)f(a)h(handler)d(for)j(minimization)c(of)k(BDDs)p -236 250 3544 12 v 236 455 a Fm(bddsizehandler)44 b -(bdd_reorder_probe\(bddsize)o(han)o(dler)d(handler\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Reordering)d(is)h -(t)m(ypically)e(done)i(to)h(minimize)d(the)i(global)g(n)m(um)m(b)s(er)e -(of)j(BDD)g(no)s(des)e(in)g(use,)j(but)236 960 y(it)50 -b(ma)m(y)h(in)e(some)i(cases)g(b)s(e)f(usefull)d(to)k(minimize)d(with)h -(resp)s(ect)h(to)h(a)g(sp)s(eci\014c)e(BDD.)j(With)236 -1073 y Fm(bdd)p 386 1073 29 4 v 34 w(reorder)p 756 1073 -V 32 w(probe)41 b Fn(it)g(is)g(p)s(ossible)f(to)j(de\014ne)e(a)i -(callbac)m(k)f(function)e(that)j(calculates)f(the)h(size)236 -1186 y(of)35 b(a)f(sp)s(eci\014c)g(BDD)h(\(or)g(an)m(ything)e(else)i -(in)e(fact\).)54 b(This)32 b(handler)h(will)e(then)j(b)s(e)g(called)f -(b)m(y)i(the)f(re-)236 1298 y(ordering)h(functions)g(to)j(get)f(the)g -(curren)m(t)f(size)h(information.)57 b(A)36 b(t)m(ypical)h(handle)e -(could)g(lo)s(ok)h(lik)m(e)236 1411 y(this:)236 1599 -y Fm(int)47 b(sizehandler\(void\))236 1712 y({)379 1825 -y(extern)f(BDD)h(mybdd;)379 1938 y(return)f(bdd_nodecount\(mybdd\);)236 -2051 y(})236 2238 y Fn(No)39 b(default)e(handler)f(is)h(supplied.)60 -b(The)38 b(argumen)m(t)g Fm(handler)e Fn(ma)m(y)i(b)s(e)g(NULL)g(if)e -(no)i(handler)e(is)236 2351 y(needed.)236 2614 y Fo(Return)f(v)-6 -b(alue)p 236 2669 3544 5 v 236 2781 a Fn(The)30 b(old)g(handler)236 -3045 y Fo(See)35 b(also)p 236 3099 V 236 3212 a Fn(b)s(dd)p -397 3212 28 4 v 31 w(reorder)p 236 3545 3544 12 v 236 -3658 a Fo(b)s(dd)p 419 3658 32 4 v 38 w(reorder)p 792 -3658 V 38 w(v)m(erb)s(ose)96 b Fn({)31 b(enables)f(v)m(erb)s(ose)g -(information)f(ab)s(out)h(reorderings)p 236 3712 3544 -12 v 236 3917 a Fm(int)47 b(bdd_reorder_verbose\(int)42 -b(v\))236 4142 y Fo(Description)p 236 4196 3544 5 v 236 -4309 a Fn(With)32 b Fm(bdd)p 623 4309 29 4 v 33 w(reorder)p -992 4309 V 33 w(verbose)d Fn(it)j(is)f(p)s(ossible)e(to)k(set)f(the)g -(lev)m(el)g(of)g(information)e(whic)m(h)g(should)g(b)s(e)236 -4422 y(prin)m(ted)35 b(during)e(reordering.)56 b(A)36 -b(v)-5 b(alue)35 b(of)h(zero)h(means)f(no)f(information,)h(a)g(v)-5 -b(alue)35 b(of)h(one)h(means)236 4535 y(some)28 b(information)e(and)h -(an)m(y)i(greater)f(v)-5 b(alue)28 b(will)d(result)h(in)h(a)h(lot)g(of) -f(reordering)g(information.)38 b(The)236 4648 y(default)30 -b(v)-5 b(alue)30 b(is)f(zero.)236 4911 y Fo(Return)35 -b(v)-6 b(alue)p 236 4965 3544 5 v 236 5078 a Fn(The)30 -b(old)g(v)m(erb)s(ose)g(lev)m(el)236 5341 y Fo(See)35 -b(also)p 236 5395 V 236 5508 a Fn(b)s(dd)p 397 5508 28 -4 v 31 w(reorder)1962 5989 y(52)p eop -%%Page: 53 61 -53 60 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(replace)96 b Fn({)31 b(replaces)f(v)-5 -b(ariables)29 b(with)g(other)h(v)-5 b(ariables)p 236 -250 3544 12 v 236 455 a Fm(BDD)47 b(bdd_replace\(BDD)d(r,)j(bddPair)f -(*pair\))236 680 y Fo(Description)p 236 734 3544 5 v -236 847 a Fn(Replaces)37 b(all)f(v)-5 b(ariables)36 b(in)g(the)h(BDD)i -Fm(r)d Fn(with)g(the)h(v)-5 b(ariables)36 b(de\014ned)g(b)m(y)h -Fm(pair)p Fn(.)60 b(Eac)m(h)37 b(en)m(try)h(in)236 960 -y Fm(pair)28 b Fn(consists)h(of)h(a)f(old)g(and)f(a)i(new)f(v)-5 -b(ariable.)39 b(Whenev)m(er)30 b(the)f(old)g(v)-5 b(ariable)28 -b(is)g(found)g(in)g Fm(r)h Fn(then)g(a)236 1073 y(new)h(no)s(de)g(with) -f(the)h(new)g(v)-5 b(ariable)29 b(is)h(inserted)f(instead.)236 -1336 y Fo(Return)35 b(v)-6 b(alue)p 236 1390 V 236 1503 -a Fn(The)30 b(result)f(of)i(the)f(op)s(eration.)236 1766 -y Fo(See)35 b(also)p 236 1820 V 236 1933 a Fn(b)s(dd)p -397 1933 28 4 v 31 w(newpair,)29 b(b)s(dd)p 953 1933 -V 31 w(setpair,)h(b)s(dd)p 1464 1933 V 30 w(setpairs)p -236 2284 3544 12 v 236 2397 a Fo(b)s(dd)p 419 2397 32 -4 v 38 w(resetpair)95 b Fn({)31 b(clear)f(all)g(v)-5 -b(ariable)29 b(pairs)p 236 2451 3544 12 v 236 2656 a -Fm(void)47 b(bdd_resetpair\(bddPair)42 b(*pair\))236 -2881 y Fo(Description)p 236 2935 3544 5 v 236 3048 a -Fn(Resets)34 b(the)f(table)f(of)h(pairs)f Fm(pair)f Fn(b)m(y)i(setting) -g(all)e(substitutions)f(to)k(their)e(default)g(v)-5 b(alues)32 -b(\(that)h(is)236 3161 y(no)d(c)m(hange\).)236 3424 y -Fo(See)35 b(also)p 236 3479 V 236 3591 a Fn(b)s(dd)p -397 3591 28 4 v 31 w(newpair,)29 b(b)s(dd)p 953 3591 -V 31 w(setpair,)h(b)s(dd)p 1464 3591 V 30 w(freepair)1962 -5989 y(53)p eop -%%Page: 54 62 -54 61 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(resize)p 712 196 V 38 w(ho)s(ok)96 b -Fn({)31 b(set)g(a)g(handler)d(for)j(no)s(detable)e(resizes)p -236 250 3544 12 v 236 455 a Fm(bdd2inthandler)44 b -(bdd_resize_hook\(bdd2intha)o(ndl)o(er)e(handler\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Whenev)m(er)30 -b(it)f(is)g(imp)s(ossible)d(to)k(get)h(enough)e(free)h(no)s(des)f(b)m -(y)g(a)h(garbage)h(collection)e(then)g(the)h(no)s(de)236 -960 y(table)g(is)f(resized)g(and)g(a)i(test)f(is)f(done)h(to)h(see)f -(if)f(a)h(handler)e(is)h(supllied)d(b)m(y)k(the)g(user)f(for)h(this)f -(ev)m(en)m(t.)236 1073 y(If)34 b(so)h(then)g(it)f(is)f(called)h(with)g -Fm(oldsize)e Fn(b)s(eing)h(the)i(old)f(no)s(detable)g(size)g(and)g -Fm(newsize)f Fn(b)s(eing)g(the)236 1186 y(new)d(no)s(detable)g(size.) -327 1298 y(This)h(function)h(sets)h(the)g(handler)e(to)j(b)s(e)e -Fm(handler)p Fn(.)47 b(If)32 b(a)h Fm(NULL)f Fn(argumen)m(t)h(is)f -(supplied)e(then)j(no)236 1411 y(calls)d(are)h(made)f(when)f(a)i(table) -f(resize)h(is)e(done.)41 b(No)30 b(default)g(handler)f(is)g(supplied.) -327 1524 y(An)m(y)i(handler)d(should)g(b)s(e)i(de\014ned)f(lik)m(e)h -(this:)236 1712 y Fm(void)47 b(my_resize_handler\(int)42 -b(oldsize,)j(int)i(newsize\))236 1825 y({)379 1938 y(...)236 -2051 y(})236 2389 y Fo(Return)35 b(v)-6 b(alue)p 236 -2443 V 236 2556 a Fn(The)30 b(previous)f(handler)236 -2819 y Fo(See)35 b(also)p 236 2873 V 236 2986 a Fn(b)s(dd)p -397 2986 28 4 v 31 w(gb)s(c)p 567 2986 V 33 w(ho)s(ok,)30 -b(b)s(dd)p 1003 2986 V 31 w(reorder)p 1318 2986 V 32 -w(ho)s(ok,)h(b)s(dd)p 1754 2986 V 30 w(setminfreeno)s(des)1962 -5989 y(54)p eop -%%Page: 55 63 -55 62 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(restrict)96 b Fn({)30 b(restric)g(a)h(set)g(of)f(v)-5 -b(ariables)29 b(to)i(constan)m(t)h(v)-5 b(alues)p 236 -250 3544 12 v 236 455 a Fm(BDD)47 b(bdd_restrict\(BDD)c(r,)48 -b(BDD)f(var\))236 680 y Fo(Description)p 236 734 3544 -5 v 236 847 a Fn(This)42 b(function)h(restricts)g(the)h(v)-5 -b(ariables)42 b(in)h Fm(r)g Fn(to)i(constan)m(t)g(true)e(or)h(false.)81 -b(Ho)m(w)44 b(this)f(is)g(done)236 960 y(dep)s(ends)28 -b(on)h(ho)m(w)h(the)f(v)-5 b(ariables)28 b(are)i(included)d(in)h(the)i -(v)-5 b(ariable)28 b(set)i Fm(var)p Fn(.)40 b(If)29 b(they)g(are)h -(included)d(in)236 1073 y(their)h(p)s(ositiv)m(e)f(form)h(then)g(they)g -(are)h(restricted)f(to)h(true)f(and)g(vice)h(v)m(ersa.)40 -b(Unfortunately)28 b(it)g(is)f(not)236 1186 y(p)s(ossible)32 -b(to)k(insert)d(v)-5 b(ariables)34 b(in)f(their)h(negated)i(form)e -(using)f Fm(bdd)p 2623 1186 29 4 v 34 w(makeset)p Fn(,)h(so)h(the)f(v) --5 b(ariable)34 b(set)236 1298 y(has)e(to)h(b)s(e)f(build)d(man)m -(ually)i(as)h(a)h(conjunction)e(of)h(the)h(v)-5 b(ariables.)45 -b(Example:)e(Assume)32 b(v)-5 b(ariable)31 b(1)236 1411 -y(should)e(b)s(e)g(restricted)h(to)i(true)e(and)f(v)-5 -b(ariable)30 b(3)g(to)h(false.)332 1599 y Fm(bdd)47 b(X)g(=)g -(make_user_bdd\(\);)332 1712 y(bdd)g(R1)g(=)g(bdd_ithvar\(1\);)332 -1825 y(bdd)g(R2)g(=)g(bdd_nithvar\(3\);)332 1938 y(bdd)g(R)g(=)g -(bdd_addref\()e(bdd_apply\(R1,R2,)f(bddop_and\))h(\);)332 -2051 y(bdd)i(RES)f(=)i(bdd_addref\()d(bdd_restrict\(X,R\))e(\);)236 -2389 y Fo(Return)35 b(v)-6 b(alue)p 236 2443 3544 5 v -236 2556 a Fn(The)30 b(restricted)g(b)s(dd.)236 2819 -y Fo(See)35 b(also)p 236 2873 V 236 2986 a Fn(b)s(dd)p -397 2986 28 4 v 31 w(mak)m(eset,)d(b)s(dd)p 958 2986 -V 31 w(exist,)e(b)s(dd)p 1385 2986 V 31 w(forall)p 236 -3337 3544 12 v 236 3450 a Fo(b)s(dd)p 419 3450 32 4 v -38 w(satcoun)m(t)96 b Fn({)31 b(calculates)f(the)h(n)m(um)m(b)s(er)e -(of)h(satisfying)f(v)-5 b(ariable)30 b(assignmen)m(ts)p -236 3504 3544 12 v 236 3709 a Fm(double)46 b(bdd_satcount\(BDD)e(r\)) -236 3822 y(double)i(bdd_satcountset\(BDD)d(r,)k(BDD)g(varset\))236 -4047 y Fo(Description)p 236 4101 3544 5 v 236 4214 a -Fn(Calculates)39 b(ho)m(w)g(man)m(y)g(p)s(ossible)e(v)-5 -b(ariable)38 b(assignmen)m(ts)h(there)g(exists)g(suc)m(h)g(that)g -Fm(r)g Fn(is)f(satis\014ed)236 4327 y(\(true\).)67 b(All)38 -b(de\014ned)g(v)-5 b(ariables)38 b(are)h(considered)f(in)f(the)j -(\014rst)e(v)m(ersion.)66 b(In)38 b(the)i(second)f(v)m(ersion,)236 -4440 y(only)c(the)g(v)-5 b(ariables)34 b(in)g(the)h(v)-5 -b(ariable)34 b(set)i Fm(varset)d Fn(are)j(considered.)53 -b(This)34 b(mak)m(es)i(the)f(function)f(a)236 4553 y -Ff(lot)d Fn(slo)m(w)m(er.)236 4816 y Fo(Return)k(v)-6 -b(alue)p 236 4870 V 236 4983 a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(p)s -(ossible)d(assignmen)m(ts.)236 5246 y Fo(See)35 b(also)p -236 5300 V 236 5413 a Fn(b)s(dd)p 397 5413 28 4 v 31 -w(satone,)d(b)s(dd)p 893 5413 V 30 w(fullsatone,)e(b)s(dd)p -1517 5413 V 30 w(satcoun)m(tln)1962 5989 y(55)p eop -%%Page: 56 64 -56 63 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(satcoun)m(tln)96 b Fn({)31 b(calculates)f(the)h(log.)41 -b(n)m(um)m(b)s(er)29 b(of)h(satisfying)f(v)-5 b(ariable)30 -b(assignmen)m(ts)p 236 250 3544 12 v 236 455 a Fm(double)46 -b(bdd_satcountln\(BDD)d(r\))236 568 y(double)j(bdd_satcountlnset\(BDD)c -(r,)47 b(BDD)g(varset\))236 793 y Fo(Description)p 236 -847 3544 5 v 236 960 a Fn(Calculates)39 b(ho)m(w)g(man)m(y)g(p)s -(ossible)e(v)-5 b(ariable)38 b(assignmen)m(ts)h(there)g(exists)g(suc)m -(h)g(that)g Fm(r)g Fn(is)f(satis\014ed)236 1073 y(\(true\))29 -b(and)f(returns)f(the)h(logarithm)g(of)g(this.)39 b(The)28 -b(result)f(is)h(calculated)g(in)f(suc)m(h)h(a)h(manner)e(that)i(it)236 -1186 y(is)e(practically)f(imp)s(ossible)f(to)j(get)h(an)e(o)m(v)m -(er\015o)m(w,)j(whic)m(h)c(is)h(v)m(ery)h(p)s(ossible)d(for)j -Fm(bdd)p 3136 1186 29 4 v 33 w(satcount)e Fn(if)g(the)236 -1298 y(n)m(um)m(b)s(er)33 b(of)h(de\014ned)e(v)-5 b(ariables)33 -b(is)f(to)s(o)j(large.)51 b(All)32 b(de\014ned)h(v)-5 -b(ariables)32 b(are)i(considered)f(in)f(the)i(\014rst)236 -1411 y(v)m(ersion.)k(In)23 b(the)h(second)g(v)m(ersion,)h(only)e(the)h -(v)-5 b(ariables)23 b(in)f(the)i(v)-5 b(ariable)23 b(set)h -Fm(varset)e Fn(are)i(considered.)236 1524 y(This)29 b(mak)m(es)i(the)g -(function)e(a)h Ff(lot)i Fn(slo)m(w)m(er!)236 1787 y -Fo(Return)j(v)-6 b(alue)p 236 1842 3544 5 v 236 1955 -a Fn(The)30 b(logarithm)f(of)i(the)g(n)m(um)m(b)s(er)e(of)h(p)s -(ossible)e(assignmen)m(ts.)236 2218 y Fo(See)35 b(also)p -236 2272 V 236 2385 a Fn(b)s(dd)p 397 2385 28 4 v 31 -w(satone,)d(b)s(dd)p 893 2385 V 30 w(fullsatone,)e(b)s(dd)p -1517 2385 V 30 w(satcoun)m(t)p 236 2736 3544 12 v 236 -2849 a Fo(b)s(dd)p 419 2849 32 4 v 38 w(satone)95 b Fn({)31 -b(\014nds)e(one)i(satisfying)e(v)-5 b(ariable)29 b(assignmen)m(t)p -236 2903 3544 12 v 236 3108 a Fm(BDD)47 b(bdd_satone\(BDD)d(r\))236 -3333 y Fo(Description)p 236 3387 3544 5 v 236 3500 a -Fn(Finds)26 b(a)h(BDD)h(with)e(at)i(most)g(one)f(v)-5 -b(ariable)26 b(at)i(eac)m(h)g(lev)m(el.)39 b(This)25 -b(BDD)k(implies)24 b Fm(r)j Fn(and)f(is)g(not)i(false)236 -3613 y(unless)h Fm(r)h Fn(is)f(false.)236 3876 y Fo(Return)35 -b(v)-6 b(alue)p 236 3930 V 236 4043 a Fn(The)30 b(result)f(of)i(the)f -(op)s(eration.)236 4306 y Fo(See)35 b(also)p 236 4360 -V 236 4473 a Fn(b)s(dd)p 397 4473 28 4 v 31 w(allsat)30 -b(b)s(dd)p 827 4473 V 31 w(satoneset,)i(b)s(dd)p 1434 -4473 V 31 w(fullsatone,)d(b)s(dd)p 2058 4473 V 31 w(satcoun)m(t,)j(b)s -(dd)p 2637 4473 V 30 w(satcoun)m(tln)1962 5989 y(56)p -eop -%%Page: 57 65 -57 64 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(satoneset)95 b Fn({)31 b(\014nds)e(one)h(satisfying)f -(v)-5 b(ariable)30 b(assignmen)m(t)p 236 250 3544 12 -v 236 455 a Fm(BDD)47 b(bdd_satoneset\(BDD)c(r,)k(BDD)g(var,)g(BDD)g -(pol\))236 680 y Fo(Description)p 236 734 3544 5 v 236 -847 a Fn(Finds)32 b(a)h(min)m(term)f(in)g Fm(r)p Fn(.)48 -b(The)32 b Fm(var)g Fn(argumen)m(t)i(is)e(a)h(v)-5 b(ariable)32 -b(set)h(that)h(de\014nes)e(a)h(set)h(of)f(v)-5 b(ariables)236 -960 y(that)36 b Ff(must)g Fn(b)s(e)f(men)m(tioned)f(in)g(the)i(result.) -54 b(The)35 b(p)s(olarit)m(y)f(of)i(these)g(v)-5 b(ariables)34 -b(in)g(result|in)e(case)236 1073 y(they)f(are)h(unde\014ned)c(in)i -Fm(r)p Fn(|are)h(de\014ned)e(b)m(y)i(the)g Fm(pol)f Fn(parameter.)43 -b(If)30 b Fm(pol)g Fn(is)g(the)h(false)g(BDD)h(then)236 -1186 y(the)f(v)-5 b(ariables)29 b(will)f(b)s(e)h(in)g(negativ)m(e)j -(form,)e(and)g(otherwise)g(they)g(will)e(b)s(e)i(in)f(p)s(ositiv)m(e)g -(form.)236 1449 y Fo(Return)35 b(v)-6 b(alue)p 236 1503 -V 236 1616 a Fn(The)30 b(result)f(of)i(the)f(op)s(eration.)236 -1879 y Fo(See)35 b(also)p 236 1933 V 236 2046 a Fn(b)s(dd)p -397 2046 28 4 v 31 w(allsat)30 b(b)s(dd)p 827 2046 V -31 w(satone,)h(b)s(dd)p 1322 2046 V 31 w(fullsatone,)e(b)s(dd)p -1946 2046 V 31 w(satcoun)m(t,)j(b)s(dd)p 2525 2046 V -31 w(satcoun)m(tln)p 236 2397 3544 12 v 236 2510 a Fo(b)s(dd)p -419 2510 32 4 v 38 w(sa)m(v)m(e)96 b Fn({)31 b(sa)m(v)m(es)g(a)g(BDD)h -(to)f(a)g(\014le)p 236 2564 3544 12 v 236 2769 a Fm(int)47 -b(bdd_fnsave\(char)d(*fname,)i(BDD)g(r\))236 2882 y(int)h -(bdd_save\(FILE)d(*ofile,)i(BDD)h(r\))236 3107 y Fo(Description)p -236 3161 3544 5 v 236 3274 a Fn(Sa)m(v)m(es)34 b(the)g(no)s(des)e(used) -g(b)m(y)h Fm(r)g Fn(to)h(either)f(a)g(\014le)f Fm(ofile)g -Fn(whic)m(h)g(m)m(ust)h(b)s(e)f(op)s(ened)h(for)f(writing)g(or)h(to)236 -3387 y(the)e(\014le)e(named)h Fm(fname)p Fn(.)39 b(In)30 -b(the)h(last)f(case)h(the)g(\014le)e(will)f(b)s(e)i(truncated)g(and)g -(op)s(ened)g(for)g(writing.)236 3650 y Fo(Return)35 b(v)-6 -b(alue)p 236 3704 V 236 3817 a Fn(Zero)31 b(on)f(succes,)h(otherwise)f -(an)g(error)g(co)s(de)g(from)g Fm(bdd.h)p Fn(.)236 4080 -y Fo(See)35 b(also)p 236 4135 V 236 4248 a Fn(b)s(dd)p -397 4248 28 4 v 31 w(load)1962 5989 y(57)p eop -%%Page: 58 66 -58 65 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(scanset)96 b Fn({)31 b(returns)e(an)h(in)m(teger)h -(represen)m(tation)f(of)h(a)g(v)-5 b(ariable)29 b(set)p -236 250 3544 12 v 236 455 a Fm(int)47 b(bdd_scanset\(BDD)d(r,)j(int)g -(**v,)f(int)h(*n\))236 680 y Fo(Description)p 236 734 -3544 5 v 236 847 a Fn(Scans)39 b(a)h(v)-5 b(ariable)39 -b(set)h Fm(r)f Fn(and)g(copies)g(the)h(stored)g(v)-5 -b(ariables)38 b(in)m(to)i(an)f(in)m(teger)h(arra)m(y)g(of)g(v)-5 -b(ariable)236 960 y(n)m(um)m(b)s(ers.)50 b(The)34 b(argumen)m(t)g -Fm(v)g Fn(is)f(the)h(address)f(of)h(an)g(in)m(teger)g(p)s(oin)m(ter)f -(where)h(the)g(arra)m(y)g(is)f(stored)236 1073 y(and)f -Fm(n)g Fn(is)f(a)i(p)s(oin)m(ter)e(to)i(an)g(in)m(teger)f(where)g(the)h -(n)m(um)m(b)s(er)e(of)h(elemen)m(ts)h(are)f(stored.)47 -b(It)32 b(is)g(the)g(users)236 1186 y(resp)s(onsibilit)m(y)f(to)36 -b(mak)m(e)g(sure)f(the)g(arra)m(y)h(is)e(deallo)s(cated)h(b)m(y)g(a)h -(call)e(to)i Fm(free\(v\))p Fn(.)53 b(The)35 b(n)m(um)m(b)s(ers)236 -1298 y(returned)29 b(are)i(guaran)m(teed)h(to)f(b)s(e)e(in)h(ascending) -f(order.)236 1562 y Fo(Return)35 b(v)-6 b(alue)p 236 -1616 V 236 1729 a Fn(Zero)31 b(on)f(success,)h(otherwise)e(a)i(negativ) -m(e)h(error)e(co)s(de.)236 1992 y Fo(See)35 b(also)p -236 2046 V 236 2159 a Fn(b)s(dd)p 397 2159 28 4 v 31 -w(mak)m(eset)p 236 2492 3544 12 v 236 2605 a Fo(b)s(dd)p -419 2605 32 4 v 38 w(setcac)m(heratio)96 b Fn({)31 b(Sets)f(the)h(cac)m -(he)h(ratio)e(for)g(the)h(op)s(erator)f(cac)m(hes)p 236 -2659 3544 12 v 236 2864 a Fm(int)47 b(bdd_setcacheratio\(int)42 -b(r\))236 3089 y Fo(Description)p 236 3143 3544 5 v 236 -3256 a Fn(The)d(ratio)f(b)s(et)m(w)m(een)i(the)f(n)m(um)m(b)s(er)f(of)h -(no)s(des)f(in)f(the)i(no)s(detable)f(and)h(the)g(n)m(um)m(b)s(er)e(of) -i(en)m(tries)g(in)236 3369 y(the)k(op)s(erator)f(cac)m(hetables)i(is)e -(called)f(the)i(cac)m(he)h(ratio.)76 b(So)43 b(a)f(cac)m(he)i(ratio)f -(of)f(sa)m(y)-8 b(,)47 b(four,)e(allo-)236 3482 y(cates)h(one)f(cac)m -(he)h(en)m(try)f(for)f(eac)m(h)i(four)d(unique)g(no)s(de)h(en)m(tries.) -82 b(This)43 b(v)-5 b(alue)44 b(can)h(b)s(e)f(set)h(with)236 -3595 y Fm(bdd)p 386 3595 29 4 v 34 w(setcacheratio)32 -b Fn(to)k(an)m(y)g(p)s(ositiv)m(e)f(v)-5 b(alue.)57 b(When)35 -b(this)g(is)g(done)g(the)h(cac)m(hes)h(are)f(resized)f(in-)236 -3708 y(stan)m(tly)e(to)g(\014t)f(the)h(new)e(ratio.)47 -b(The)32 b(default)f(is)h(a)h(\014xed)e(cac)m(he)j(size)e(determined)f -(at)j(initialization)236 3821 y(time.)236 4084 y Fo(Return)h(v)-6 -b(alue)p 236 4138 3544 5 v 236 4251 a Fn(The)30 b(previous)f(cac)m(he)j -(ratio)e(or)h(a)f(negativ)m(e)i(n)m(um)m(b)s(er)d(on)h(error.)236 -4514 y Fo(See)35 b(also)p 236 4569 V 236 4681 a Fn(b)s(dd)p -397 4681 28 4 v 31 w(init)1962 5989 y(58)p eop -%%Page: 59 67 -59 66 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(setmaxincrease)95 b Fn({)31 b(set)g(max.)40 -b(n)m(um)m(b)s(er)29 b(of)i(no)s(des)f(used)f(to)i(increase)f(no)s(de)g -(table)p 236 250 3544 12 v 236 455 a Fm(int)47 b -(bdd_setmaxincrease\(int)42 b(size\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(The)37 b(no)s(de)f(table)h(is)f(expanded) -g(b)m(y)g(doubling)f(the)i(size)g(of)g(the)g(table)g(when)e(no)i(more)g -(free)g(no)s(des)236 960 y(can)47 b(b)s(e)e(found,)k(but)d(a)g(maxim)m -(um)f(for)h(the)g(n)m(um)m(b)s(er)f(of)i(new)e(no)s(des)h(added)f(can)i -(b)s(e)e(set)i(with)236 1073 y Fm(bdd)p 386 1073 29 4 -v 34 w(maxincrease)27 b Fn(to)k Fm(size)e Fn(no)s(des.)40 -b(The)30 b(default)g(is)f(50000)k(no)s(des)c(\(1)i(Mb\).)236 -1336 y Fo(Return)k(v)-6 b(alue)p 236 1390 3544 5 v 236 -1503 a Fn(The)30 b(old)g(threshold)e(on)j(succes,)g(otherwise)e(a)i -(negativ)m(e)h(error)e(co)s(de.)236 1766 y Fo(See)35 -b(also)p 236 1820 V 236 1933 a Fn(b)s(dd)p 397 1933 28 -4 v 31 w(setmaxno)s(den)m(um,)30 b(b)s(dd)p 1284 1933 -V 31 w(setminfreeno)s(des)p 236 2284 3544 12 v 236 2397 -a Fo(b)s(dd)p 419 2397 32 4 v 38 w(setmaxno)s(den)m(um)94 -b Fn({)31 b(set)g(the)f(maxim)m(um)f(a)m(v)-5 b(ailable)30 -b(n)m(um)m(b)s(er)f(of)i(b)s(dd)d(no)s(des)p 236 2451 -3544 12 v 236 2656 a Fm(int)47 b(bdd_setmaxnodenum\(int)42 -b(size\))236 2881 y Fo(Description)p 236 2935 3544 5 -v 236 3048 a Fn(This)32 b(function)f(sets)j(the)f(maximal)f(n)m(um)m(b) -s(er)g(of)h(b)s(dd)e(no)s(des)i(the)g(pac)m(k)-5 b(age)35 -b(ma)m(y)f(allo)s(cate)f(b)s(efore)g(it)236 3161 y(giv)m(es)g(up)f(a)g -(b)s(dd)f(op)s(eration.)46 b(The)32 b(argumen)m(t)h Fm(size)f -Fn(is)f(the)i(absolute)f(maximal)f(n)m(um)m(b)s(er)h(of)g(no)s(des)236 -3274 y(there)39 b(ma)m(y)g(b)s(e)f(allo)s(cated)h(for)f(the)h(no)s -(detable.)65 b(An)m(y)39 b(attempt)h(to)f(allo)s(cate)g(more)g(no)s -(des)f(results)236 3387 y(in)32 b(the)i(constan)m(t)g(false)f(b)s(eing) -f(returned)g(and)g(the)i(error)f(handler)e(b)s(eing)h(called)g(un)m -(til)g(some)h(no)s(des)236 3500 y(are)f(deallo)s(cated.)44 -b(A)32 b(v)-5 b(alue)31 b(of)h(0)g(is)e(in)m(terpreted)h(as)h(an)f -(unlimited)d(amoun)m(t.)45 b(It)32 b(is)e Ff(not)j Fn(p)s(ossible)c(to) -236 3613 y(sp)s(ecify)g(few)m(er)i(no)s(des)e(than)i(there)f(has)g -(already)g(b)s(een)g(allo)s(cated.)236 3876 y Fo(Return)35 -b(v)-6 b(alue)p 236 3930 V 236 4043 a Fn(The)30 b(old)g(threshold)e(on) -j(succes,)g(otherwise)e(a)i(negativ)m(e)h(error)e(co)s(de.)236 -4306 y Fo(See)35 b(also)p 236 4360 V 236 4473 a Fn(b)s(dd)p -397 4473 28 4 v 31 w(setmaxincrease,)c(b)s(dd)p 1234 -4473 V 31 w(setminfreeno)s(des)1962 5989 y(59)p eop -%%Page: 60 68 -60 67 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(setminfreeno)s(des)95 b Fn({)31 b(set)g(min.)39 -b(no.)h(of)31 b(no)s(des)e(to)i(b)s(e)f(reclaimed)g(after)g(GBC.)p -236 250 3544 12 v 236 455 a Fm(int)47 b(bdd_setminfreenodes\(int)42 -b(n\))236 680 y Fo(Description)p 236 734 3544 5 v 236 -847 a Fn(Whenev)m(er)37 b(a)g(garbage)h(collection)e(is)f(executed)i -(the)g(n)m(um)m(b)s(er)e(of)h(free)h(no)s(des)f(left)g(are)g(c)m(hec)m -(k)m(ed)j(to)236 960 y(see)e(if)e(a)h(resize)g(of)g(the)g(no)s(de)g -(table)g(is)f(required.)55 b(If)36 b Fj(X)42 b Fn(=)34 -b(\()p Ff(b)-5 b(ddfr)g(e)g(enum)33 b Fc(\003)25 b Fn(100\))p -Fj(=)p Ff(maxnum)46 b Fn(is)35 b(less)236 1073 y(than)c(or)h(equal)f -(to)h Fm(n)f Fn(then)g(a)h(resize)f(is)g(initiated.)42 -b(The)31 b(range)h(of)f Fm(X)h Fn(is)e(of)i(course)f(0)15 -b Fj(:)g(:)g(:)i Fn(100)33 b(and)e(has)236 1186 y(some)d(in\015uence)e -(on)i(ho)m(w)f(fast)h(the)g(pac)m(k)-5 b(age)29 b(is.)39 -b(A)28 b(lo)m(w)f(n)m(um)m(b)s(er)f(means)i(harder)e(attempts)j(to)f(a) -m(v)m(oid)236 1298 y(resizing)g(and)g(sa)m(v)m(es)i(space,)g(and)e(a)h -(high)f(n)m(um)m(b)s(er)f(reduces)i(the)g(time)f(used)g(in)g(garbage)i -(collections.)236 1411 y(The)g(default)g(v)-5 b(alue)29 -b(is)h(20.)236 1675 y Fo(Return)35 b(v)-6 b(alue)p 236 -1729 V 236 1842 a Fn(The)30 b(old)g(threshold)e(on)j(succes,)g -(otherwise)e(a)i(negativ)m(e)h(error)e(co)s(de.)236 2105 -y Fo(See)35 b(also)p 236 2159 V 236 2272 a Fn(b)s(dd)p -397 2272 28 4 v 31 w(setmaxno)s(den)m(um,)30 b(b)s(dd)p -1284 2272 V 31 w(setmaxincrease)p 236 2623 3544 12 v -236 2736 a Fo(b)s(dd)p 419 2736 32 4 v 38 w(setpair)95 -b Fn({)31 b(set)g(one)g(v)-5 b(ariable)29 b(pair)p 236 -2790 3544 12 v 236 2995 a Fm(int)47 b(bdd_setpair\(bddPair)c(*pair,)j -(int)h(oldvar,)e(int)i(newvar\))236 3108 y(int)g -(bdd_setbddpair\(bddPair)42 b(*pair,)k(BDD)h(oldvar,)f(BDD)h(newvar\)) -236 3333 y Fo(Description)p 236 3387 3544 5 v 236 3500 -a Fn(Adds)30 b(the)h(pair)e Fm(\(oldvar,newvar\))e Fn(to)k(the)g(table) -g(of)g(pairs)e Fm(pair)p Fn(.)41 b(This)29 b(results)g(in)h -Fm(oldvar)f Fn(b)s(eing)236 3613 y(substituted)24 b(with)h -Fm(newvar)f Fn(in)h(a)h(call)f(to)i Fm(bdd)p 1814 3613 -29 4 v 33 w(replace)p Fn(.)38 b(In)25 b(the)h(\014rst)f(v)m(ersion)g -Fm(newvar)f Fn(is)h(an)h(in)m(teger)236 3726 y(represen)m(ting)43 -b(the)i(v)-5 b(ariable)42 b(to)j(b)s(e)f(replaced)f(with)g(the)h(old)f -(v)-5 b(ariable.)80 b(In)44 b(the)g(second)g(v)m(ersion)236 -3839 y Fm(oldvar)31 b Fn(is)g(a)h(BDD.)i(In)d(this)h(case)h(the)f(v)-5 -b(ariable)31 b Fm(oldvar)g Fn(is)g(substituted)f(with)h(the)i(BDD)g -Fm(newvar)p Fn(.)236 3952 y(The)25 b(p)s(ossibilit)m(y)c(to)26 -b(substitute)e(with)g(an)m(y)i(BDD)g(as)g Fm(newvar)d -Fn(is)h(utilized)f(in)h(b)s(dd)p 3052 3952 28 4 v 31 -w(comp)s(ose,)j(whereas)236 4064 y(only)j(the)g(topmost)h(v)-5 -b(ariable)29 b(in)h(the)g(BDD)i(is)d(used)h(in)f(b)s(dd)p -2350 4064 V 31 w(replace.)236 4328 y Fo(Return)35 b(v)-6 -b(alue)p 236 4382 3544 5 v 236 4495 a Fn(Zero)31 b(on)f(success,)h -(otherwise)e(a)i(negativ)m(e)h(error)e(co)s(de.)236 4758 -y Fo(See)35 b(also)p 236 4812 V 236 4925 a Fn(b)s(dd)p -397 4925 28 4 v 31 w(newpair,)29 b(b)s(dd)p 953 4925 -V 31 w(setpairs,)h(b)s(dd)p 1500 4925 V 30 w(resetpair,)g(b)s(dd)p -2086 4925 V 31 w(replace,)h(b)s(dd)p 2607 4925 V 30 w(comp)s(ose)1962 -5989 y(60)p eop -%%Page: 61 69 -61 68 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(setpairs)95 b Fn({)31 b(de\014nes)f(a)g(whole)g(set)h -(of)g(pairs)p 236 250 3544 12 v 236 455 a Fm(int)47 b -(bdd_setpairs\(bddPair)42 b(*pair,)k(int)h(*oldvar,)f(int)h(*newvar,)e -(int)i(size\))236 568 y(int)g(bdd_setbddpairs\(bddPair)42 -b(*pair,)k(int)h(*oldvar,)e(BDD)i(*newvar,)f(int)g(size\))236 -793 y Fo(Description)p 236 847 3544 5 v 236 960 a Fn(As)28 -b(for)f Fm(bdd)p 654 960 29 4 v 33 w(setpair)f Fn(but)h(with)f -Fm(oldvar)g Fn(and)g Fm(newvar)g Fn(b)s(eing)g(arra)m(ys)i(of)g(v)-5 -b(ariables)26 b(\(BDDs\))j(of)f(size)236 1073 y Fm(size)p -Fn(.)236 1336 y Fo(Return)35 b(v)-6 b(alue)p 236 1390 -3544 5 v 236 1503 a Fn(Zero)31 b(on)f(success,)h(otherwise)e(a)i -(negativ)m(e)h(error)e(co)s(de.)236 1766 y Fo(See)35 -b(also)p 236 1820 V 236 1933 a Fn(b)s(dd)p 397 1933 28 -4 v 31 w(newpair,)29 b(b)s(dd)p 953 1933 V 31 w(setpair,)h(b)s(dd)p -1464 1933 V 30 w(replace,)h(b)s(dd)p 1984 1933 V 31 w(comp)s(ose)p -236 2284 3544 12 v 236 2397 a Fo(b)s(dd)p 419 2397 32 -4 v 38 w(setv)-6 b(arn)m(um)95 b Fn({)31 b(set)g(the)f(n)m(um)m(b)s(er) -f(of)i(used)e(b)s(dd)g(v)-5 b(ariables)p 236 2451 3544 -12 v 236 2656 a Fm(int)47 b(bdd_setvarnum\(int)c(num\))236 -2881 y Fo(Description)p 236 2935 3544 5 v 236 3048 a -Fn(This)31 b(function)h(is)g(used)g(to)i(de\014ne)e(the)h(n)m(um)m(b)s -(er)e(of)i(v)-5 b(ariables)32 b(used)g(in)g(the)h(b)s(dd)e(pac)m(k)-5 -b(age.)50 b(It)33 b(ma)m(y)236 3161 y(b)s(e)25 b(called)g(more)h(than)g -(one)g(time,)g(but)g(only)e(to)j(increase)f(the)g(n)m(um)m(b)s(er)e(of) -i(v)-5 b(ariables.)38 b(The)25 b(argumen)m(t)236 3274 -y Fm(num)30 b Fn(is)f(the)i(n)m(um)m(b)s(er)e(of)h(v)-5 -b(ariables)29 b(to)i(use.)236 3537 y Fo(Return)k(v)-6 -b(alue)p 236 3591 V 236 3704 a Fn(Zero)31 b(on)f(succes,)h(otherwise)f -(a)g(negativ)m(e)i(error)e(co)s(de.)236 3968 y Fo(See)35 -b(also)p 236 4022 V 236 4135 a Fn(b)s(dd)p 397 4135 28 -4 v 31 w(ith)m(v)-5 b(ar,)30 b(b)s(dd)p 872 4135 V 31 -w(v)-5 b(arn)m(um,)30 b(b)s(dd)p 1413 4135 V 30 w(extv)-5 -b(arn)m(um)1962 5989 y(61)p eop -%%Page: 62 70 -62 69 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(setv)-6 b(arorder)96 b Fn({)31 b(set)g(a)f(sp)s -(eci\014c)f(v)-5 b(ariable)30 b(order)p 236 250 3544 -12 v 236 455 a Fm(void)47 b(bdd_setvarorder\(int)42 b(*neworder\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(This)c(function)g -(sets)i(the)g(curren)m(t)g(v)-5 b(ariable)38 b(order)h(to)i(b)s(e)e -(the)h(one)g(de\014ned)e(b)m(y)i Fm(neworder)p Fn(.)66 -b(The)236 960 y(parameter)28 b Fm(neworder)d Fn(is)h(in)m(terpreted)g -(as)i(a)f(sequence)h(of)f(v)-5 b(ariable)26 b(indecies)g(and)h(the)g -(new)g(v)-5 b(ariable)236 1073 y(order)31 b(is)g(exactly)i(this)d -(sequence.)45 b(The)32 b(arra)m(y)g Ff(must)g Fn(con)m(tain)g(all)f -(the)h(v)-5 b(ariables)30 b(de\014ned)g(so)i(far.)45 -b(If)236 1186 y(for)32 b(instance)g(the)g(curren)m(t)f(n)m(um)m(b)s(er) -g(of)h(v)-5 b(ariables)31 b(is)g(3)h(and)f Fm(neworder)f -Fn(con)m(tains)i([1)p Fj(;)15 b Fn(0)p Fj(;)g Fn(2])35 -b(then)c(the)236 1298 y(new)f(v)-5 b(ariable)29 b(order)h(is)g -Fj(v)1138 1312 y Fh(1)1202 1298 y Fj(<)25 b(v)1342 1312 -y Fh(0)1407 1298 y Fj(<)g(v)1547 1312 y Fh(2)1586 1298 -y Fn(.)236 1562 y Fo(See)35 b(also)p 236 1616 V 236 1729 -a Fn(b)s(dd)p 397 1729 28 4 v 31 w(reorder,)30 b(b)s(dd)p -923 1729 V 31 w(prin)m(torder)p 236 2080 3544 12 v 236 -2193 a Fo(b)s(dd)p 419 2193 32 4 v 38 w(simplify)95 b -Fn({)31 b(coudert)f(and)g(Madre's)h(restrict)f(function)p -236 2247 3544 12 v 236 2452 a Fm(BDD)47 b(bdd_simplify\(BDD)c(f,)48 -b(BDD)f(d\))236 2677 y Fo(Description)p 236 2731 3544 -5 v 236 2844 a Fn(T)-8 b(ries)30 b(to)h(simplify)c(the)j(BDD)i -Fm(f)e Fn(b)m(y)g(restricting)f(it)h(to)h(the)f(domaine)g(co)m(v)m -(ered)i(b)m(y)e Fm(d)p Fn(.)40 b(No)31 b(c)m(hec)m(ks)h(are)236 -2957 y(done)f(to)h(see)g(if)e(the)i(result)e(is)g(actually)h(smaller)e -(than)i(the)h(input.)41 b(This)30 b(can)h(b)s(e)g(done)g(b)m(y)g(the)g -(user)236 3070 y(with)e(a)i(call)f(to)h Fm(bdd)p 947 -3070 29 4 v 33 w(nodecount)p Fn(.)236 3333 y Fo(Return)k(v)-6 -b(alue)p 236 3387 3544 5 v 236 3500 a Fn(The)30 b(simpli\014ed)d(BDD) -236 3763 y Fo(See)35 b(also)p 236 3817 V 236 3930 a Fn(b)s(dd)p -397 3930 28 4 v 31 w(restrict)p 236 4263 3544 12 v 236 -4376 a Fo(b)s(dd)p 419 4376 32 4 v 38 w(stats)95 b Fn({)31 -b(returns)e(some)i(status)f(information)f(ab)s(out)h(the)h(b)s(dd)d -(pac)m(k)-5 b(age)p 236 4431 3544 12 v 236 4635 a Fm(void)47 -b(bdd_stats\(bddStat*)c(stat\))236 4860 y Fo(Description)p -236 4915 3544 5 v 236 5027 a Fn(This)22 b(function)g(acquires)h -(information)f(ab)s(out)h(the)h(in)m(ternal)f(state)i(of)e(the)h(b)s -(dd)e(pac)m(k)-5 b(age.)40 b(The)23 b(status)236 5140 -y(information)29 b(is)g(written)h(in)m(to)g(the)h Fm(stat)e -Fn(argumen)m(t.)236 5404 y Fo(See)35 b(also)p 236 5458 -V 236 5571 a Fn(b)s(ddStat)1962 5989 y(62)p eop -%%Page: 63 71 -63 70 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(strm)p 670 196 V 37 w(ho)s(ok)96 b Fn({)31 -b(Sp)s(eci\014es)d(a)j(prin)m(ting)d(callbac)m(k)j(handler)p -236 250 3544 12 v 236 455 a Fm(bddstrmhandler)44 b -(bdd_strm_hook\(bddstrmhand)o(ler)d(handler\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(A)23 -b(prin)m(ting)e(callbac)m(k)i(handler)d(for)j(use)f(with)g(BDDs)i(is)e -(used)f(to)j(con)m(v)m(ert)g(the)f(BDD)h(v)-5 b(ariable)22 -b(n)m(um)m(b)s(er)236 960 y(in)m(to)34 b(something)e(readable)h(b)m(y)h -(the)f(end)g(user.)49 b(T)m(ypically)31 b(the)j(handler)e(will)e(prin)m -(t)i(a)i(string)e(name)236 1073 y(instead)e(of)g(the)h(n)m(um)m(b)s -(er.)39 b(A)31 b(handler)d(could)i(lo)s(ok)g(lik)m(e)f(this:)236 -1260 y Fm(void)47 b(printhandler\(ostream)42 b(&o,)47 -b(int)g(var\))236 1373 y({)379 1486 y(extern)f(char)h(**names;)379 -1599 y(o)h(<<)f(names[var];)236 1712 y(})236 1900 y Fn(The)30 -b(handler)f(can)h(then)g(b)s(e)g(passed)g(to)h(BuDDy)g(lik)m(e)f(this:) -39 b Fm(bdd)p 2510 1900 29 4 v 34 w(strm)p 2736 1900 -V 33 w(hook\(printhandler\))p Fn(.)327 2012 y(No)33 b(default)e -(handler)g(is)g(supplied.)43 b(The)32 b(argumen)m(t)h -Fm(handler)d Fn(ma)m(y)j(b)s(e)e(NULL)i(if)e(no)h(handler)e(is)236 -2125 y(needed.)236 2389 y Fo(Return)35 b(v)-6 b(alue)p -236 2443 3544 5 v 236 2556 a Fn(The)30 b(old)g(handler)236 -2819 y Fo(See)35 b(also)p 236 2873 V 236 2986 a Fn(b)s(dd)p -397 2986 28 4 v 31 w(prin)m(tset,)30 b(b)s(dd)p 946 2986 -V 31 w(\014le)p 1094 2986 V 32 w(ho)s(ok,)g(fdd)p 1503 -2986 V 32 w(strm)p 1718 2986 V 32 w(ho)s(ok)p 236 3337 -3544 12 v 236 3450 a Fo(b)s(dd)p 419 3450 32 4 v 38 w(supp)s(ort)96 -b Fn({)31 b(returns)e(the)h(v)-5 b(ariable)29 b(supp)s(ort)g(of)i(a)f -(BDD)p 236 3504 3544 12 v 236 3709 a Fm(BDD)47 b(bdd_support\(BDD)d -(r\))236 3934 y Fo(Description)p 236 3988 3544 5 v 236 -4101 a Fn(Finds)29 b(all)g(the)i(v)-5 b(ariables)29 b(that)i -Fm(r)f Fn(dep)s(ends)e(on.)41 b(That)30 b(is)g(the)g(supp)s(ort)f(of)h -Fm(r)p Fn(.)236 4364 y Fo(Return)35 b(v)-6 b(alue)p 236 -4418 V 236 4531 a Fn(A)31 b(BDD)g(v)-5 b(ariable)29 b(set.)236 -4794 y Fo(See)35 b(also)p 236 4849 V 236 4962 a Fn(b)s(dd)p -397 4962 28 4 v 31 w(mak)m(eset)1962 5989 y(63)p eop -%%Page: 64 72 -64 71 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(sw)m(ap)m(v)-6 b(ar)96 b Fn({)30 b(Sw)m(ap)g(t)m(w)m(o) -i(BDD)f(v)-5 b(ariables)p 236 250 3544 12 v 236 455 a -Fm(int)47 b(bdd_swapvar\(int)d(v1,)j(int)g(v2\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Use)40 -b Fm(bdd)p 570 847 29 4 v 33 w(swapvar)e Fn(to)h(sw)m(ap)h(the)f(p)s -(osition)e(\(in)i(the)g(curren)m(t)g(v)-5 b(ariable)38 -b(order\))h(of)g(the)h(t)m(w)m(o)g(BDD)236 960 y(v)-5 -b(ariables)30 b Fm(v1)h Fn(and)g Fm(v2)p Fn(.)43 b(There)31 -b(are)h(no)f(constrain)m(ts)g(on)h(the)f(p)s(osition)f(of)h(the)h(t)m -(w)m(o)h(v)-5 b(ariables)30 b(b)s(efore)236 1073 y(the)k(call.)49 -b(This)31 b(function)h(ma)m(y)i Ff(not)h Fn(b)s(e)d(used)h(together)i -(with)d(user)h(de\014ned)f(v)-5 b(ariable)32 b(blo)s(c)m(ks.)49 -b(The)236 1186 y(sw)m(ap)40 b(is)f(done)h(b)m(y)g(a)g(series)g(of)g -(adjacen)m(t)h(v)-5 b(ariable)39 b(sw)m(aps)h(and)f(requires)g(the)h -(whole)f(no)s(de)h(table)236 1298 y(to)35 b(b)s(e)d(rehashed)h(t)m -(wice)h(for)g(eac)m(h)g(call)f(to)h Fm(bdd)p 1882 1298 -V 34 w(swapvar)p Fn(.)48 b(It)34 b(should)d(therefore)j(not)g(b)s(e)f -(used)g(w)m(ere)236 1411 y(e\016ciency)e(is)e(a)i(ma)5 -b(jor)30 b(concern.)236 1675 y Fo(Return)35 b(v)-6 b(alue)p -236 1729 3544 5 v 236 1842 a Fn(Zero)31 b(on)f(succes)h(and)e(a)i -(negativ)m(e)h(error)e(co)s(de)g(otherwise.)236 2105 -y Fo(See)35 b(also)p 236 2159 V 236 2272 a Fn(b)s(dd)p -397 2272 28 4 v 31 w(reorder,)30 b(b)s(dd)p 923 2272 -V 31 w(addv)-5 b(arblo)s(c)m(k)p 236 2623 3544 12 v 236 -2736 a Fo(b)s(dd)p 419 2736 32 4 v 38 w(true)95 b Fn({)31 -b(returns)e(the)i(constan)m(t)g(true)f(b)s(dd)p 236 2790 -3544 12 v 236 2995 a Fm(BDD)47 b(bdd_true\(void\))236 -3220 y Fo(Description)p 236 3274 3544 5 v 236 3387 a -Fn(This)40 b(function)f(returns)h(the)i(constan)m(t)g(true)f(b)s(dd)e -(and)i(can)g(freely)g(b)s(e)f(used)h(together)h(with)e(the)236 -3500 y Fm(bddtrue)29 b Fn(and)g Fm(bddfalse)f Fn(constan)m(ts.)236 -3763 y Fo(Return)35 b(v)-6 b(alue)p 236 3817 V 236 3930 -a Fn(The)30 b(constan)m(t)i(true)e(b)s(dd)236 4193 y -Fo(See)35 b(also)p 236 4248 V 236 4360 a Fn(b)s(dd)p -397 4360 28 4 v 31 w(false,)30 b(b)s(ddtrue,)f(b)s(ddfalse)1962 -5989 y(64)p eop -%%Page: 65 73 -65 72 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(unique)96 b Fn({)31 b(unique)d(quan)m(ti\014cation)i -(of)g(v)-5 b(ariables)p 236 250 3544 12 v 236 455 a Fm(BDD)47 -b(bdd_unique\(BDD)d(r,)j(BDD)g(var\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Remo)m(v)m(es)41 b(all)c(o)s(ccurences)i -(in)f Fm(r)g Fn(of)h(v)-5 b(ariables)37 b(in)h(the)h(set)g -Fm(var)f Fn(b)m(y)g(unique)f(quan)m(ti\014cation.)65 -b(This)236 960 y(t)m(yp)s(e)26 b(of)g(quan)m(ti\014cation)g(uses)f(a)i -(X)m(OR)f(op)s(erator)g(instead)f(of)h(an)g(OR)g(op)s(erator)g(as)g(in) -f(the)h(existen)m(tial)236 1073 y(quan)m(ti\014cation,)k(and)g(an)g -(AND)h(op)s(erator)g(as)g(in)e(the)h(univ)m(ersal)f(quan)m -(ti\014cation.)236 1336 y Fo(Return)35 b(v)-6 b(alue)p -236 1390 V 236 1503 a Fn(The)30 b(quan)m(ti\014ed)f(BDD.)236 -1766 y Fo(See)35 b(also)p 236 1820 V 236 1933 a Fn(b)s(dd)p -397 1933 28 4 v 31 w(exist,)30 b(b)s(dd)p 824 1933 V -31 w(forall,)g(b)s(dd)p 1272 1933 V 30 w(mak)m(eset)p -236 2284 3544 12 v 236 2397 a Fo(b)s(dd)p 419 2397 32 -4 v 38 w(v)-6 b(ar)96 b Fn({)30 b(gets)i(the)e(v)-5 b(ariable)30 -b(lab)s(eling)d(the)k(b)s(dd)p 236 2451 3544 12 v 236 -2656 a Fm(int)47 b(bdd_var\(BDD)e(r\))236 2881 y Fo(Description)p -236 2935 3544 5 v 236 3048 a Fn(Gets)31 b(the)g(v)-5 -b(ariable)29 b(lab)s(eling)f(the)j(b)s(dd)d Fm(r)p Fn(.)236 -3311 y Fo(Return)35 b(v)-6 b(alue)p 236 3366 V 236 3479 -a Fn(The)30 b(v)-5 b(ariable)29 b(n)m(um)m(b)s(er.)p -236 3812 3544 12 v 236 3925 a Fo(b)s(dd)p 419 3925 32 -4 v 38 w(v)-6 b(ar2lev)m(el)96 b Fn({)31 b(F)-8 b(etc)m(h)32 -b(the)f(lev)m(el)f(of)g(a)h(sp)s(eci\014c)e(BDD)j(v)-5 -b(ariable)p 236 3979 3544 12 v 236 4184 a Fm(int)47 b -(bdd_var2level\(int)c(var\))236 4409 y Fo(Description)p -236 4463 3544 5 v 236 4576 a Fn(Returns)30 b(the)g(p)s(osition)f(of)h -(the)h(v)-5 b(ariable)29 b Fm(var)g Fn(in)h(the)g(curren)m(t)g(v)-5 -b(ariable)29 b(order.)236 4839 y Fo(See)35 b(also)p 236 -4893 V 236 5006 a Fn(b)s(dd)p 397 5006 28 4 v 31 w(reorder,)30 -b(b)s(dd)p 923 5006 V 31 w(lev)m(el2v)-5 b(ar)1962 5989 -y(65)p eop -%%Page: 66 74 -66 73 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(v)-6 b(arblo)s(c)m(k)g(all)97 b Fn({)31 -b(add)e(a)i(v)-5 b(ariable)29 b(blo)s(c)m(k)h(for)g(all)g(v)-5 -b(ariables)p 236 250 3544 12 v 236 455 a Fm(void)47 b -(bdd_varblockall\(void\))236 680 y Fo(Description)p 236 -734 3544 5 v 236 847 a Fn(Adds)40 b(a)i(v)-5 b(ariable)40 -b(blo)s(c)m(k)g(for)h(all)f(BDD)i(v)-5 b(ariables)40 -b(declared)h(so)g(far.)73 b(Eac)m(h)41 b(blo)s(c)m(k)g(con)m(tains)g -(one)236 960 y(v)-5 b(ariable)26 b(only)-8 b(.)39 b(More)27 -b(v)-5 b(ariable)25 b(blo)s(c)m(ks)h(can)h(b)s(e)f(added)g(later)h -(with)e(the)i(use)f(of)h Fm(bdd)p 3155 960 29 4 v 34 -w(addvarblock)c Fn({)236 1073 y(in)29 b(this)g(case)i(the)f(tree)h(of)f -(v)-5 b(ariable)28 b(blo)s(c)m(ks)i(will)d(ha)m(v)m(e)k(the)f(blo)s(c)m -(ks)g(of)g(single)f(v)-5 b(ariables)28 b(as)i(the)h(leafs.)236 -1336 y Fo(See)k(also)p 236 1390 3544 5 v 236 1503 a Fn(b)s(dd)p -397 1503 28 4 v 31 w(addv)-5 b(arblo)s(c)m(k,)30 b(b)s(dd)p -1120 1503 V 30 w(in)m(taddv)-5 b(arblo)s(c)m(k)p 236 -1854 3544 12 v 236 1967 a Fo(b)s(dd)p 419 1967 32 4 v -38 w(v)f(arn)m(um)95 b Fn({)31 b(returns)e(the)i(n)m(um)m(b)s(er)e(of)h -(de\014ned)f(v)-5 b(ariables)p 236 2021 3544 12 v 236 -2226 a Fm(int)47 b(bdd_varnum\(void\))236 2451 y Fo(Description)p -236 2505 3544 5 v 236 2618 a Fn(This)29 b(function)g(returns)g(the)i(n) -m(um)m(b)s(er)e(of)h(v)-5 b(ariables)29 b(de\014ned)g(b)m(y)i(a)f(call) -g(to)h Fm(bdd)p 3025 2618 29 4 v 34 w(setvarnum)p Fn(.)236 -2881 y Fo(Return)k(v)-6 b(alue)p 236 2935 3544 5 v 236 -3048 a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(de\014ned)e(v)-5 -b(ariables)236 3311 y Fo(See)35 b(also)p 236 3366 V 236 -3479 a Fn(b)s(dd)p 397 3479 28 4 v 31 w(setv)-5 b(arn)m(um,)30 -b(b)s(dd)p 1049 3479 V 31 w(ith)m(v)-5 b(ar)p 236 3829 -3544 12 v 236 3942 a Fo(b)s(dd)p 419 3942 32 4 v 38 w(v)f(arpro\014le) -96 b Fn({)31 b(returns)e(a)i(v)-5 b(ariable)29 b(pro\014le)p -236 3997 3544 12 v 236 4201 a Fm(int)47 b(*bdd_varprofile\(BDD)c(r\)) -236 4426 y Fo(Description)p 236 4481 3544 5 v 236 4594 -a Fn(Coun)m(ts)34 b(the)g(n)m(um)m(b)s(er)e(of)i(times)f(eac)m(h)i(v)-5 -b(ariable)32 b(o)s(ccurs)i(in)e(the)i(b)s(dd)e Fm(r)p -Fn(.)50 b(The)33 b(result)g(is)f(stored)i(and)236 4706 -y(returned)h(in)g(an)h(in)m(teger)g(arra)m(y)h(where)e(the)h(i'th)g(p)s -(osition)e(stores)i(the)g(n)m(um)m(b)s(er)f(of)h(times)g(the)g(i'th)236 -4819 y(v)-5 b(ariable)30 b(o)s(ccured)g(in)f(the)i(BDD.)h(It)f(is)f -(the)h(users)e(resp)s(onsibilit)m(y)e(to)k(free)g(the)g(arra)m(y)g -(again)g(using)e(a)236 4932 y(call)h(to)h Fm(free)p Fn(.)236 -5195 y Fo(Return)k(v)-6 b(alue)p 236 5250 V 236 5363 -a Fn(A)31 b(p)s(oin)m(ter)e(to)i(an)f(in)m(teger)h(arra)m(y)g(with)e -(the)i(pro\014le)e(or)h(NULL)g(if)g(an)g(error)g(o)s(ccured.)1962 -5989 y(66)p eop -%%Page: 67 75 -67 74 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(v)m(eccomp)s(ose)96 b Fn({)31 b(sim)m(ultaneous)e -(functional)g(comp)s(osition)p 236 250 3544 12 v 236 -455 a Fm(BDD)47 b(bdd_veccompose\(BDD)c(f,)k(bddPair)f(*pair\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Uses)c(the)g -(pairs)f(of)h(v)-5 b(ariables)40 b(and)i(BDDs)g(in)f -Fm(pair)g Fn(to)h(mak)m(e)h(the)f(sim)m(ultaneous)f(substitution:)236 -960 y Fj(f)10 b Fn([)p Fj(g)359 974 y Fh(1)399 960 y -Fj(=V)497 974 y Fh(1)536 960 y Fj(;)15 b(:)g(:)g(:)i(;)e(g)781 -974 y Fi(n)829 960 y Fj(=V)927 974 y Fi(n)974 960 y Fn(].)43 -b(In)30 b(this)g(w)m(a)m(y)i(one)f(or)g(more)g(BDDs)h(ma)m(y)g(b)s(e)e -(substituted)g(in)f(one)i(step.)43 b(The)236 1073 y(BDDs)h(in)d -Fm(pair)g Fn(ma)m(y)i(dep)s(end)d(on)j(the)f(v)-5 b(ariables)41 -b(they)i(are)g(substituting.)74 b Fm(bdd)p 3209 1073 -29 4 v 33 w(compose)41 b Fn(ma)m(y)236 1186 y(b)s(e)d(used)g(instead)g -(of)h Fm(bdd)p 1168 1186 V 33 w(replace)e Fn(but)h(is)f(not)i(as)g -(e\016cien)m(t)g(when)f Fj(g)2765 1200 y Fi(i)2832 1186 -y Fn(is)f(a)i(single)f(v)-5 b(ariable,)39 b(the)236 1298 -y(same)j(applies)e(to)i Fm(bdd)p 1062 1298 V 33 w(restrict)p -Fn(.)72 b(Note)43 b(that)f(sim)m(ultaneous)e(substitution)f(is)i(not)h -(necessarily)236 1411 y(the)k(same)f(as)h(rep)s(eated)f(substitution.) -83 b(Example:)70 b(\()p Fj(x)2279 1425 y Fh(1)2349 1411 -y Fc(_)29 b Fj(x)2491 1425 y Fh(2)2531 1411 y Fn(\)[)p -Fj(x)2643 1425 y Fh(3)2683 1411 y Fj(=x)2780 1425 y Fh(1)2820 -1411 y Fj(;)15 b(x)2912 1425 y Fh(4)2952 1411 y Fj(=x)3049 -1425 y Fh(3)3088 1411 y Fn(])51 b(=)e(\()p Fj(x)3371 -1425 y Fh(3)3441 1411 y Fc(_)30 b Fj(x)3584 1425 y Fh(2)3623 -1411 y Fn(\))51 b Fc(6)p Fn(=)236 1524 y(\(\()p Fj(x)358 -1538 y Fh(1)419 1524 y Fc(_)19 b Fj(x)551 1538 y Fh(2)591 -1524 y Fn(\)[)p Fj(x)703 1538 y Fh(3)743 1524 y Fj(=x)840 -1538 y Fh(1)880 1524 y Fn(]\)[)p Fj(x)1017 1538 y Fh(4)1057 -1524 y Fj(=x)1154 1538 y Fh(3)1194 1524 y Fn(])25 b(=)g(\()p -Fj(x)1427 1538 y Fh(4)1487 1524 y Fc(_)20 b Fj(x)1620 -1538 y Fh(2)1659 1524 y Fn(\).)236 1787 y Fo(Return)35 -b(v)-6 b(alue)p 236 1842 3544 5 v 236 1955 a Fn(The)30 -b(comp)s(osed)g(BDD)236 2218 y Fo(See)35 b(also)p 236 -2272 V 236 2385 a Fn(b)s(dd)p 397 2385 28 4 v 31 w(comp)s(ose,)c(b)s -(dd)p 976 2385 V 31 w(replace,)f(b)s(dd)p 1496 2385 V -31 w(restrict)p 236 2736 3544 12 v 236 2849 a Fo(b)s(dd)p -419 2849 32 4 v 38 w(v)m(ersionn)m(um)96 b Fn({)30 b(returns)g(the)g(v) -m(ersion)g(n)m(um)m(b)s(er)f(of)i(the)f(b)s(dd)f(pac)m(k)-5 -b(age)p 236 2903 3544 12 v 236 3108 a Fm(int)47 b -(bdd_versionnum\(void\))236 3333 y Fo(Description)p 236 -3387 3544 5 v 236 3500 a Fn(This)26 b(function)g(returns)h(the)h(v)m -(ersion)f(n)m(um)m(b)s(er)f(of)i(the)g(b)s(dd)e(pac)m(k)-5 -b(age.)42 b(The)27 b(n)m(um)m(b)s(er)f(is)h(in)f(the)i(range)236 -3613 y(10-99)33 b(for)d(v)m(ersion)g(1.0)h(to)g(9.9.)236 -3876 y Fo(See)k(also)p 236 3930 V 236 4043 a Fn(b)s(dd)p -397 4043 28 4 v 31 w(v)m(ersionstr)p 236 4376 3544 12 -v 236 4489 a Fo(b)s(dd)p 419 4489 32 4 v 38 w(v)m(ersionstr)96 -b Fn({)31 b(returns)e(a)i(text)g(string)f(with)f(v)m(ersion)h -(information)p 236 4543 3544 12 v 236 4748 a Fm(char*)47 -b(bdd_versionstr\(void\))236 4973 y Fo(Description)p -236 5027 3544 5 v 236 5140 a Fn(This)24 b(function)h(returns)g(a)h -(text)h(string)e(with)g(information)f(ab)s(out)i(the)g(v)m(ersion)g(of) -g(the)g(b)s(dd)e(pac)m(k)-5 b(age.)236 5404 y Fo(See)35 -b(also)p 236 5458 V 236 5571 a Fn(b)s(dd)p 397 5571 28 -4 v 31 w(v)m(ersionn)m(um)1962 5989 y(67)p eop -%%Page: 68 76 -68 75 bop 236 83 3544 12 v 236 196 a Fo(b)s(dd)p 419 -196 32 4 v 38 w(xor)96 b Fn({)31 b(The)f(logical)f('xor')i(of)g(t)m(w)m -(o)h(BDDs)p 236 250 3544 12 v 236 455 a Fm(BDD)47 b(bdd_xor\(BDD)e(l,)i -(BDD)g(r\))236 680 y Fo(Description)p 236 734 3544 5 -v 236 847 a Fn(This)29 b(a)i(wrapp)s(er)d(that)j(calls)f -Fm(bdd)p 1426 847 29 4 v 33 w(apply\(l,r,bddop)p 2179 -847 V 30 w(xor\))p Fn(.)236 1110 y Fo(Return)35 b(v)-6 -b(alue)p 236 1164 3544 5 v 236 1277 a Fn(The)30 b(logical)g('xor')h(of) -f Fm(l)g Fn(and)g Fm(r)p Fn(.)236 1540 y Fo(See)35 b(also)p -236 1595 V 236 1707 a Fn(b)s(dd)p 397 1707 28 4 v 31 -w(apply)-8 b(,)30 b(b)s(dd)p 852 1707 V 30 w(or,)h(b)s(dd)p -1175 1707 V 31 w(and)p 236 2058 3544 12 v 236 2171 a -Fo(b)s(ddfalse)61 b Fn({)31 b(the)f(constan)m(t)i(false)e(b)s(dd)p -236 2225 V 236 2423 a Fm(extern)46 b(const)h(BDD)g(bddfalse;)236 -2648 y Fo(Description)p 236 2702 3544 5 v 236 2815 a -Fn(This)29 b(b)s(dd)f(holds)h(the)i(constan)m(t)g(false)f(v)-5 -b(alue)236 3078 y Fo(See)35 b(also)p 236 3132 V 236 3245 -a Fn(b)s(ddtrue,)29 b(b)s(dd)p 769 3245 28 4 v 30 w(true,)i(b)s(dd)p -1173 3245 V 31 w(false)p 236 3596 3544 12 v 236 3709 -a Fo(b)s(ddtrue)96 b Fn({)30 b(the)h(constan)m(t)h(true)e(b)s(dd)p -236 3763 V 236 3960 a Fm(extern)46 b(const)h(BDD)g(bddtrue;)236 -4185 y Fo(Description)p 236 4240 3544 5 v 236 4353 a -Fn(This)29 b(b)s(dd)f(holds)h(the)i(constan)m(t)g(true)f(v)-5 -b(alue)236 4616 y Fo(See)35 b(also)p 236 4670 V 236 4783 -a Fn(b)s(ddfalse,)29 b(b)s(dd)p 782 4783 28 4 v 30 w(true,)i(b)s(dd)p -1186 4783 V 31 w(false)1962 5989 y(68)p eop -%%Page: 69 77 -69 76 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)97 -b Fn({)30 b(A)h(b)s(o)s(olean)e(v)m(ector)p 236 250 V -236 447 a Fm(typedef)46 b(struct)g(s_bvec)236 560 y({)379 -673 y(int)h(bitnum;)379 786 y(BDD)g(*bitvec;)236 899 -y(})h(BVEC;)236 1125 y(typedef)e(BVEC)h(bvec;)236 1350 -y Fo(Description)p 236 1404 3544 5 v 236 1517 a Fn(This)33 -b(data)i(structure)f(is)g(used)f(to)j(store)f(b)s(o)s(olean)e(v)m -(ectors.)55 b(The)34 b(\014eld)f Fm(bitnum)g Fn(is)g(the)i(n)m(um)m(b)s -(er)e(of)236 1630 y(elemen)m(ts)e(in)f(the)h(v)m(ector)h(and)e(the)h -(\014eld)e Fm(bitvec)g Fn(con)m(tains)i(the)g(actual)g(BDDs)h(in)e(the) -h(v)m(ector.)43 b(The)236 1743 y(C++)30 b(v)m(ersion)f(of)i -Fm(bvec)e Fn(is)h(do)s(cumen)m(ted)g(at)h(the)f(b)s(eginning)e(of)j -(this)e(do)s(cumen)m(t)p 236 2093 3544 12 v 236 2206 -a Fo(b)m(v)m(ec)p 443 2206 32 4 v 39 w(add)95 b Fn({)31 -b(builds)c(a)k(b)s(o)s(olean)e(v)m(ector)j(for)e(addition)p -236 2261 3544 12 v 236 2465 a Fm(bvec)47 b(bvec_add\(bvec)d(l,)j(bvec)g -(r\))236 2690 y Fo(Description)p 236 2745 3544 5 v 236 -2858 a Fn(Builds)41 b(a)j(new)f(b)s(o)s(olean)f(v)m(ector)j(that)f -(represen)m(ts)f(the)h(addition)d(of)j(t)m(w)m(o)g(other)g(v)m(ectors.) -81 b(Eac)m(h)236 2970 y(elemen)m(t)31 b Fj(x)624 2984 -y Fi(i)683 2970 y Fn(in)e(the)h(result)f(will)f(represen)m(t)j(the)f -(function)463 3158 y Fj(x)515 3172 y Fi(i)569 3158 y -Fn(=)25 b Fj(l)692 3172 y Fi(i)750 3158 y Fn(xor)31 b -Fj(r)951 3172 y Fi(i)1009 3158 y Fn(xor)g Fj(c)1208 3172 -y Fi(i)p Fg(\000)p Fh(1)236 3346 y Fn(where)f(the)h(carry)f(in)f -Fj(c)1036 3360 y Fi(i)1095 3346 y Fn(is)463 3533 y Fj(c)502 -3547 y Fi(i)556 3533 y Fn(=)c(\()p Fj(l)714 3547 y Fi(i)773 -3533 y Fn(and)30 b Fj(r)991 3547 y Fi(i)1019 3533 y Fn(\))h(or)f(\()p -Fj(c)1270 3547 y Fi(i)p Fg(\000)p Fh(1)1420 3533 y Fn(and)f(\()p -Fj(l)1658 3547 y Fi(i)1717 3533 y Fn(or)i Fj(r)1870 3547 -y Fi(i)1898 3533 y Fn(\)\))p Fj(:)236 3721 y Fn(It)g(is)e(imp)s(ortan)m -(t)h(for)g(e\016cency)h(that)g(the)g(BDD)g(v)-5 b(ariables)29 -b(used)h(in)f Fm(l)h Fn(and)g Fm(r)g Fn(are)g(in)m(terlea)m(v)m(ed.)236 -3984 y Fo(Return)35 b(v)-6 b(alue)p 236 4038 V 236 4151 -a Fn(The)30 b(result)f(of)i(the)f(addition)f(\(whic)m(h)h(is)f(already) -h(reference)h(coun)m(ted\))236 4414 y Fo(See)k(also)p -236 4469 V 236 4582 a Fn(b)m(v)m(ec)p 414 4582 28 4 v -34 w(sub,)30 b(b)m(v)m(ec)p 814 4582 V 34 w(m)m(ul,)f(b)m(v)m(ec)p -1225 4582 V 34 w(shl)1962 5989 y(69)p eop -%%Page: 70 78 -70 77 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(addref)95 b Fn({)31 b(increase)f(reference)h(coun)m -(t)g(of)f(a)h(b)s(o)s(olean)e(v)m(ector)p 236 250 3544 -12 v 236 455 a Fm(bvec)47 b(bvec_addref\(bvec)c(v\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Use)32 -b(this)f(function)f(to)i(increase)g(the)f(reference)h(coun)m(t)h(of)e -(all)g(BDDs)h(in)f(a)h Fm(v)p Fn(.)43 b(Please)32 b(note)g(that)h(all) -236 960 y(b)s(o)s(olean)d(v)m(ectors)h(returned)f(from)g(BuDDy)h(are)f -(reference)h(coun)m(ted)g(from)f(the)h(b)s(eginning.)236 -1223 y Fo(Return)k(v)-6 b(alue)p 236 1277 V 236 1390 -a Fn(The)30 b(b)s(o)s(olean)f(v)m(ector)j Fm(v)236 1653 -y Fo(See)j(also)p 236 1707 V 236 1820 a Fn(b)m(v)m(ec)p -414 1820 28 4 v 34 w(delref)p 236 2154 3544 12 v 236 -2266 a Fo(b)m(v)m(ec)p 443 2266 32 4 v 39 w(co)s(erce)96 -b Fn({)31 b(adjust)f(the)g(size)g(of)h(a)g(b)s(o)s(olean)e(v)m(ector)p -236 2321 3544 12 v 236 2526 a Fm(bvec)47 b(bvec_coerce\(int)c(bitnum,)j -(bvec)h(v\))236 2751 y Fo(Description)p 236 2805 3544 -5 v 236 2918 a Fn(Build)27 b(a)i(b)s(o)s(olean)e(v)m(ector)j(with)e -Fm(bitnum)e Fn(elemen)m(ts)j(copied)f(from)g Fm(v)p Fn(.)40 -b(If)28 b(the)h(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)g(in)236 -3031 y Fm(v)i Fn(is)g(greater)h(than)f Fm(bitnum)f Fn(then)h(the)g -(most)h(signi\014can)m(t)e(bits)g(are)i(remo)m(v)m(ed,)h(otherwise)e -(if)f(n)m(um)m(b)s(er)236 3143 y(is)g(smaller)f(then)h(the)g(v)m(ector) -i(is)e(padded)f(with)g(constan)m(t)i(false)g(BDDs)g(\(zeros\).)236 -3407 y Fo(Return)k(v)-6 b(alue)p 236 3461 V 236 3574 -a Fn(The)30 b(new)g(b)s(o)s(olean)f(v)m(ector)j(\(whic)m(h)e(is)f -(already)h(reference)h(coun)m(ted\))p 236 3930 3544 12 -v 236 4043 a Fo(b)m(v)m(ec)p 443 4043 32 4 v 39 w(con)96 -b Fn({)31 b(Build)d(a)j(b)s(o)s(olean)e(v)m(ector)j(represen)m(ting)e -(an)g(in)m(teger)h(v)-5 b(alue)p 236 4097 3544 12 v 236 -4302 a Fm(bvec)47 b(bvec_con\(int)d(bitnum,)i(int)h(val\))236 -4527 y Fo(Description)p 236 4581 3544 5 v 236 4694 a -Fn(Builds)32 b(a)i(b)s(o)s(olean)e(v)m(ector)k(that)e(represen)m(ts)g -(the)g(v)-5 b(alue)33 b Fm(val)g Fn(using)f Fm(bitnum)g -Fn(bits.)50 b(The)33 b(v)-5 b(alue)33 b(will)236 4807 -y(b)s(e)d(represen)m(ted)g(with)f(the)i(LSB)f(at)h(the)g(p)s(osition)d -(0)j(and)f(the)g(MSB)h(at)g(p)s(osition)d Fm(bitnum)p -Fn(-1.)236 5070 y Fo(Return)35 b(v)-6 b(alue)p 236 5124 -V 236 5237 a Fn(The)30 b(b)s(o)s(olean)f(v)m(ector)j(\(whic)m(h)e(is)f -(already)h(reference)h(coun)m(ted\))236 5500 y Fo(See)k(also)p -236 5554 V 236 5667 a Fn(b)m(v)m(ec)p 414 5667 28 4 v -34 w(true,)c(b)m(v)m(ec)p 839 5667 V 34 w(false,)f(b)m(v)m(ec)p -1276 5667 V 34 w(v)-5 b(ar)1962 5989 y(70)p eop -%%Page: 71 79 -71 78 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(cop)m(y)96 b Fn({)31 b(create)h(a)f(cop)m(y)g(of)f -(a)h(b)m(v)m(ec)p 236 250 3544 12 v 236 455 a Fm(bvec)47 -b(bvec_copy\(bvec)d(src\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Returns)30 b(a)g(cop)m(y)i(of)e -Fm(src)p Fn(.)40 b(The)30 b(result)f(is)g(reference)i(coun)m(ted.)236 -1110 y Fo(See)k(also)p 236 1164 V 236 1277 a Fn(b)m(v)m(ec)p -414 1277 28 4 v 34 w(con)p 236 1610 3544 12 v 236 1723 -a Fo(b)m(v)m(ec)p 443 1723 32 4 v 39 w(delref)95 b Fn({)31 -b(decrease)g(the)g(reference)g(coun)m(t)g(of)f(a)h(b)s(o)s(olean)e(v)m -(ector)p 236 1777 3544 12 v 236 1982 a Fm(bvec)47 b(bvec_delref\(bvec)c -(v\))236 2207 y Fo(Description)p 236 2262 3544 5 v 236 -2374 a Fn(Use)31 b(this)e(function)g(to)i(decrease)h(the)e(reference)h -(coun)m(t)g(of)g(all)e(the)i(BDDs)g(in)e Fm(v)p Fn(.)236 -2638 y Fo(Return)35 b(v)-6 b(alue)p 236 2692 V 236 2805 -a Fn(The)30 b(b)s(o)s(olean)f(v)m(ector)j Fm(v)236 3068 -y Fo(See)j(also)p 236 3122 V 236 3235 a Fn(b)m(v)m(ec)p -414 3235 28 4 v 34 w(addref)p 236 3568 3544 12 v 236 -3681 a Fo(b)m(v)m(ec)p 443 3681 32 4 v 39 w(div)95 b -Fn({)31 b(builds)c(a)k(b)s(o)s(olean)f(v)m(ector)h(for)g(division)p -236 3735 3544 12 v 236 3940 a Fm(int)47 b(bvec_div\(bvec)d(l,)j(bvec)g -(r,)g(bvec)g(*res,)f(bvec)h(*rem\))236 4165 y Fo(Description)p -236 4219 3544 5 v 236 4332 a Fn(Builds)32 b(a)j(new)e(b)s(o)s(olean)g -(v)m(ector)j(represen)m(ting)e(the)g(in)m(teger)h(division)c(of)j -Fm(l)g Fn(with)f Fm(r)p Fn(.)52 b(The)33 b(result)g(of)236 -4445 y(the)e(division)c(will)h(b)s(e)h(stored)i(in)e -Fm(res)g Fn(and)h(the)g(remainder)f(of)i(the)f(division)d(will)h(b)s(e) -i(stored)g(in)f Fm(rem)p Fn(.)236 4558 y(Both)39 b(v)m(ectors)g(should) -d(b)s(e)h(initialized)e(as)j(the)g(function)e(will)f(try)j(to)g -(release)h(the)f(no)s(des)f(used)g(b)m(y)236 4671 y(them.)k(If)30 -b(an)g(error)g(o)s(ccurs)g(then)g(the)h(no)s(des)e(will)f -Ff(not)j Fn(b)s(e)f(freed.)236 4934 y Fo(Return)35 b(v)-6 -b(alue)p 236 4988 V 236 5101 a Fn(Zero)31 b(on)f(success)g(or)h(a)g -(negativ)m(e)g(error)f(co)s(de)h(on)f(error.)236 5365 -y Fo(See)35 b(also)p 236 5419 V 236 5532 a Fn(b)m(v)m(ec)p -414 5532 28 4 v 34 w(m)m(ul,)30 b(b)m(v)m(ec)p 826 5532 -V 34 w(div\014xed,)e(b)m(v)m(ec)p 1401 5532 V 34 w(add,)i(b)m(v)m(ec)p -1810 5532 V 34 w(shl)1962 5989 y(71)p eop -%%Page: 72 80 -72 79 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(div\014xed)96 b Fn({)30 b(builds)e(a)i(b)s(o)s -(olean)g(v)m(ector)i(for)e(division)d(b)m(y)k(a)f(constan)m(t)p -236 250 3544 12 v 236 455 a Fm(int)47 b(bvec_div\(bvec)d(e,)j(int)g(c,) -h(bvec)e(*res,)h(bvec)f(*rem\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Builds)32 b(a)j(new)e(b)s(o)s(olean)g(v)m -(ector)j(represen)m(ting)e(the)g(in)m(teger)h(division)c(of)j -Fm(e)g Fn(with)f Fm(c)p Fn(.)52 b(The)33 b(result)g(of)236 -960 y(the)e(division)c(will)h(b)s(e)h(stored)i(in)e Fm(res)g -Fn(and)h(the)g(remainder)f(of)i(the)f(division)d(will)h(b)s(e)i(stored) -g(in)f Fm(rem)p Fn(.)236 1073 y(Both)39 b(v)m(ectors)g(should)d(b)s(e)h -(initialized)e(as)j(the)g(function)e(will)f(try)j(to)g(release)h(the)f -(no)s(des)f(used)g(b)m(y)236 1186 y(them.)k(If)30 b(an)g(error)g(o)s -(ccurs)g(then)g(the)h(no)s(des)e(will)f Ff(not)j Fn(b)s(e)f(freed.)236 -1449 y Fo(Return)35 b(v)-6 b(alue)p 236 1503 V 236 1616 -a Fn(Zero)31 b(on)f(success)g(or)h(a)g(negativ)m(e)g(error)f(co)s(de)h -(on)f(error.)236 1879 y Fo(See)35 b(also)p 236 1933 V -236 2046 a Fn(b)m(v)m(ec)p 414 2046 28 4 v 34 w(div,)29 -b(b)m(v)m(ec)p 800 2046 V 34 w(m)m(ul,)h(b)m(v)m(ec)p -1212 2046 V 34 w(add,)g(b)m(v)m(ec)p 1621 2046 V 34 w(shl)p -236 2397 3544 12 v 236 2510 a Fo(b)m(v)m(ec)p 443 2510 -32 4 v 39 w(equ)95 b Fn({)31 b(calculates)g(the)f(truth)g(v)-5 -b(alue)30 b(of)g Fj(x)c Fn(=)e Fj(y)p 236 2564 3544 12 -v 236 2769 a Fm(bdd)47 b(bvec_equ\(bvec)d(l,)j(bvec)g(r\))236 -2994 y Fo(Description)p 236 3048 3544 5 v 236 3161 a -Fn(Returns)25 b(the)g(BDD)i(represen)m(ting)d Fm(l)48 -b(=)f(r)25 b Fn(\()p Ff(not)h Fn(reference)g(coun)m(ted\).)40 -b(Both)26 b(v)m(ectors)h(m)m(ust)e(ha)m(v)m(e)h(the)236 -3274 y(same)31 b(n)m(um)m(b)s(er)e(of)i(bits.)236 3537 -y Fo(See)k(also)p 236 3591 V 236 3704 a Fn(b)m(v)m(ec)p -414 3704 28 4 v 34 w(lth,)30 b(b)m(v)m(ec)p 788 3704 -V 34 w(lte,)g(b)m(v)m(ec)p 1151 3704 V 34 w(gth,)h(b)m(v)m(ec)p -1545 3704 V 34 w(gte,)h(b)m(v)m(ec)p 1929 3704 V 34 w(neq)p -236 4055 3544 12 v 236 4168 a Fo(b)m(v)m(ec)p 443 4168 -32 4 v 39 w(false)95 b Fn({)31 b(build)c(a)k(v)m(ector)h(of)e(constan)m -(t)i(false)e(BDDs)p 236 4222 3544 12 v 236 4427 a Fm(bvec)47 -b(bvec_false\(int)d(bitnum\))236 4652 y Fo(Description)p -236 4706 3544 5 v 236 4819 a Fn(Builds)27 b(a)i(b)s(o)s(olean)e(v)m -(ector)k(with)c Fm(bitnum)g Fn(elemen)m(ts,)j(eac)m(h)f(of)g(whic)m(h)f -(are)h(the)g(constan)m(t)h(false)e(BDD.)236 5083 y Fo(Return)35 -b(v)-6 b(alue)p 236 5137 V 236 5250 a Fn(The)30 b(b)s(o)s(olean)f(v)m -(ector)j(\(whic)m(h)e(is)f(already)h(reference)h(coun)m(ted\))236 -5513 y Fo(See)k(also)p 236 5567 V 236 5680 a Fn(b)m(v)m(ec)p -414 5680 28 4 v 34 w(true,)c(b)m(v)m(ec)p 839 5680 V -34 w(con,)g(b)m(v)m(ec)p 1238 5680 V 33 w(v)-5 b(ar)1962 -5989 y(72)p eop -%%Page: 73 81 -73 80 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(free)95 b Fn({)31 b(frees)f(all)f(memory)i(used)e -(b)m(y)h(a)h(b)s(o)s(olean)f(v)m(ector)p 236 250 3544 -12 v 236 455 a Fm(void)47 b(bvec_free\(bvec)d(v\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Use)38 -b(this)f(function)g(to)h(release)h(an)m(y)f(un)m(used)e(b)s(o)s(olean)h -(v)m(ectors.)65 b(The)37 b(decrease)i(of)f(the)g(reference)236 -960 y(coun)m(ts)31 b(on)f(the)h(BDDs)g(in)e Fm(v)h Fn(is)g(done)g(b)m -(y)g Fm(bvec)p 1891 960 29 4 v 34 w(free)p Fn(.)p 236 -1311 3544 12 v 236 1424 a Fo(b)m(v)m(ec)p 443 1424 32 -4 v 39 w(gte)95 b Fn({)31 b(calculates)f(the)h(truth)f(v)-5 -b(alue)29 b(of)i Fj(x)25 b Fc(\025)g Fj(y)p 236 1478 -3544 12 v 236 1683 a Fm(bdd)47 b(bvec_gte\(bvec)d(l,)j(bvec)g(r\))236 -1908 y Fo(Description)p 236 1962 3544 5 v 236 2075 a -Fn(Returns)31 b(the)g(BDD)i(represen)m(ting)e Fm(l)p -Fc(\025)p Fm(r)f Fn(\()p Ff(not)j Fn(reference)f(coun)m(ted\).)44 -b(Both)32 b(v)m(ectors)h(m)m(ust)f(ha)m(v)m(e)g(the)236 -2188 y(same)f(n)m(um)m(b)s(er)e(of)i(bits.)236 2451 y -Fo(See)k(also)p 236 2505 V 236 2618 a Fn(b)m(v)m(ec)p -414 2618 28 4 v 34 w(lth,)30 b(b)m(v)m(ec)p 788 2618 -V 34 w(gth,)h(b)m(v)m(ec)p 1182 2618 V 34 w(gth,)g(b)m(v)m(ec)p -1576 2618 V 34 w(equ,)f(b)m(v)m(ec)p 1977 2618 V 34 w(neq)p -236 2969 3544 12 v 236 3082 a Fo(b)m(v)m(ec)p 443 3082 -32 4 v 39 w(gth)95 b Fn({)31 b(calculates)g(the)f(truth)g(v)-5 -b(alue)30 b(of)g Fj(x)25 b(>)g(y)p 236 3136 3544 12 v -236 3341 a Fm(bdd)47 b(bvec_gth\(bvec)d(l,)j(bvec)g(r\))236 -3566 y Fo(Description)p 236 3620 3544 5 v 236 3733 a -Fn(Returns)25 b(the)g(BDD)i(represen)m(ting)d Fm(l)48 -b(>)f(r)25 b Fn(\()p Ff(not)h Fn(reference)g(coun)m(ted\).)40 -b(Both)26 b(v)m(ectors)h(m)m(ust)e(ha)m(v)m(e)h(the)236 -3846 y(same)31 b(n)m(um)m(b)s(er)e(of)i(bits.)236 4109 -y Fo(See)k(also)p 236 4163 V 236 4276 a Fn(b)m(v)m(ec)p -414 4276 28 4 v 34 w(lth,)30 b(b)m(v)m(ec)p 788 4276 -V 34 w(lte,)g(b)m(v)m(ec)p 1151 4276 V 34 w(gte,)i(b)m(v)m(ec)p -1535 4276 V 34 w(equ,)f(b)m(v)m(ec)p 1937 4276 V 34 w(neq)1962 -5989 y(73)p eop -%%Page: 74 82 -74 81 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(isconst)96 b Fn({)31 b(test)g(a)g(v)m(ector)h(for)e -(constan)m(t)i(true/false)e(BDDs)p 236 250 3544 12 v -236 455 a Fm(int)47 b(bvec_isconst\(bvec)c(v\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Returns)31 -b(non-zero)h(if)f(the)h(v)m(ector)h Fm(v)e Fn(consists)g(of)h(only)f -(constan)m(t)i(true)e(or)h(false)f(BDDs.)46 b(Otherwise)236 -960 y(zero)31 b(is)f(returned.)39 b(This)29 b(test)i(should)e(prelude)f -(an)m(y)j(call)e(to)j Fm(bvec)p 2569 960 29 4 v 33 w(val)p -Fn(.)236 1223 y Fo(See)j(also)p 236 1277 3544 5 v 236 -1390 a Fn(b)m(v)m(ec)p 414 1390 28 4 v 34 w(v)-5 b(al,)30 -b(b)m(v)m(ec)p 790 1390 V 34 w(con)p 236 1741 3544 12 -v 236 1854 a Fo(b)m(v)m(ec)p 443 1854 32 4 v 39 w(ite)95 -b Fn({)31 b(calculates)f(the)h(if-then-else)e(op)s(erator)i(for)f(a)h -(b)s(o)s(olean)e(v)m(ector)p 236 1908 3544 12 v 236 2113 -a Fm(bvec)47 b(bvec_ite\(bdd)d(a,)j(bvec)g(b,)g(bvec)g(c\))236 -2338 y Fo(Description)p 236 2392 3544 5 v 236 2505 a -Fn(Builds)35 b(a)j(v)m(ector)h(where)e(the)h(b)s(dd)e -Fm(a)h Fn(has)g(b)s(een)g(applied)e(bit)m(wise)h(to)i -Fm(b)g Fn(and)e Fm(c)i Fn(in)e(an)h(if-then-else)236 -2618 y(op)s(eration,)30 b(suc)m(h)g(that)h(the)g(result)e -Fj(r)k Fn(is:)463 2806 y Fj(r)504 2820 y Fi(i)558 2806 -y Fn(=)25 b Fj(ite)p Fn(\()p Fj(a;)15 b(b)922 2820 y -Fi(i)951 2806 y Fj(;)g(c)1030 2820 y Fi(i)1059 2806 y -Fn(\);)236 3143 y Fo(Return)35 b(v)-6 b(alue)p 236 3198 -V 236 3311 a Fn(The)30 b(if-then-else)g(result.)236 3574 -y Fo(See)35 b(also)p 236 3628 V 236 3741 a Fn(b)s(dd)p -397 3741 28 4 v 31 w(ite)p 236 4074 3544 12 v 236 4187 -a Fo(b)m(v)m(ec)p 443 4187 32 4 v 39 w(lte)95 b Fn({)31 -b(calculates)f(the)h(truth)e(v)-5 b(alue)30 b(of)h Fj(x)25 -b Fc(\024)g Fj(y)p 236 4241 3544 12 v 236 4446 a Fm(bdd)47 -b(bvec_lte\(bvec)d(l,)j(bvec)g(r\))236 4671 y Fo(Description)p -236 4725 3544 5 v 236 4838 a Fn(Returns)31 b(the)g(BDD)i(represen)m -(ting)e Fm(l)p Fc(\024)p Fm(r)f Fn(\()p Ff(not)j Fn(reference)f(coun)m -(ted\).)44 b(Both)32 b(v)m(ectors)h(m)m(ust)f(ha)m(v)m(e)g(the)236 -4951 y(same)f(n)m(um)m(b)s(er)e(of)i(bits.)236 5214 y -Fo(See)k(also)p 236 5268 V 236 5381 a Fn(b)m(v)m(ec)p -414 5381 28 4 v 34 w(lth,)30 b(b)m(v)m(ec)p 788 5381 -V 34 w(gth,)h(b)m(v)m(ec)p 1182 5381 V 34 w(gte,)g(b)m(v)m(ec)p -1565 5381 V 34 w(equ,)g(b)m(v)m(ec)p 1967 5381 V 34 w(neq)1962 -5989 y(74)p eop -%%Page: 75 83 -75 82 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(lth)95 b Fn({)31 b(calculates)f(the)h(truth)f(v)-5 -b(alue)29 b(of)i Fj(x)25 b(<)g(y)p 236 250 3544 12 v -236 455 a Fm(bdd)47 b(bvec_lth\(bvec)d(l,)j(bvec)g(r\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Returns)25 -b(the)g(BDD)i(represen)m(ting)d Fm(l)48 b(<)f(r)25 b -Fn(\()p Ff(not)h Fn(reference)g(coun)m(ted\).)40 b(Both)26 -b(v)m(ectors)h(m)m(ust)e(ha)m(v)m(e)h(the)236 960 y(same)31 -b(n)m(um)m(b)s(er)e(of)i(bits.)236 1223 y Fo(See)k(also)p -236 1277 V 236 1390 a Fn(b)m(v)m(ec)p 414 1390 28 4 v -34 w(lte,)c(b)m(v)m(ec)p 778 1390 V 34 w(gth,)g(b)m(v)m(ec)p -1172 1390 V 34 w(gte,)g(b)m(v)m(ec)p 1555 1390 V 34 w(equ,)g(b)m(v)m -(ec)p 1957 1390 V 34 w(neq)p 236 1741 3544 12 v 236 1854 -a Fo(b)m(v)m(ec)p 443 1854 32 4 v 39 w(map1)94 b Fn({)31 -b(map)f(a)h(function)e(on)m(to)j(a)e(b)s(o)s(olean)g(v)m(ector)p -236 1908 3544 12 v 236 2113 a Fm(bvec)47 b(bvec_map1\(bvec)d(a,)j(bdd)g -(\(*fun\)\(bdd\)\))236 2338 y Fo(Description)p 236 2392 -3544 5 v 236 2505 a Fn(Maps)32 b(the)f(function)g Fm(fun)f -Fn(on)m(to)j(all)d(the)i(elemen)m(ts)f(in)g Fm(a)p Fn(.)43 -b(The)31 b(v)-5 b(alue)31 b(returned)f(from)h Fm(fun)g -Fn(is)f(stored)236 2618 y(in)36 b(a)h(new)g(v)m(ector)h(whic)m(h)e(is)g -(then)h(returned.)59 b(An)37 b(example)f(of)h(a)h(mapping)d(function)h -(is)g Fm(bdd)p 3609 2618 29 4 v 33 w(not)236 2731 y Fn(whic)m(h)29 -b(can)i(b)s(e)f(used)f(lik)m(e)h(this)327 2957 y Fm(bvec)47 -b(res)g(=)g(bvec)p 1050 2957 V 33 w(map1\(a,)f(bdd)p -1609 2957 V 34 w(not\))236 3182 y Fn(to)31 b(negate)h(all)d(the)i(BDDs) -g(in)f Fm(a)p Fn(.)236 3446 y Fo(Return)35 b(v)-6 b(alue)p -236 3500 3544 5 v 236 3613 a Fn(The)30 b(new)g(v)m(ector)i(\(whic)m(h)d -(is)h(already)g(reference)h(coun)m(ted\))236 3876 y Fo(See)k(also)p -236 3930 V 236 4043 a Fn(b)m(v)m(ec)p 414 4043 28 4 v -34 w(map2,)c(b)m(v)m(ec)p 894 4043 V 34 w(map3)1962 5989 -y(75)p eop -%%Page: 76 84 -76 83 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(map2)94 b Fn({)31 b(map)f(a)h(function)e(on)m(to)j -(a)e(b)s(o)s(olean)g(v)m(ector)p 236 250 3544 12 v 236 -455 a Fm(bvec)47 b(bvec_map2\(bvec)d(a,)j(bvec)g(b,)g(bdd)g -(\(*fun\)\(bdd,bdd\)\))236 680 y Fo(Description)p 236 -734 3544 5 v 236 847 a Fn(Maps)38 b(the)g(function)e -Fm(fun)h Fn(on)m(to)h(all)f(the)g(elemen)m(ts)h(in)f -Fm(a)g Fn(and)g Fm(b)p Fn(.)62 b(The)37 b(v)-5 b(alue)37 -b(returned)f(from)h Fm(fun)236 960 y Fn(is)e(stored)h(in)f(a)h(new)f(v) -m(ector)j(whic)m(h)c(is)h(then)h(returned.)55 b(An)36 -b(example)f(of)h(a)h(mapping)d(function)g(is)236 1073 -y Fm(bdd)p 386 1073 29 4 v 34 w(and)29 b Fn(whic)m(h)g(can)i(b)s(e)f -(used)f(lik)m(e)h(this)327 1298 y Fm(bvec)47 b(res)g(=)g(bvec)p -1050 1298 V 33 w(map2\(a,)f(b,)h(bdd)p 1752 1298 V 34 -w(and\))236 1524 y Fn(to)31 b(calculate)g(the)g(logical)f('and')g(of)g -(all)g(the)g(BDDs)i(in)d Fm(a)h Fn(and)f Fm(b)p Fn(.)236 -1787 y Fo(Return)35 b(v)-6 b(alue)p 236 1842 3544 5 v -236 1955 a Fn(The)30 b(new)g(v)m(ector)i(\(whic)m(h)d(is)h(already)g -(reference)h(coun)m(ted\))236 2218 y Fo(See)k(also)p -236 2272 V 236 2385 a Fn(b)m(v)m(ec)p 414 2385 28 4 v -34 w(map1,)c(b)m(v)m(ec)p 894 2385 V 34 w(map3)p 236 -2736 3544 12 v 236 2849 a Fo(b)m(v)m(ec)p 443 2849 32 -4 v 39 w(map3)94 b Fn({)31 b(map)f(a)h(function)e(on)m(to)j(a)e(b)s(o)s -(olean)g(v)m(ector)p 236 2903 3544 12 v 236 3108 a Fm(bvec)47 -b(bvec_map3\(bvec)d(a,)j(bvec)g(b,)g(bvec)f(c,)i(bdd)e -(\(*fun\)\(bdd,bdd,bdd\)\))236 3333 y Fo(Description)p -236 3387 3544 5 v 236 3500 a Fn(Maps)32 b(the)g(function)e -Fm(fun)h Fn(on)m(to)i(all)e(the)h(elemen)m(ts)g(in)e -Fm(a)p Fn(,)i Fm(b)g Fn(and)f Fm(c)p Fn(.)44 b(The)31 -b(v)-5 b(alue)32 b(returned)e(from)h Fm(fun)236 3613 -y Fn(is)k(stored)h(in)f(a)h(new)f(v)m(ector)j(whic)m(h)c(is)h(then)h -(returned.)55 b(An)36 b(example)f(of)h(a)h(mapping)d(function)g(is)236 -3726 y Fm(bdd)p 386 3726 29 4 v 34 w(ite)29 b Fn(whic)m(h)g(can)i(b)s -(e)f(used)f(lik)m(e)h(this)327 3952 y Fm(bvec)47 b(res)g(=)g(bvec)p -1050 3952 V 33 w(map3\(a,)f(b,)h(c,)h(bdd)p 1896 3952 -V 33 w(ite\))236 4177 y Fn(to)31 b(calculate)g(the)g(if-then-else)e -(function)g(for)i(eac)m(h)g(elemen)m(t)g(in)e Fm(a)p -Fn(,)h Fm(b)g Fn(and)g Fm(c)p Fn(.)236 4441 y Fo(Return)35 -b(v)-6 b(alue)p 236 4495 3544 5 v 236 4608 a Fn(The)30 -b(new)g(v)m(ector)i(\(whic)m(h)d(is)h(already)g(reference)h(coun)m -(ted\))236 4871 y Fo(See)k(also)p 236 4925 V 236 5038 -a Fn(b)m(v)m(ec)p 414 5038 28 4 v 34 w(map1,)c(b)m(v)m(ec)p -894 5038 V 34 w(map2)1962 5989 y(76)p eop -%%Page: 77 85 -77 84 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(m)m(ul)94 b Fn({)31 b(builds)c(a)k(b)s(o)s(olean)f -(v)m(ector)i(for)e(m)m(ultiplication)p 236 250 3544 12 -v 236 455 a Fm(bvec)47 b(bvec_mul\(bvec)d(l,)j(bvec)g(r\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Builds)28 -b(a)j(b)s(o)s(olean)e(v)m(ector)j(represen)m(ting)e(the)h(m)m -(ultiplication)c(of)j Fm(l)h Fn(and)e Fm(r)p Fn(.)236 -1110 y Fo(Return)35 b(v)-6 b(alue)p 236 1164 V 236 1277 -a Fn(The)30 b(result)f(of)i(the)f(m)m(ultiplication)e(\(whic)m(h)h(is)h -(already)g(reference)g(coun)m(ted\))236 1540 y Fo(See)35 -b(also)p 236 1595 V 236 1707 a Fn(b)m(v)m(ec)p 414 1707 -28 4 v 34 w(m)m(ul\014xed,)29 b(b)m(v)m(ec)p 1015 1707 -V 34 w(div,)g(b)m(v)m(ec)p 1401 1707 V 34 w(add,)h(b)m(v)m(ec)p -1810 1707 V 34 w(shl)p 236 2058 3544 12 v 236 2171 a -Fo(b)m(v)m(ec)p 443 2171 32 4 v 39 w(m)m(ul\014xed)95 -b Fn({)30 b(builds)e(a)i(b)s(o)s(olean)g(v)m(ector)i(for)e(m)m -(ultiplication)d(with)i(a)i(constan)m(t)p 236 2225 3544 -12 v 236 2430 a Fm(bvec)47 b(bvec_mulfixed\(bvec)c(e,)k(int)g(c\))236 -2655 y Fo(Description)p 236 2709 3544 5 v 236 2822 a -Fn(Builds)28 b(a)j(b)s(o)s(olean)e(v)m(ector)j(represen)m(ting)e(the)h -(m)m(ultiplication)c(of)j Fm(e)h Fn(and)e Fm(c)p Fn(.)236 -3086 y Fo(Return)35 b(v)-6 b(alue)p 236 3140 V 236 3253 -a Fn(The)30 b(result)f(of)i(the)f(m)m(ultiplication)e(\(whic)m(h)h(is)h -(already)g(reference)g(coun)m(ted\))236 3516 y Fo(See)35 -b(also)p 236 3570 V 236 3683 a Fn(b)m(v)m(ec)p 414 3683 -28 4 v 34 w(m)m(ul,)30 b(b)m(v)m(ec)p 826 3683 V 34 w(div,)f(b)m(v)m -(ec)p 1212 3683 V 34 w(add,)h(b)m(v)m(ec)p 1621 3683 -V 34 w(shl)p 236 4034 3544 12 v 236 4147 a Fo(b)m(v)m(ec)p -443 4147 32 4 v 39 w(neq)95 b Fn({)31 b(calculates)g(the)f(truth)g(v)-5 -b(alue)30 b(of)g Fj(x)c Fc(6)p Fn(=)e Fj(y)p 236 4201 -3544 12 v 236 4406 a Fm(bdd)47 b(bvec_neq\(bvec)d(l,)j(bvec)g(r\))236 -4631 y Fo(Description)p 236 4685 3544 5 v 236 4798 a -Fn(Returns)31 b(the)g(BDD)i(represen)m(ting)e Fm(l)p -Fc(6)p Fn(=)p Fm(r)f Fn(\()p Ff(not)j Fn(reference)f(coun)m(ted\).)44 -b(Both)32 b(v)m(ectors)h(m)m(ust)f(ha)m(v)m(e)g(the)236 -4911 y(same)f(n)m(um)m(b)s(er)e(of)i(bits.)236 5174 y -Fo(See)k(also)p 236 5228 V 236 5341 a Fn(b)m(v)m(ec)p -414 5341 28 4 v 34 w(lte,)c(b)m(v)m(ec)p 778 5341 V 34 -w(lth,)e(b)m(v)m(ec)p 1151 5341 V 34 w(gth,)i(b)m(v)m(ec)p -1545 5341 V 34 w(gth,)g(b)m(v)m(ec)p 1939 5341 V 34 w(equ)1962 -5989 y(77)p eop -%%Page: 78 86 -78 85 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(shl)95 b Fn({)31 b(shift)e(left)h(op)s(eration)g -(\(sym)m(b)s(olic\))p 236 250 3544 12 v 236 455 a Fm(bvec)47 -b(bvec_shl\(bvec)d(l,)j(bvec)g(r,)g(BDD)g(c\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Builds)38 -b(a)j(b)s(o)s(olean)f(v)m(ector)i(that)f(represen)m(ts)f -Fm(l)g Fn(shifted)f Fm(r)h Fn(times)g(to)h(the)g(left.)70 -b(The)40 b(new)g(empt)m(y)236 960 y(elemen)m(ts)e(will)c(b)s(e)j(set)g -(to)h Fm(c)p Fn(.)61 b(The)36 b(shift)g(op)s(eration)g(is)h(fully)d -(sym)m(b)s(olic)i(and)g(the)i(n)m(um)m(b)s(er)d(of)j(bits)236 -1073 y(shifted)29 b(dep)s(ends)g(on)h(the)h(curren)m(t)f(v)-5 -b(alue)30 b(enco)s(ded)g(b)m(y)g Fm(r)p Fn(.)236 1336 -y Fo(Return)35 b(v)-6 b(alue)p 236 1390 V 236 1503 a -Fn(The)30 b(result)f(of)i(the)f(op)s(eration)g(\(whic)m(h)g(is)f -(already)h(reference)h(coun)m(ted\))236 1766 y Fo(See)k(also)p -236 1820 V 236 1933 a Fn(b)m(v)m(ec)p 414 1933 28 4 v -34 w(add,)30 b(b)m(v)m(ec)p 823 1933 V 34 w(m)m(ul,)g(b)m(v)m(ec)p -1235 1933 V 34 w(shl\014xed,)e(b)m(v)m(ec)p 1798 1933 -V 34 w(shr)p 236 2284 3544 12 v 236 2397 a Fo(b)m(v)m(ec)p -443 2397 32 4 v 39 w(shl\014xed)96 b Fn({)31 b(shift)e(left)h(op)s -(eration)f(\(\014xed)i(n)m(um)m(b)s(er)e(of)h(bits\))p -236 2451 3544 12 v 236 2656 a Fm(bvec)47 b(bvec_shlfixed\(bvec)c(v,)k -(int)g(pos,)f(BDD)h(c\))236 2881 y Fo(Description)p 236 -2935 3544 5 v 236 3048 a Fn(Builds)33 b(a)i(b)s(o)s(olean)f(v)m(ector)i -(that)f(represen)m(ts)g Fm(v)g Fn(shifted)e Fm(pos)h -Fn(times)g(to)i(the)f(left.)53 b(The)35 b(new)f(empt)m(y)236 -3161 y(elemen)m(ts)d(will)d(b)s(e)h(set)i(to)g Fm(c)p -Fn(.)236 3424 y Fo(Return)k(v)-6 b(alue)p 236 3479 V -236 3591 a Fn(The)30 b(result)f(of)i(the)f(op)s(eration)g(\(whic)m(h)g -(is)f(already)h(reference)h(coun)m(ted\))236 3855 y Fo(See)k(also)p -236 3909 V 236 4022 a Fn(b)m(v)m(ec)p 414 4022 28 4 v -34 w(add,)30 b(b)m(v)m(ec)p 823 4022 V 34 w(m)m(ul,)g(b)m(v)m(ec)p -1235 4022 V 34 w(shl,)f(b)m(v)m(ec)p 1609 4022 V 34 w(shr)1962 -5989 y(78)p eop -%%Page: 79 87 -79 86 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(shr)96 b Fn({)30 b(shift)f(righ)m(t)h(op)s(eration) -g(\(sym)m(b)s(olic\))p 236 250 3544 12 v 236 455 a Fm(bvec)47 -b(bvec_shr\(bvec)d(l,)j(bvec)g(r,)g(BDD)g(c\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Builds)35 -b(a)i(b)s(o)s(olean)f(v)m(ector)i(that)g(represen)m(ts)e -Fm(l)h Fn(shifted)e Fm(r)i Fn(times)f(to)i(the)f(righ)m(t.)59 -b(The)37 b(new)f(empt)m(y)236 960 y(elemen)m(ts)i(will)c(b)s(e)j(set)g -(to)h Fm(c)p Fn(.)61 b(The)36 b(shift)g(op)s(eration)g(is)h(fully)d -(sym)m(b)s(olic)i(and)g(the)i(n)m(um)m(b)s(er)d(of)j(bits)236 -1073 y(shifted)29 b(dep)s(ends)g(on)h(the)h(curren)m(t)f(v)-5 -b(alue)30 b(enco)s(ded)g(b)m(y)g Fm(r)p Fn(.)236 1336 -y Fo(Return)35 b(v)-6 b(alue)p 236 1390 V 236 1503 a -Fn(The)30 b(result)f(of)i(the)f(op)s(eration)g(\(whic)m(h)g(is)f -(already)h(reference)h(coun)m(ted\))236 1766 y Fo(See)k(also)p -236 1820 V 236 1933 a Fn(b)m(v)m(ec)p 414 1933 28 4 v -34 w(add,)30 b(b)m(v)m(ec)p 823 1933 V 34 w(m)m(ul,)g(b)m(v)m(ec)p -1235 1933 V 34 w(shl,)f(b)m(v)m(ec)p 1609 1933 V 34 w(shr\014xed)p -236 2284 3544 12 v 236 2397 a Fo(b)m(v)m(ec)p 443 2397 -32 4 v 39 w(shr\014xed)96 b Fn({)31 b(shift)e(righ)m(t)h(op)s(eration)p -236 2451 3544 12 v 236 2656 a Fm(bvec)47 b(bvec_shrfixed\(bvec)c(v,)k -(int)g(pos,)f(BDD)h(c\))236 2881 y Fo(Description)p 236 -2935 3544 5 v 236 3048 a Fn(Builds)29 b(a)j(b)s(o)s(olean)e(v)m(ector)j -(that)f(represen)m(ts)f Fm(v)g Fn(shifted)e Fm(pos)i -Fn(times)f(to)i(the)g(righ)m(t.)43 b(The)30 b(new)h(empt)m(y)236 -3161 y(elemen)m(ts)g(will)d(b)s(e)h(set)i(to)g Fm(c)p -Fn(.)236 3424 y Fo(Return)k(v)-6 b(alue)p 236 3479 V -236 3591 a Fn(The)30 b(result)f(of)i(the)f(op)s(eration)g(\(whic)m(h)g -(is)f(already)h(reference)h(coun)m(ted\))236 3855 y Fo(See)k(also)p -236 3909 V 236 4022 a Fn(b)m(v)m(ec)p 414 4022 28 4 v -34 w(add,)30 b(b)m(v)m(ec)p 823 4022 V 34 w(m)m(ul,)g(b)m(v)m(ec)p -1235 4022 V 34 w(shr,)f(b)m(v)m(ec)p 1619 4022 V 34 w(shl)1962 -5989 y(79)p eop -%%Page: 80 88 -80 87 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(sub)96 b Fn({)30 b(builds)d(a)k(b)s(o)s(olean)f(v)m -(ector)i(for)e(subtraction)p 236 250 3544 12 v 236 455 -a Fm(bvec)47 b(bvec_sub\(bvec)d(l,)j(bvec)g(r\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Builds)33 -b(a)j(new)e(b)s(o)s(olean)h(v)m(ector)h(that)g(represen)m(ts)f(the)h -(subtraction)e(of)h(t)m(w)m(o)i(other)e(v)m(ectors.)57 -b(Eac)m(h)236 960 y(elemen)m(t)31 b Fj(x)624 974 y Fi(i)683 -960 y Fn(in)e(the)h(result)f(will)f(represen)m(t)j(the)f(function)463 -1147 y Fj(x)515 1161 y Fi(i)569 1147 y Fn(=)25 b Fj(l)692 -1161 y Fi(i)750 1147 y Fn(xor)31 b Fj(r)951 1161 y Fi(i)1009 -1147 y Fn(xor)g Fj(c)1208 1161 y Fi(i)p Fg(\000)p Fh(1)236 -1335 y Fn(where)f(the)h(carry)f(in)f Fj(c)1036 1349 y -Fi(i)1095 1335 y Fn(is)463 1523 y Fj(c)502 1537 y Fi(i)556 -1523 y Fn(=)c(\()p Fj(l)714 1537 y Fi(i)773 1523 y Fn(and)30 -b Fj(r)991 1537 y Fi(i)1049 1523 y Fn(and)g Fj(c)1265 -1537 y Fi(i)p Fg(\000)p Fh(1)1384 1523 y Fn(\))h(or)f(\(not)h -Fj(l)1785 1537 y Fi(i)1844 1523 y Fn(and)e(\()p Fj(r)2096 -1537 y Fi(i)2155 1523 y Fn(or)h Fj(c)2305 1537 y Fi(i)p -Fg(\000)p Fh(1)2424 1523 y Fn(\)\))p Fj(:)236 1710 y -Fn(It)h(is)e(imp)s(ortan)m(t)h(for)g(e\016cency)h(that)g(the)g(BDD)g(v) --5 b(ariables)29 b(used)h(in)f Fm(l)h Fn(and)g Fm(r)g -Fn(are)g(in)m(terlea)m(v)m(ed.)236 1973 y Fo(Return)35 -b(v)-6 b(alue)p 236 2028 V 236 2141 a Fn(The)30 b(result)f(of)i(the)f -(subtraction)g(\(whic)m(h)f(is)h(already)g(reference)h(coun)m(ted\))236 -2404 y Fo(See)k(also)p 236 2458 V 236 2571 a Fn(b)m(v)m(ec)p -414 2571 28 4 v 34 w(add,)30 b(b)m(v)m(ec)p 823 2571 -V 34 w(m)m(ul,)g(b)m(v)m(ec)p 1235 2571 V 34 w(shl)p -236 2922 3544 12 v 236 3035 a Fo(b)m(v)m(ec)p 443 3035 -32 4 v 39 w(true)95 b Fn({)31 b(build)c(a)k(v)m(ector)h(of)e(constan)m -(t)i(true)e(BDDs)p 236 3089 3544 12 v 236 3294 a Fm(bvec)47 -b(bvec_true\(int)d(bitnum\))236 3519 y Fo(Description)p -236 3573 3544 5 v 236 3686 a Fn(Builds)28 b(a)i(b)s(o)s(olean)e(v)m -(ector)j(with)e Fm(bitnum)f Fn(elemen)m(ts,)i(eac)m(h)h(of)f(whic)m(h)e -(are)i(the)g(constan)m(t)h(true)e(BDD.)236 3949 y Fo(Return)35 -b(v)-6 b(alue)p 236 4003 V 236 4116 a Fn(The)30 b(b)s(o)s(olean)f(v)m -(ector)j(\(whic)m(h)e(is)f(already)h(reference)h(coun)m(ted\))236 -4379 y Fo(See)k(also)p 236 4434 V 236 4546 a Fn(b)m(v)m(ec)p -414 4546 28 4 v 34 w(false,)30 b(b)m(v)m(ec)p 851 4546 -V 34 w(con,)h(b)m(v)m(ec)p 1250 4546 V 34 w(v)-5 b(ar)1962 -5989 y(80)p eop -%%Page: 81 89 -81 88 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(v)-6 b(al)95 b Fn({)31 b(calculate)g(the)f(in)m -(teger)h(v)-5 b(alue)30 b(represen)m(ted)g(b)m(y)h(a)f(b)s(o)s(olean)g -(v)m(ector)p 236 250 3544 12 v 236 455 a Fm(int)47 b(bvec_val\(bvec)d -(v\))236 680 y Fo(Description)p 236 734 3544 5 v 236 -847 a Fn(Calculates)35 b(the)h(v)-5 b(alue)35 b(represen)m(ted)g(b)m(y) -h(the)f(bits)g(in)f Fm(v)h Fn(assuming)f(that)i(the)g(v)m(ector)h -Fm(v)e Fn(consists)g(of)236 960 y(only)30 b(constan)m(t)h(true)g(or)f -(false)g(BDDs.)42 b(The)30 b(LSB)g(is)f(assumed)h(to)h(b)s(e)f(at)h(p)s -(osition)d(zero.)236 1223 y Fo(Return)35 b(v)-6 b(alue)p -236 1277 V 236 1390 a Fn(The)30 b(in)m(teger)h(v)-5 b(alue)30 -b(represen)m(ted)g(b)m(y)g Fm(v)p Fn(.)236 1653 y Fo(See)35 -b(also)p 236 1707 V 236 1820 a Fn(b)m(v)m(ec)p 414 1820 -28 4 v 34 w(isconst,)30 b(b)m(v)m(ec)p 945 1820 V 34 -w(con)p 236 2171 3544 12 v 236 2284 a Fo(b)m(v)m(ec)p -443 2284 32 4 v 39 w(v)-6 b(ar)95 b Fn({)31 b(build)c(a)k(b)s(o)s -(olean)f(v)m(ector)i(with)d(BDD)i(v)-5 b(ariables)p 236 -2338 3544 12 v 236 2543 a Fm(bvec)47 b(bvec_var\(int)d(bitnum,)i(int)h -(offset,)f(int)h(step\))236 2768 y Fo(Description)p 236 -2822 3544 5 v 236 2935 a Fn(Builds)27 b(a)i(b)s(o)s(olean)f(v)m(ector)i -(with)e(the)h(BDD)h(v)-5 b(ariables)27 b Fj(v)2211 2949 -y Fh(1)2251 2935 y Fj(;)15 b(:)g(:)g(:)h(;)f(v)2496 2949 -y Fi(n)2573 2935 y Fn(as)29 b(the)g(elemen)m(ts.)40 b(Eac)m(h)30 -b(v)-5 b(ariable)236 3048 y(will)25 b(b)s(e)i(the)g(the)h(v)-5 -b(ariabled)26 b(n)m(um)m(b)s(ered)g Fm(offset)46 b(+)h(N*step)26 -b Fn(where)h Fm(N)g Fn(ranges)g(from)g(0)h(to)g Fm(bitnum)p -Fn(-1.)236 3311 y Fo(Return)35 b(v)-6 b(alue)p 236 3366 -V 236 3479 a Fn(The)30 b(b)s(o)s(olean)f(v)m(ector)j(\(whic)m(h)e(is)f -(already)h(reference)h(coun)m(ted\))236 3742 y Fo(See)k(also)p -236 3796 V 236 3909 a Fn(b)m(v)m(ec)p 414 3909 28 4 v -34 w(true,)c(b)m(v)m(ec)p 839 3909 V 34 w(false,)f(b)m(v)m(ec)p -1276 3909 V 34 w(con)1962 5989 y(81)p eop -%%Page: 82 90 -82 89 bop 236 83 3544 12 v 236 196 a Fo(b)m(v)m(ec)p -443 196 32 4 v 39 w(v)-6 b(arfdd)95 b Fn({)31 b(build)d(a)i(b)s(o)s -(olean)g(v)m(ector)i(from)e(a)g(FDD)i(v)-5 b(ariable)29 -b(blo)s(c)m(k)p 236 250 3544 12 v 236 455 a Fm(bvec)47 -b(bvec_varfdd\(int)c(var\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Builds)32 b(a)i(b)s(o)s(olean)e(v)m -(ector)k(whic)m(h)c(will)f(include)h(exactly)i(the)g(v)-5 -b(ariables)32 b(used)h(to)h(de\014ne)f(the)h(FDD)236 -960 y(v)-5 b(ariable)29 b(blo)s(c)m(k)h Fm(var)p Fn(.)40 -b(The)30 b(v)m(ector)i(will)c(ha)m(v)m(e)j(the)g(LSB)f(at)h(p)s -(osition)d(zero.)236 1223 y Fo(Return)35 b(v)-6 b(alue)p -236 1277 V 236 1390 a Fn(The)30 b(b)s(o)s(olean)f(v)m(ector)j(\(whic)m -(h)e(is)f(already)h(reference)h(coun)m(ted\))236 1653 -y Fo(See)k(also)p 236 1707 V 236 1820 a Fn(b)m(v)m(ec)p -414 1820 28 4 v 34 w(v)-5 b(ar)p 236 2154 3544 12 v 236 -2266 a Fo(b)m(v)m(ec)p 443 2266 32 4 v 39 w(v)f(arv)m(ec)96 -b Fn({)31 b(build)c(a)k(b)s(o)s(olean)e(v)m(ector)j(with)d(the)i(v)-5 -b(ariables)29 b(passed)h(in)f(an)h(arra)m(y)p 236 2321 -3544 12 v 236 2526 a Fm(bvec)47 b(bvec_varvec\(int)c(bitnum,)j(int)h -(*var\))236 2751 y Fo(Description)p 236 2805 3544 5 v -236 2918 a Fn(Builds)30 b(a)i(b)s(o)s(olean)f(v)m(ector)j(with)d(the)h -(BDD)h(v)-5 b(ariables)31 b(listed)f(in)h(the)h(arra)m(y)h -Fm(var)p Fn(.)45 b(The)31 b(arra)m(y)i(m)m(ust)236 3031 -y(b)s(e)d(of)g(size)h Fm(bitnum)p Fn(.)236 3294 y Fo(Return)k(v)-6 -b(alue)p 236 3348 V 236 3461 a Fn(The)30 b(b)s(o)s(olean)f(v)m(ector)j -(\(whic)m(h)e(is)f(already)h(reference)h(coun)m(ted\))236 -3724 y Fo(See)k(also)p 236 3778 V 236 3891 a Fn(b)m(v)m(ec)p -414 3891 28 4 v 34 w(v)-5 b(ar)p 236 4224 3544 12 v 236 -4337 a Fo(fdd)p 390 4337 32 4 v 38 w(clearall)96 b Fn({)30 -b(clear)h(all)e(allo)s(cated)h(FDD)i(blo)s(c)m(ks)p 236 -4391 3544 12 v 236 4596 a Fm(void)47 b(fdd_clearall\(void\))236 -4821 y Fo(Description)p 236 4876 3544 5 v 236 4988 a -Fn(Remo)m(v)m(es)96 b(all)d(de\014ned)h(\014nite)f(domain)g(blo)s(c)m -(ks)h(de\014ned)f(b)m(y)h Fm(fdd)p 2986 4988 29 4 v 34 -w(extdomain\(\))d Fn(and)236 5101 y Fm(fdd)p 386 5101 -V 34 w(overlapdomain\(\))1962 5989 y Fn(82)p eop -%%Page: 83 91 -83 90 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(domain)95 b Fn({)31 b(BDD)g(enco)s(ding)e(of)i(the)g -(domain)e(of)h(a)h(FDD)h(v)-5 b(ariable)p 236 250 3544 -12 v 236 455 a Fm(BDD)47 b(fdd_domain\(int)d(var\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Returns)29 -b(what)g(corresp)s(onds)f(to)i(a)g(disjunction)d(of)i(all)g(p)s -(ossible)e(v)-5 b(alues)28 b(of)i(the)g(v)-5 b(ariable)28 -b Fm(var)p Fn(.)39 b(This)236 960 y(is)30 b(more)i(e\016cien)m(t)g -(than)e(doing)h Fm(fdd)p 1505 960 29 4 v 33 w(ithvar\(var,0\))45 -b(OR)i(fdd)p 2494 960 V 33 w(ithvar\(var,1\))d(...)e -Fn(explicitely)236 1073 y(for)30 b(all)g(v)-5 b(alues)29 -b(in)g(the)i(domain)e(of)i Fm(var)p Fn(.)236 1336 y Fo(Return)k(v)-6 -b(alue)p 236 1390 3544 5 v 236 1503 a Fn(The)30 b(enco)s(ding)f(of)i -(the)g(domain)p 236 1854 3544 12 v 236 1967 a Fo(fdd)p -390 1967 32 4 v 38 w(domainn)m(um)94 b Fn({)31 b(n)m(um)m(b)s(er)e(of)i -(de\014ned)e(\014nite)g(domain)g(blo)s(c)m(ks)p 236 2021 -3544 12 v 236 2226 a Fm(int)47 b(fdd_domainnum\(void\))236 -2451 y Fo(Description)p 236 2505 3544 5 v 236 2618 a -Fn(Returns)30 b(the)g(n)m(um)m(b)s(er)f(of)i(\014nite)e(domain)g(blo)s -(c)m(ks)h(de\014ne)g(b)m(y)g(calls)g(to)h Fm(bdd)p 2857 -2618 29 4 v 33 w(extdomain)p Fn(.)236 2881 y Fo(Return)k(v)-6 -b(alue)p 236 2935 3544 5 v 236 3048 a Fn(The)30 b(n)m(um)m(b)s(er)f(of) -i(de\014ned)e(\014nite)g(domain)g(blo)s(c)m(ks)h(or)g(a)h(negativ)m(e)h -(error)e(co)s(de)236 3311 y Fo(See)35 b(also)p 236 3366 -V 236 3479 a Fn(fdd)p 371 3479 28 4 v 32 w(domainsize,)29 -b(fdd)p 1023 3479 V 32 w(extdomain)p 236 3829 3544 12 -v 236 3942 a Fo(fdd)p 390 3942 32 4 v 38 w(domainsize)95 -b Fn({)31 b(real)f(size)g(of)h(a)g(\014nite)e(domain)g(blo)s(c)m(k)p -236 3997 3544 12 v 236 4201 a Fm(int)47 b(fdd_domainsize\(int)c(var\)) -236 4426 y Fo(Description)p 236 4481 3544 5 v 236 4594 -a Fn(Returns)30 b(the)g(size)g(of)h(the)g(domain)e(for)h(the)h -(\014nite)e(domain)g(blo)s(c)m(k)h Fm(var)p Fn(.)236 -4857 y Fo(Return)35 b(v)-6 b(alue)p 236 4911 V 236 5024 -a Fn(The)30 b(size)g(or)h(a)f(negativ)m(e)i(error)e(co)s(de)236 -5287 y Fo(See)35 b(also)p 236 5341 V 236 5454 a Fn(fdd)p -371 5454 28 4 v 32 w(domainn)m(um)1962 5989 y(83)p eop -%%Page: 84 92 -84 91 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(equals)96 b Fn({)30 b(returns)g(a)g(BDD)i(setting)e(t)m(w)m -(o)i(FD.)f(blo)s(c)m(ks)f(equal)p 236 250 3544 12 v 236 -455 a Fm(BDD)47 b(fdd_equals\(int)d(f,)j(int)g(g\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Builds)26 -b(a)i(BDD)g(whic)m(h)f(is)f(true)i(for)f(all)g(the)g(p)s(ossible)f -(assignmen)m(ts)h(to)h(the)g(v)-5 b(ariable)27 b(blo)s(c)m(ks)g -Fm(f)g Fn(and)g Fm(g)236 960 y Fn(that)k(mak)m(es)g(the)g(blo)s(c)m(ks) -f(equal.)40 b(This)29 b(is)g(more)i(or)f(less)g(just)f(a)i(shorthand)e -(for)h(calling)f Fm(fdd)p 3482 960 29 4 v 34 w(equ\(\))p -Fn(.)236 1223 y Fo(Return)35 b(v)-6 b(alue)p 236 1277 -3544 5 v 236 1390 a Fn(The)30 b(correct)i(BDD)f(or)g(the)f(constan)m(t) -i(false)e(on)g(errors.)p 236 1723 3544 12 v 236 1836 -a Fo(fdd)p 390 1836 32 4 v 38 w(extdomain)95 b Fn({)30 -b(adds)g(another)h(set)f(of)h(\014nite)e(domain)h(blo)s(c)m(ks)p -236 1890 3544 12 v 236 2095 a Fm(int)47 b(fdd_extdomain\(int)c(*dom,)k -(int)f(num\))236 2320 y Fo(Description)p 236 2374 3544 -5 v 236 2487 a Fn(Extends)32 b(the)g(set)h(of)f(\014nite)g(domain)f -(blo)s(c)m(ks)g(with)g(the)i Fm(num)e Fn(domains)g(in)g -Fm(dom)p Fn(.)45 b(Eac)m(h)33 b(en)m(try)f(in)f Fm(dom)236 -2600 y Fn(de\014nes)d(the)i(size)f(of)g(a)g(new)g(\014nite)f(domain)g -(whic)m(h)f(later)j(on)e(can)i(b)s(e)e(used)h(for)f(\014nite)g(state)j -(mac)m(hine)236 2713 y(tra)m(v)m(ersal)43 b(and)e(other)h(op)s -(erations)f(on)h(\014n)m(te)g(domains.)73 b(Eac)m(h)43 -b(domain)d(allo)s(cates)i(log)3366 2735 y Fh(2)3405 2713 -y Fn(\()p Fc(j)p Fj(dom)p Fn([)p Fj(i)p Fn(])p Fc(j)p -Fn(\))236 2826 y(BDD)c(v)-5 b(ariables)36 b(to)h(b)s(e)f(used)g(later.) -60 b(The)36 b(ordering)f(is)h(in)m(terlea)m(v)m(ed)h(for)g(the)g -(domains)e(de\014ned)h(in)236 2939 y(eac)m(h)27 b(call)d(to)j -Fm(bdd)p 854 2939 29 4 v 33 w(extdomain)p Fn(.)37 b(This)23 -b(means)i(that)h(assuming)e(domain)h Fj(D)2826 2953 y -Fh(0)2891 2939 y Fn(needs)f(2)i(BDD)h(v)-5 b(ariables)236 -3052 y Fj(x)288 3066 y Fh(1)354 3052 y Fn(and)25 b Fj(x)578 -3066 y Fh(2)618 3052 y Fn(,)i(and)e(another)i(domain)e -Fj(D)1566 3066 y Fh(1)1632 3052 y Fn(needs)g(4)i(BDD)g(v)-5 -b(ariables)25 b Fj(y)2594 3066 y Fh(1)2633 3052 y Fj(;)15 -b(y)2718 3066 y Fh(2)2757 3052 y Fj(;)g(y)2842 3066 y -Fh(3)2908 3052 y Fn(and)26 b Fj(y)3126 3066 y Fh(4)3165 -3052 y Fn(,)h(then)f(the)g(order)236 3165 y(will)g(b)s(e)i -Fj(x)580 3179 y Fh(1)620 3165 y Fj(;)15 b(y)705 3179 -y Fh(1)744 3165 y Fj(;)g(x)836 3179 y Fh(2)876 3165 y -Fj(;)g(y)961 3179 y Fh(2)1000 3165 y Fj(;)g(y)1085 3179 -y Fh(3)1125 3165 y Fj(;)g(y)1210 3179 y Fh(4)1249 3165 -y Fn(.)40 b(The)29 b(index)e(of)i(the)g(\014rst)f(domain)g(in)f -Fm(dom)h Fn(is)g(returned.)39 b(The)28 b(index)f(of)236 -3278 y(the)k(other)f(domains)g(are)g(o\013set)i(from)e(this)f(index)g -(with)g(the)h(same)h(o\013set)h(as)e(in)f Fm(dom)p Fn(.)327 -3391 y(The)36 b(BDD)h(v)-5 b(ariables)35 b(needed)h(to)g(enco)s(de)h -(the)f(domain)f(are)h(created)i(for)d(the)i(purp)s(ose)d(and)i(do)236 -3504 y(not)31 b(in)m(terfere)f(with)f(the)i(BDD)g(v)-5 -b(ariables)29 b(already)h(in)f(use.)236 3767 y Fo(Return)35 -b(v)-6 b(alue)p 236 3821 3544 5 v 236 3934 a Fn(The)30 -b(index)f(of)i(the)f(\014rst)g(domain)f(or)h(a)h(negativ)m(e)h(error)e -(co)s(de.)236 4197 y Fo(See)35 b(also)p 236 4251 V 236 -4364 a Fn(fdd)p 371 4364 28 4 v 32 w(ith)m(v)-5 b(ar,)30 -b(fdd)p 821 4364 V 31 w(equals,)g(fdd)p 1283 4364 V 32 -w(o)m(v)m(erlap)s(domain)1962 5989 y(84)p eop -%%Page: 85 93 -85 92 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(\014le)p 563 196 V 38 w(ho)s(ok)96 b Fn({)31 -b(Sp)s(eci\014es)d(a)j(prin)m(ting)d(callbac)m(k)j(handler)p -236 250 3544 12 v 236 455 a Fm(bddfilehandler)44 b -(fdd_file_hook\(bddfilehand)o(ler)d(handler\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(A)23 -b(prin)m(ting)e(callbac)m(k)i(handler)d(for)j(use)f(with)g(FDDs)i(is)d -(used)h(to)i(con)m(v)m(ert)g(the)f(FDD)h(in)m(teger)f(iden)m(ti\014er) -236 960 y(in)m(to)34 b(something)e(readable)h(b)m(y)h(the)f(end)g -(user.)49 b(T)m(ypically)31 b(the)j(handler)e(will)e(prin)m(t)i(a)i -(string)e(name)236 1073 y(instead)e(of)g(the)h(iden)m(ti\014er.)39 -b(A)30 b(handler)f(could)g(lo)s(ok)h(lik)m(e)g(this:)236 -1260 y Fm(void)47 b(printhandler\(FILE)c(*o,)k(int)g(var\))236 -1373 y({)379 1486 y(extern)f(char)h(**names;)379 1599 -y(fprintf\(o,)e("\045s",)i(names[var]\);)236 1712 y(})236 -1900 y Fn(The)30 b(handler)f(can)h(then)g(b)s(e)g(passed)g(to)h(BuDDy)g -(lik)m(e)f(this:)39 b Fm(fdd)p 2510 1900 29 4 v 34 w(file)p -2736 1900 V 33 w(hook\(printhandler\))p Fn(.)327 2012 -y(No)33 b(default)e(handler)g(is)g(supplied.)43 b(The)32 -b(argumen)m(t)h Fm(handler)d Fn(ma)m(y)j(b)s(e)e(NULL)i(if)e(no)h -(handler)e(is)236 2125 y(needed.)236 2389 y Fo(Return)35 -b(v)-6 b(alue)p 236 2443 3544 5 v 236 2556 a Fn(The)30 -b(old)g(handler)236 2819 y Fo(See)35 b(also)p 236 2873 -V 236 2986 a Fn(fdd)p 371 2986 28 4 v 32 w(prin)m(tset,)30 -b(b)s(dd)p 921 2986 V 30 w(\014le)p 1068 2986 V 32 w(ho)s(ok)p -236 3337 3544 12 v 236 3450 a Fo(fdd)p 390 3450 32 4 -v 38 w(in)m(taddv)-6 b(arblo)s(c)m(k)97 b Fn({)30 b(adds)g(a)h(new)f(v) --5 b(ariable)29 b(blo)s(c)m(k)h(for)g(reordering)p 236 -3504 3544 12 v 236 3709 a Fm(int)47 b(fdd_intaddvarblock\(int)42 -b(first,)k(int)h(last,)f(int)h(fixed\))236 3934 y Fo(Description)p -236 3988 3544 5 v 236 4101 a Fn(W)-8 b(orks)37 b(exactly)h(lik)m(e)e -Fm(bdd)p 1166 4101 29 4 v 33 w(addvarblock)e Fn(except)j(that)g -Fm(fdd)p 2399 4101 V 34 w(intaddvarblock)32 b Fn(tak)m(es)38 -b(a)f(range)g(of)236 4214 y(FDD)32 b(v)-5 b(ariables)29 -b(instead)g(of)i(BDD)h(v)-5 b(ariables.)236 4477 y Fo(Return)35 -b(v)-6 b(alue)p 236 4531 3544 5 v 236 4644 a Fn(Zero)31 -b(on)f(success,)h(otherwise)e(a)i(negativ)m(e)h(error)e(co)s(de.)236 -4907 y Fo(See)35 b(also)p 236 4962 V 236 5074 a Fn(b)s(dd)p -397 5074 28 4 v 31 w(addv)-5 b(arblo)s(c)m(k,)30 b(b)s(dd)p -1120 5074 V 30 w(in)m(taddv)-5 b(arblo)s(c)m(k,)30 b(b)s(dd)p -1951 5074 V 30 w(reorder)1962 5989 y(85)p eop -%%Page: 86 94 -86 93 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(ithset)95 b Fn({)31 b(the)f(v)-5 b(ariable)29 -b(set)i(for)g(the)f(i'th)g(\014nite)f(domain)g(blo)s(c)m(k)p -236 250 3544 12 v 236 455 a Fm(BDD)47 b(fdd_ithset\(int)d(var\))236 -680 y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(Returns)27 -b(the)i(v)-5 b(ariable)27 b(set)h(that)h(con)m(tains)f(the)g(v)-5 -b(ariables)27 b(used)g(to)i(de\014ne)f(the)g(\014nite)f(domain)g(blo)s -(c)m(k)236 960 y Fm(var)p Fn(.)236 1223 y Fo(Return)35 -b(v)-6 b(alue)p 236 1277 V 236 1390 a Fn(The)30 b(v)-5 -b(ariable)29 b(set)i(or)g(the)f(constan)m(t)i(false)e(BDD)h(on)g -(error.)236 1653 y Fo(See)k(also)p 236 1707 V 236 1820 -a Fn(fdd)p 371 1820 28 4 v 32 w(ith)m(v)-5 b(ar)p 236 -2154 3544 12 v 236 2266 a Fo(fdd)p 390 2266 32 4 v 38 -w(ith)m(v)f(ar)96 b Fn({)30 b(the)h(BDD)g(for)g(the)f(i'th)g(FDD)h(set) -g(to)g(a)g(sp)s(eci\014c)e(v)-5 b(alue)p 236 2321 3544 -12 v 236 2526 a Fm(BDD)47 b(fdd_ithvar\(int)d(var,)j(int)g(val\))236 -2751 y Fo(Description)p 236 2805 3544 5 v 236 2918 a -Fn(Returns)23 b(the)i(BDD)g(that)g(de\014nes)e(the)h(v)-5 -b(alue)23 b Fm(val)h Fn(for)f(the)i(\014nite)e(domain)g(blo)s(c)m(k)g -Fm(var)p Fn(.)38 b(The)24 b(enco)s(ding)236 3031 y(places)33 -b(the)g(Least)g(Signi\014can)m(t)f(Bit)g(at)i(the)f(top)g(of)f(the)h -(BDD)h(tree)g(\(whic)m(h)e(means)g(they)h(will)d(ha)m(v)m(e)236 -3143 y(the)35 b(lo)m(w)m(est)h(v)-5 b(ariable)33 b(index\).)53 -b(The)34 b(returned)g(BDD)i(will)c(b)s(e)i Fj(V)2509 -3157 y Fh(0)2571 3143 y Fc(^)23 b Fj(V)2708 3157 y Fh(1)2771 -3143 y Fc(^)f Fj(:)15 b(:)g(:)25 b Fc(^)d Fj(V)3120 3157 -y Fi(N)3222 3143 y Fn(where)34 b(eac)m(h)i Fj(V)3751 -3157 y Fi(i)236 3256 y Fn(will)28 b(b)s(e)i(in)f(p)s(ositiv)m(e)g(or)h -(negativ)m(e)i(form)e(dep)s(ending)e(on)i(the)h(v)-5 -b(alue)29 b(of)i Fm(val)p Fn(.)236 3520 y Fo(Return)k(v)-6 -b(alue)p 236 3574 V 236 3687 a Fn(The)30 b(correct)i(BDD)f(or)g(the)f -(constan)m(t)i(false)e(BDD)h(on)g(error.)236 3950 y Fo(See)k(also)p -236 4004 V 236 4117 a Fn(fdd)p 371 4117 28 4 v 32 w(ithset)1962 -5989 y(86)p eop -%%Page: 87 95 -87 94 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(mak)m(eset)94 b Fn({)31 b(creates)h(a)f(v)-5 -b(ariable)29 b(set)i(for)f(N)g(\014nite)g(domain)f(blo)s(c)m(ks)p -236 250 3544 12 v 236 455 a Fm(BDD)47 b(fdd_makeset\(int)d(*varset,)h -(int)i(varnum\))236 680 y Fo(Description)p 236 734 3544 -5 v 236 847 a Fn(Returns)25 b(a)g(BDD)i(de\014ning)c(all)h(the)i(v)-5 -b(ariable)24 b(sets)h(used)g(to)h(de\014ne)e(the)i(v)-5 -b(ariable)24 b(blo)s(c)m(ks)h(in)e(the)j(arra)m(y)236 -960 y Fm(varset)p Fn(.)39 b(The)30 b(argumen)m(t)h Fm(varnum)e -Fn(de\014nes)g(the)i(size)f(of)g Fm(varset)p Fn(.)236 -1223 y Fo(Return)35 b(v)-6 b(alue)p 236 1277 V 236 1390 -a Fn(The)30 b(correct)i(BDD)f(or)g(the)f(constan)m(t)i(false)e(on)g -(errors.)236 1653 y Fo(See)35 b(also)p 236 1707 V 236 -1820 a Fn(fdd)p 371 1820 28 4 v 32 w(ithset,)30 b(b)s(dd)p -837 1820 V 31 w(mak)m(eset)p 236 2171 3544 12 v 236 2284 -a Fo(fdd)p 390 2284 32 4 v 38 w(o)m(v)m(erlap)s(domain)95 -b Fn({)31 b(com)m(bine)f(t)m(w)m(o)i(FDD)f(blo)s(c)m(ks)f(in)m(to)g -(one)p 236 2338 3544 12 v 236 2543 a Fm(int)47 b -(fdd_overlapdomain\(int)42 b(v1,)47 b(int)g(v2\))236 -2768 y Fo(Description)p 236 2822 3544 5 v 236 2935 a -Fn(This)29 b(function)g(tak)m(es)j(t)m(w)m(o)g(FDD)g(blo)s(c)m(ks)e -(and)g(merges)h(them)g(in)m(to)f(a)h(new)f(one,)i(suc)m(h)e(that)h(the) -g(new)236 3048 y(one)26 b(is)e(enco)s(ded)h(using)e(b)s(oth)i(sets)h -(of)f(BDD)h(v)-5 b(ariables.)38 b(If)25 b Fm(v1)f Fn(is)g(enco)s(ded)h -(using)f(the)h(BDD)i(v)-5 b(ariables)236 3161 y Fj(a)284 -3175 y Fh(1)324 3161 y Fj(;)15 b(:)g(:)g(:)h(;)f(a)573 -3175 y Fi(n)644 3161 y Fn(and)24 b(has)f(a)h(domain)f(of)h([0)p -Fj(;)15 b(N)1636 3175 y Fh(1)1676 3161 y Fn(],)26 b(and)d -Fm(v2)g Fn(is)g(enco)s(ded)g(using)g Fj(b)2741 3175 y -Fh(1)2780 3161 y Fj(;)15 b(:)g(:)g(:)i(;)e(b)3021 3175 -y Fi(n)3092 3161 y Fn(and)23 b(has)g(a)i(domain)236 3274 -y(of)37 b([0)p Fj(;)15 b(N)529 3288 y Fh(2)570 3274 y -Fn(],)38 b(then)e(the)h(result)e(will)f(b)s(e)i(enco)s(ded)g(using)f -(the)i(BDD)h(v)-5 b(ariables)35 b Fj(a)3036 3288 y Fh(1)3076 -3274 y Fj(;)15 b(:)g(:)g(:)h(;)f(a)3325 3288 y Fi(n)3373 -3274 y Fj(;)g(b)3452 3288 y Fh(1)3492 3274 y Fj(;)g(:)g(:)g(:)h(;)f(b) -3732 3288 y Fi(n)236 3387 y Fn(and)36 b(ha)m(v)m(e)i(the)f(domain)f([0) -p Fj(;)15 b(N)1311 3401 y Fh(1)1376 3387 y Fc(\003)25 -b Fj(N)1519 3401 y Fh(2)1558 3387 y Fn(].)60 b(The)37 -b(use)f(of)h(this)f(function)f(ma)m(y)j(result)d(in)h(some)h(strange) -236 3500 y(output)30 b(from)g Fm(fdd)p 899 3500 29 4 -v 34 w(printset)p Fn(.)236 3763 y Fo(Return)35 b(v)-6 -b(alue)p 236 3817 3544 5 v 236 3930 a Fn(The)30 b(index)f(of)i(the)f -(\014nite)f(domain)h(blo)s(c)m(k)236 4193 y Fo(See)35 -b(also)p 236 4248 V 236 4360 a Fn(fdd)p 371 4360 28 4 -v 32 w(extdomain)1962 5989 y(87)p eop -%%Page: 88 96 -88 95 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(prin)m(tset)95 b Fn({)31 b(prin)m(ts)e(a)i(BDD)g(for)f(a)h -(\014nite)e(domain)h(blo)s(c)m(k)p 236 250 3544 12 v -236 455 a Fm(void)47 b(fdd_printset\(BDD)c(r\))236 568 -y(void)k(fdd_fprintset\(FILE)c(*ofile,)i(BDD)i(f\))236 -793 y Fo(Description)p 236 847 3544 5 v 236 960 a Fn(Prin)m(ts)26 -b(the)h(BDD)h Fm(f)e Fn(using)g(a)h(set)g(notation)g(as)g(in)f -Fm(bdd)p 2128 960 29 4 v 33 w(printset)f Fn(but)h(with)f(the)i(index)f -(of)h(the)g(\014nite)236 1073 y(domain)k(blo)s(c)m(ks)g(included)f -(instead)h(of)h(the)g(BDD)h(v)-5 b(ariables.)44 b(It)32 -b(is)f(p)s(ossible)f(to)j(sp)s(ecify)d(a)j(prin)m(ting)236 -1186 y(callbac)m(k)i(function)e(with)h Fm(fdd)p 1311 -1186 V 33 w(file)p 1536 1186 V 34 w(hook)f Fn(or)i Fm(fdd)p -2055 1186 V 33 w(strm)p 2280 1186 V 34 w(hook)e Fn(whic)m(h)h(can)h(b)s -(e)f(used)g(to)h(prin)m(t)e(the)236 1298 y(FDD)f(iden)m(ti\014er)c(in)h -(a)i(readable)f(form.)236 1562 y Fo(See)35 b(also)p 236 -1616 3544 5 v 236 1729 a Fn(b)s(dd)p 397 1729 28 4 v -31 w(prin)m(tset,)30 b(fdd)p 920 1729 V 31 w(\014le)p -1068 1729 V 32 w(ho)s(ok,)h(fdd)p 1478 1729 V 31 w(strm)p -1692 1729 V 33 w(ho)s(ok)p 236 2080 3544 12 v 236 2193 -a Fo(fdd)p 390 2193 32 4 v 38 w(scanallv)-6 b(ar)96 b -Fn({)31 b(Finds)e(one)h(satisfying)f(v)-5 b(alue)30 b(of)h(all)e(FDD)j -(v)-5 b(ariables)p 236 2247 3544 12 v 236 2452 a Fm(int*)47 -b(fdd_scanallvar\(BDD)c(r\))236 2677 y Fo(Description)p -236 2731 3544 5 v 236 2844 a Fn(Finds)24 b(one)i(satisfying)e -(assignmen)m(t)i(in)e Fm(r)h Fn(of)h(all)f(the)g(de\014ned)g(FDD)i(v)-5 -b(ariables.)37 b(Eac)m(h)27 b(v)-5 b(alue)25 b(is)f(stored)236 -2957 y(in)d(an)h(arra)m(y)h(whic)m(h)e(is)h(returned.)36 -b(The)22 b(size)g(of)h(this)e(arra)m(y)i(is)e(exactly)i(the)g(n)m(um)m -(b)s(er)e(of)h(FDD)i(v)-5 b(ariables)236 3070 y(de\014ned.)40 -b(It)30 b(is)g(the)g(user's)g(resp)s(onsibilit)m(y)c(to)31 -b(free)g(this)e(arra)m(y)i(using)e Fm(free\(\))p Fn(.)236 -3333 y Fo(Return)35 b(v)-6 b(alue)p 236 3387 V 236 3500 -a Fn(An)27 b(arra)m(y)g(with)e(all)h(satisfying)f(v)-5 -b(alues.)39 b(If)27 b Fm(r)f Fn(is)g(the)h(trivially)d(false)i(BDD,)i -(then)f(NULL)g(is)e(returned.)236 3763 y Fo(See)35 b(also)p -236 3817 V 236 3930 a Fn(fdd)p 371 3930 28 4 v 32 w(scan)m(v)-5 -b(ar)1962 5989 y(88)p eop -%%Page: 89 97 -89 96 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(scanset)96 b Fn({)31 b(scans)f(a)h(v)-5 b(ariable)29 -b(set)p 236 250 3544 12 v 236 455 a Fm(int)47 b(fdd_scanset\(BDD)d(r,)j -(int)g(**varset,)e(int)i(*varnum\))236 680 y Fo(Description)p -236 734 3544 5 v 236 847 a Fn(Scans)27 b(the)g(BDD)i -Fm(r)d Fn(to)i(\014nd)e(all)g(o)s(ccurences)h(of)h(FDD)g(v)-5 -b(ariables)26 b(and)g(then)h(stores)h(these)f(in)f Fm(varset)p -Fn(.)236 960 y Fm(varset)f Fn(will)f(b)s(e)j(set)g(to)h(p)s(oin)m(t)d -(to)j(an)f(arra)m(y)g(of)g(size)f Fm(varnum)g Fn(whic)m(h)f(will)f(con) -m(tain)j(the)g(indices)e(of)i(the)236 1073 y(found)i(FDD)j(v)-5 -b(ariables.)39 b(It)31 b(is)e(the)i(users)e(resp)s(onsibilit)m(y)e(to)k -(free)f Fm(varset)f Fn(after)i(use.)236 1336 y Fo(Return)k(v)-6 -b(alue)p 236 1390 V 236 1503 a Fn(Zero)31 b(on)f(success)g(or)h(a)g -(negativ)m(e)g(error)f(co)s(de)h(on)f(error.)236 1766 -y Fo(See)35 b(also)p 236 1820 V 236 1933 a Fn(fdd)p 371 -1933 28 4 v 32 w(mak)m(eset)p 236 2266 3544 12 v 236 -2379 a Fo(fdd)p 390 2379 32 4 v 38 w(scan)m(v)-6 b(ar)96 -b Fn({)31 b(Finds)e(one)i(satisfying)e(v)-5 b(alue)29 -b(of)i(a)g(FDD)g(v)-5 b(ariable)p 236 2434 3544 12 v -236 2638 a Fm(int)47 b(fdd_scanvar\(BDD)d(r,)j(int)g(var\))236 -2863 y Fo(Description)p 236 2918 3544 5 v 236 3031 a -Fn(Finds)31 b(one)i(satisfying)f(assignmen)m(t)h(of)g(the)f(FDD)i(v)-5 -b(ariable)32 b Fm(var)g Fn(in)f(the)i(BDD)h Fm(r)f Fn(and)f(returns)g -(this)236 3143 y(v)-5 b(alue.)236 3407 y Fo(Return)35 -b(v)-6 b(alue)p 236 3461 V 236 3574 a Fn(The)25 b(v)-5 -b(alue)25 b(of)h(a)g(satisfying)e(assignmen)m(t)h(of)h -Fm(var)p Fn(.)38 b(If)25 b Fm(r)h Fn(is)e(the)i(trivially)d(false)i -(BDD,)i(then)e(a)h(negativ)m(e)236 3687 y(v)-5 b(alue)30 -b(is)f(returned.)236 3950 y Fo(See)35 b(also)p 236 4004 -V 236 4117 a Fn(fdd)p 371 4117 28 4 v 32 w(scanallv)-5 -b(ar)1962 5989 y(89)p eop -%%Page: 90 98 -90 97 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(setpair)95 b Fn({)31 b(de\014nes)e(a)i(pair)e(for)h(t)m(w)m -(o)i(\014nite)e(domain)f(blo)s(c)m(ks)p 236 250 3544 -12 v 236 455 a Fm(int)47 b(fdd_setpair\(bddPair)c(*pair,)j(int)h(p1,)g -(int)f(p2\))236 680 y Fo(Description)p 236 734 3544 5 -v 236 847 a Fn(De\014nes)35 b(eac)m(h)i(v)-5 b(ariable)33 -b(in)h(the)h(\014nite)f(domain)g(blo)s(c)m(k)h Fm(p1)f -Fn(to)i(b)s(e)f(paired)e(with)h(the)h(corresp)s(onding)236 -960 y(v)-5 b(ariable)28 b(in)g Fm(p2)p Fn(.)40 b(The)29 -b(result)f(is)g(stored)h(in)f Fm(pair)g Fn(whic)m(h)g(m)m(ust)h(b)s(e)g -(allo)s(cated)g(using)f Fm(bdd)p 3345 960 29 4 v 33 w(makepair)p -Fn(.)236 1223 y Fo(Return)35 b(v)-6 b(alue)p 236 1277 -3544 5 v 236 1390 a Fn(Zero)31 b(on)f(success)g(or)h(a)g(negativ)m(e)g -(error)f(co)s(de)h(on)f(error.)236 1653 y Fo(See)35 b(also)p -236 1707 V 236 1820 a Fn(fdd)p 371 1820 28 4 v 32 w(setpairs)p -236 2171 3544 12 v 236 2284 a Fo(fdd)p 390 2284 32 4 -v 38 w(setpairs)95 b Fn({)31 b(de\014nes)f(N)g(pairs)f(for)h(\014nite)g -(domain)f(blo)s(c)m(ks)p 236 2338 3544 12 v 236 2543 -a Fm(int)47 b(fdd_setpairs\(bddPair)42 b(*pair,)k(int)h(*p1,)g(int)g -(*p2,)g(int)f(size\))236 2768 y Fo(Description)p 236 -2822 3544 5 v 236 2935 a Fn(De\014nes)25 b(eac)m(h)h(v)-5 -b(ariable)23 b(in)g(all)h(the)g(\014nite)g(domain)f(blo)s(c)m(ks)h -(listed)f(in)h(the)g(arra)m(y)h Fm(p1)f Fn(to)i(b)s(e)e(paired)f(with) -236 3048 y(the)37 b(corresp)s(onding)d(v)-5 b(ariable)35 -b(in)h Fm(p2)p Fn(.)58 b(The)36 b(result)f(is)g(stored)i(in)e -Fm(pair)g Fn(whic)m(h)g(m)m(ust)i(b)s(e)e(allo)s(cated)236 -3161 y(using)29 b Fm(bdd)p 624 3161 29 4 v 34 w(makeset)p -Fn(.)236 3424 y Fo(Return)35 b(v)-6 b(alue)p 236 3479 -3544 5 v 236 3591 a Fn(Zero)31 b(on)f(success)g(or)h(a)g(negativ)m(e)g -(error)f(co)s(de)h(on)f(error.)236 3855 y Fo(See)35 b(also)p -236 3909 V 236 4022 a Fn(b)s(dd)p 397 4022 28 4 v 31 -w(setpair)1962 5989 y(90)p eop -%%Page: 91 99 -91 98 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(strm)p 641 196 V 37 w(ho)s(ok)96 b Fn({)31 -b(Sp)s(eci\014es)d(a)j(prin)m(ting)d(callbac)m(k)j(handler)p -236 250 3544 12 v 236 455 a Fm(bddstrmhandler)44 b -(fdd_strm_hook\(bddstrmhand)o(ler)d(handler\))236 680 -y Fo(Description)p 236 734 3544 5 v 236 847 a Fn(A)23 -b(prin)m(ting)e(callbac)m(k)i(handler)d(for)j(use)f(with)g(FDDs)i(is)d -(used)h(to)i(con)m(v)m(ert)g(the)f(FDD)h(in)m(teger)f(iden)m(ti\014er) -236 960 y(in)m(to)34 b(something)e(readable)h(b)m(y)h(the)f(end)g -(user.)49 b(T)m(ypically)31 b(the)j(handler)e(will)e(prin)m(t)i(a)i -(string)e(name)236 1073 y(instead)e(of)g(the)h(iden)m(ti\014er.)39 -b(A)30 b(handler)f(could)g(lo)s(ok)h(lik)m(e)g(this:)236 -1260 y Fm(void)47 b(printhandler\(ostream)42 b(&o,)47 -b(int)g(var\))236 1373 y({)379 1486 y(extern)f(char)h(**names;)379 -1599 y(o)h(<<)f(names[var];)236 1712 y(})236 1900 y Fn(The)30 -b(handler)f(can)h(then)g(b)s(e)g(passed)g(to)h(BuDDy)g(lik)m(e)f(this:) -39 b Fm(fdd)p 2510 1900 29 4 v 34 w(strm)p 2736 1900 -V 33 w(hook\(printhandler\))p Fn(.)327 2012 y(No)33 b(default)e -(handler)g(is)g(supplied.)43 b(The)32 b(argumen)m(t)h -Fm(handler)d Fn(ma)m(y)j(b)s(e)e(NULL)i(if)e(no)h(handler)e(is)236 -2125 y(needed.)236 2389 y Fo(Return)35 b(v)-6 b(alue)p -236 2443 3544 5 v 236 2556 a Fn(The)30 b(old)g(handler)236 -2819 y Fo(See)35 b(also)p 236 2873 V 236 2986 a Fn(fdd)p -371 2986 28 4 v 32 w(prin)m(tset,)30 b(b)s(dd)p 921 2986 -V 30 w(\014le)p 1068 2986 V 32 w(ho)s(ok)p 236 3337 3544 -12 v 236 3450 a Fo(fdd)p 390 3450 32 4 v 38 w(v)-6 b(arn)m(um)95 -b Fn({)31 b(binary)d(size)j(of)f(a)h(\014nite)e(domain)g(blo)s(c)m(k)p -236 3504 3544 12 v 236 3709 a Fm(int)47 b(fdd_varnum\(int)d(var\))236 -3934 y Fo(Description)p 236 3988 3544 5 v 236 4101 a -Fn(Returns)30 b(the)g(n)m(um)m(b)s(er)f(of)i(BDD)g(v)-5 -b(ariables)29 b(used)h(for)g(the)h(\014nite)e(domain)g(blo)s(c)m(k)h -Fm(var)p Fn(.)236 4364 y Fo(Return)35 b(v)-6 b(alue)p -236 4418 V 236 4531 a Fn(The)30 b(n)m(um)m(b)s(er)f(of)i(v)-5 -b(ariables)29 b(or)h(a)h(negativ)m(e)g(error)f(co)s(de)236 -4794 y Fo(See)35 b(also)p 236 4849 V 236 4962 a Fn(fdd)p -371 4962 28 4 v 32 w(v)-5 b(ars)1962 5989 y(91)p eop -%%Page: 92 100 -92 99 bop 236 83 3544 12 v 236 196 a Fo(fdd)p 390 196 -32 4 v 38 w(v)-6 b(ars)96 b Fn({)31 b(all)e(BDD)j(v)-5 -b(ariables)29 b(asso)s(ciated)h(with)f(a)i(\014nite)f(domain)f(blo)s(c) -m(k)p 236 250 3544 12 v 236 455 a Fm(int)47 b(*fdd_vars\(int)d(var\)) -236 680 y Fo(Description)p 236 734 3544 5 v 236 847 a -Fn(Returns)34 b(an)h(in)m(teger)h(arra)m(y)f(con)m(taining)g(the)g(BDD) -h(v)-5 b(ariables)34 b(used)g(to)i(de\014ne)e(the)i(\014nite)e(domain) -236 960 y(blo)s(c)m(k)43 b Fm(var)p Fn(.)80 b(The)43 -b(size)g(of)h(the)g(arra)m(y)g(is)f(the)g(n)m(um)m(b)s(er)g(of)g(v)-5 -b(ariables)43 b(used)g(to)h(de\014ne)f(the)h(\014nite)236 -1073 y(domain)27 b(blo)s(c)m(k.)40 b(The)28 b(arra)m(y)h(will)d(ha)m(v) -m(e)j(the)g(Least)g(Signi\014can)m(t)e(Bit)h(at)i(p)s(os)d(0.)41 -b(The)28 b(arra)m(y)g(m)m(ust)h Ff(not)236 1186 y Fn(b)s(e)h(deallo)s -(cated.)236 1449 y Fo(Return)35 b(v)-6 b(alue)p 236 1503 -V 236 1616 a Fn(In)m(teger)32 b(arra)m(y)e(con)m(taning)h(the)g(v)-5 -b(ariable)29 b(n)m(um)m(b)s(ers)g(or)h(NULL)g(if)g Fm(v)g -Fn(is)f(an)h(unkno)m(wn)f(blo)s(c)m(k.)236 1879 y Fo(See)35 -b(also)p 236 1933 V 236 2046 a Fn(fdd)p 371 2046 28 4 -v 32 w(v)-5 b(arn)m(um)p 236 2379 3544 12 v 236 2492 -a Fo(op)s(erator)p Fm(<<)95 b Fn({)31 b(C++)e(output)h(op)s(erator)h -(for)f(BDDs)p 236 2546 V 236 2751 a Fm(ostream)46 b -(&operator<<\(ostream)d(&o,)j(const)h(bdd_ioformat)d(&f\))236 -2864 y(ostream)i(&operator<<\(ostream)d(&o,)j(const)h(bdd)g(&r\))236 -3089 y Fo(Description)p 236 3143 3544 5 v 236 3256 a -Fn(BDDs)60 b(can)g(b)s(e)e(prin)m(ted)g(in)f(v)-5 b(arious)58 -b(formats)i(using)d(the)i(C++)f(iostreams)h(library)-8 -b(.)125 b(The)236 3369 y(formats)61 b(are)h(the)f(those)g(used)f(in)g -Fm(bdd)p 1761 3369 29 4 v 34 w(printset)p Fn(,)66 b Fm(bdd)p -2414 3369 V 34 w(printtable)p Fn(,)g Fm(fdd)p 3163 3369 -V 33 w(printset)59 b Fn(and)236 3482 y Fm(bdd)p 386 3482 -V 34 w(printdot)p Fn(.)146 b(The)65 b(format)i(can)f(b)s(e)g(sp)s -(eci\014ed)e(with)h(the)h(follo)m(wing)f(format)h(ob)5 -b(jects:)286 3703 y Fm(bddset)241 b Fn(BDD)32 b(lev)m(el)e(set)h -(format)286 3816 y Fm(bddtable)145 b Fn(BDD)32 b(lev)m(el)e(table)g -(format)286 3928 y Fm(bdddot)241 b Fn(Output)29 b(for)i(use)f(with)f -(Dot)286 4041 y Fm(bddall)241 b Fn(The)30 b(whole)g(no)s(de)f(table)286 -4154 y Fm(fddset)241 b Fn(FDD)32 b(lev)m(el)e(set)h(format)236 -4309 y(So)f(a)h(BDD)h Fm(x)e Fn(can)h(for)f(example)g(b)s(e)f(prin)m -(ted)g(as)i(a)g(table)f(with)f(the)i(command)327 4535 -y Fm(cout)47 b(<<)g(bddtable)e(<<)j(x)f(<<)g(endl)p Fn(.)236 -4798 y Fo(Return)35 b(v)-6 b(alue)p 236 4853 3544 5 v -236 4965 a Fn(The)30 b(sp)s(eci\014ed)f(output)h(stream)236 -5229 y Fo(See)35 b(also)p 236 5283 V 236 5396 a Fn(b)s(dd)p -397 5396 28 4 v 31 w(strm)p 611 5396 V 32 w(ho)s(ok,)c(fdd)p -1021 5396 V 31 w(strm)p 1235 5396 V 33 w(ho)s(ok)1962 -5989 y(92)p eop -%%Page: 93 101 -93 100 bop 236 826 a Fp(Bibliograph)-6 b(y)236 1271 y -Fn([1])47 b(Randal)20 b(E.)i(Bry)m(an)m(t.)28 b(Graph-Based)22 -b(Algorithms)e(for)i(Bo)s(olean)g(Function)f(Manipulation.)j -Ff(IEEE)378 1384 y(T)-7 b(r)i(ansactions)35 b(on)e(Computers)p -Fn(,)f(C-35\(8\):677{691,)k(August)30 b(1986.)236 1572 -y([2])47 b(Randal)30 b(E.)i(Bry)m(an)m(t.)46 b(Sym)m(b)s(olic)30 -b(Bo)s(olean)i(manipulation)d(with)i(ordered)g(binary)f(decision)g -(dia-)378 1685 y(grams.)40 b Ff(A)n(CM)32 b(Computing)h(Surveys)p -Fn(,)e(24\(3\):293{318,)36 b(Septem)m(b)s(er)30 b(1992.)236 -1873 y([3])47 b(K.S.)22 b(Brace,)j(R.L.)d(Rudell,)g(and)g(R.E.)h(Bry)m -(an)m(t.)28 b(E\016cien)m(t)23 b(Implemen)m(tation)e(of)i(a)f(BDD)i -(Pac)m(k)-5 b(age.)378 1985 y(In)36 b Ff(27th)j(A)n(CM/IEEE)e(Design)h -(A)n(utomation)h(Confer)-5 b(enc)g(e)p Fn(,)40 b(pages)d(40{45,)k -(Orlando,)36 b(Florida,)378 2098 y(June)29 b(1990.)j(A)m(CM/IEEE,)g -(IEEE)d(Computer)h(So)s(ciet)m(y)g(Press.)236 2286 y([4])47 -b(R.)40 b(Rudell.)67 b(Dynamic)40 b(Variable)f(Ordering)g(for)g -(Ordered)g(Binary)h(Decision)f(Diagrams.)70 b(In)378 -2399 y Ff(IEEE)29 b(/A)n(CM)g(International)j(Confer)-5 -b(enc)g(e)31 b(on)f(CAD)p Fn(,)d(pages)h(42{47,)j(San)m(ta)d(Clara,)g -(California,)378 2512 y(No)m(v)m(em)m(b)s(er)j(1993.)i(A)m(CM/IEEE,)e -(IEEE)e(Computer)h(So)s(ciet)m(y)h(Press.)1962 5989 y(93)p -eop -%%Page: 94 102 -94 101 bop 236 630 a Fp(Index)236 1053 y Fn(addition,)29 -b(8)236 1166 y(arithmetic,)h(7)236 1362 y(b)s(dd)p 397 -1362 28 4 v 31 w(addref)g(,)g(22)236 1475 y(b)s(dd)p -397 1475 V 31 w(addv)-5 b(arblo)s(c)m(k)29 b(,)i(23)236 -1588 y(b)s(dd)p 397 1588 V 31 w(allsat)f(,)g(24)236 1700 -y(b)s(dd)p 397 1700 V 31 w(and)g(,)g(24)236 1813 y(b)s(dd)p -397 1813 V 31 w(ano)s(decoun)m(t)h(,)f(25)236 1926 y(b)s(dd)p -397 1926 V 31 w(appall)f(,)h(25)236 2039 y(b)s(dd)p 397 -2039 V 31 w(app)s(ex)g(,)g(26)236 2152 y(b)s(dd)p 397 -2152 V 31 w(apply)f(,)i(27)236 2265 y(b)s(dd)p 397 2265 -V 31 w(appuni)d(,)j(27)236 2378 y(b)s(dd)p 397 2378 V -31 w(autoreorder)g(,)f(28)236 2491 y(b)s(dd)p 397 2491 -V 31 w(autoreorder)p 888 2491 V 33 w(times)g(,)h(28)236 -2604 y(b)s(dd)p 397 2604 V 31 w(biimp)d(,)i(28)236 2717 -y(b)s(dd)p 397 2717 V 31 w(blo)s(c)m(k\014le)p 755 2717 -V 31 w(ho)s(ok)h(,)f(29)236 2830 y(b)s(dd)p 397 2830 -V 31 w(buildcub)s(e)d(,)j(29)236 2943 y(b)s(dd)p 397 -2943 V 31 w(cac)m(hestats)j(,)d(30)236 3055 y(b)s(dd)p -397 3055 V 31 w(clear)p 615 3055 V 33 w(error)g(,)g(30)236 -3168 y(b)s(dd)p 397 3168 V 31 w(clrv)-5 b(arblo)s(c)m(ks)29 -b(,)i(30)236 3281 y(b)s(dd)p 397 3281 V 31 w(comp)s(ose)g(,)f(31)236 -3394 y(b)s(dd)p 397 3394 V 31 w(constrain)g(,)g(31)236 -3507 y(b)s(dd)p 397 3507 V 31 w(delref)f(,)i(32)236 3620 -y(b)s(dd)p 397 3620 V 31 w(disable)p 703 3620 V 31 w(reorder)f(,)g(32) -236 3733 y(b)s(dd)p 397 3733 V 31 w(done,)g(32)236 3846 -y(b)s(dd)p 397 3846 V 31 w(enable)p 681 3846 V 32 w(reorder)g(,)h(33) -236 3959 y(b)s(dd)p 397 3959 V 31 w(error)p 621 3959 -V 32 w(ho)s(ok)g(,)f(33)236 4072 y(b)s(dd)p 397 4072 -V 31 w(errstring)f(,)h(34)236 4185 y(b)s(dd)p 397 4185 -V 31 w(exist)g(,)h(34)236 4297 y(b)s(dd)p 397 4297 V -31 w(extv)-5 b(arn)m(um)30 b(,)h(34)236 4410 y(b)s(dd)p -397 4410 V 31 w(false)f(,)h(35)236 4523 y(b)s(dd)p 397 -4523 V 31 w(\014le)p 545 4523 V 32 w(ho)s(ok)f(,)h(35)236 -4636 y(b)s(dd)p 397 4636 V 31 w(fnload)e(,)i(42)236 4749 -y(b)s(dd)p 397 4749 V 31 w(fnsa)m(v)m(e)g(,)g(57)236 -4862 y(b)s(dd)p 397 4862 V 31 w(forall)e(,)i(36)236 4975 -y(b)s(dd)p 397 4975 V 31 w(fprin)m(tall)d(,)i(46)236 -5088 y(b)s(dd)p 397 5088 V 31 w(fprin)m(tdot)f(,)i(47)236 -5201 y(b)s(dd)p 397 5201 V 31 w(fprin)m(tset)e(,)i(48)236 -5314 y(b)s(dd)p 397 5314 V 31 w(fprin)m(tstat)f(,)g(48)236 -5427 y(b)s(dd)p 397 5427 V 31 w(fprin)m(ttable)f(,)h(49)236 -5539 y(b)s(dd)p 397 5539 V 31 w(freepair)f(,)i(36)236 -5652 y(b)s(dd)p 397 5652 V 31 w(fullsatone)e(,)i(36)2153 -1053 y(b)s(dd)p 2314 1053 V 31 w(gb)s(c)p 2484 1053 V -33 w(ho)s(ok)f(,)g(37)2153 1166 y(b)s(dd)p 2314 1166 -V 31 w(getallo)s(cn)m(um)g(,)h(37)2153 1279 y(b)s(dd)p -2314 1279 V 31 w(getno)s(den)m(um)f(,)h(38)2153 1392 -y(b)s(dd)p 2314 1392 V 31 w(getreorder)p 2749 1392 V -33 w(metho)s(d)f(,)h(38)2153 1505 y(b)s(dd)p 2314 1505 -V 31 w(getreorder)p 2749 1505 V 33 w(times)f(,)h(38)2153 -1617 y(b)s(dd)p 2314 1617 V 31 w(high)e(,)i(39)2153 1730 -y(b)s(dd)p 2314 1730 V 31 w(ibuildcub)s(e)26 b(,)k(29)2153 -1843 y(b)s(dd)p 2314 1843 V 31 w(imp)f(,)h(39)2153 1956 -y(b)s(dd)p 2314 1956 V 31 w(init)f(,)h(40)2153 2069 y(b)s(dd)p -2314 2069 V 31 w(in)m(taddv)-5 b(arblo)s(c)m(k)29 b(,)h(23)2153 -2182 y(b)s(dd)p 2314 2182 V 31 w(isrunning)d(,)j(40)2153 -2295 y(b)s(dd)p 2314 2295 V 31 w(ite)g(,)h(41)2153 2408 -y(b)s(dd)p 2314 2408 V 31 w(ith)m(v)-5 b(ar)30 b(,)g(41)2153 -2521 y(b)s(dd)p 2314 2521 V 31 w(lev)m(el2v)-5 b(ar)30 -b(,)h(42)2153 2634 y(b)s(dd)p 2314 2634 V 31 w(load)f(,)g(42)2153 -2747 y(b)s(dd)p 2314 2747 V 31 w(lo)m(w)g(,)h(43)2153 -2859 y(b)s(dd)p 2314 2859 V 31 w(mak)m(eset)h(,)e(43)2153 -2972 y(b)s(dd)p 2314 2972 V 31 w(newpair)f(,)h(44)2153 -3085 y(b)s(dd)p 2314 3085 V 31 w(nith)m(v)-5 b(ar)29 -b(,)i(44)2153 3198 y(b)s(dd)p 2314 3198 V 31 w(no)s(decoun)m(t)f(,)h -(45)2153 3311 y(b)s(dd)p 2314 3311 V 31 w(not)g(,)f(45)2153 -3424 y(b)s(dd)p 2314 3424 V 31 w(or)g(,)h(45)2153 3537 -y(b)s(dd)p 2314 3537 V 31 w(pathcoun)m(t)g(,)f(46)2153 -3650 y(b)s(dd)p 2314 3650 V 31 w(prin)m(tall)e(,)i(46)2153 -3763 y(b)s(dd)p 2314 3763 V 31 w(prin)m(tdot)f(,)i(47)2153 -3876 y(b)s(dd)p 2314 3876 V 31 w(prin)m(torder)e(,)h(47)2153 -3989 y(b)s(dd)p 2314 3989 V 31 w(prin)m(tset)g(,)g(48)2153 -4101 y(b)s(dd)p 2314 4101 V 31 w(prin)m(tstat)g(,)h(48)2153 -4214 y(b)s(dd)p 2314 4214 V 31 w(prin)m(ttable)e(,)h(49)2153 -4327 y(b)s(dd)p 2314 4327 V 31 w(relpro)s(d)e(,)j(49)2153 -4440 y(b)s(dd)p 2314 4440 V 31 w(reorder)f(,)g(50)2153 -4553 y(b)s(dd)p 2314 4553 V 31 w(reorder)p 2629 4553 -V 32 w(gain)g(,)h(51)2153 4666 y(b)s(dd)p 2314 4666 V -31 w(reorder)p 2629 4666 V 32 w(ho)s(ok)f(,)h(51)2153 -4779 y(b)s(dd)p 2314 4779 V 31 w(reorder)p 2629 4779 -V 32 w(prob)s(e)f(,)g(52)2153 4892 y(b)s(dd)p 2314 4892 -V 31 w(reorder)p 2629 4892 V 32 w(v)m(erb)s(ose)h(,)f(52)2153 -5005 y(b)s(dd)p 2314 5005 V 31 w(replace)g(,)h(53)2153 -5118 y(b)s(dd)p 2314 5118 V 31 w(resetpair)f(,)g(53)2153 -5231 y(b)s(dd)p 2314 5231 V 31 w(resize)p 2563 5231 V -33 w(ho)s(ok)g(,)g(54)2153 5344 y(b)s(dd)p 2314 5344 -V 31 w(restrict)g(,)h(55)2153 5456 y(b)s(dd)p 2314 5456 -V 31 w(satcoun)m(t)h(,)e(55)2153 5569 y(b)s(dd)p 2314 -5569 V 31 w(satcoun)m(tln)g(,)h(56)2153 5682 y(b)s(dd)p -2314 5682 V 31 w(satone)g(,)g(56)1962 5989 y(94)p eop -%%Page: 95 103 -95 102 bop 236 162 a Fn(b)s(dd)p 397 162 28 4 v 31 w(satoneset)32 -b(,)e(57)236 275 y(b)s(dd)p 397 275 V 31 w(sa)m(v)m(e)i(,)e(57)236 -388 y(b)s(dd)p 397 388 V 31 w(scanset)h(,)g(58)236 501 -y(b)s(dd)p 397 501 V 31 w(setb)s(ddpair)d(,)i(60)236 -614 y(b)s(dd)p 397 614 V 31 w(setb)s(ddpairs)e(,)i(61)236 -727 y(b)s(dd)p 397 727 V 31 w(setcac)m(heratio)j(,)d(58)236 -840 y(b)s(dd)p 397 840 V 31 w(setcoun)m(tlnset)h(,)g(56)236 -953 y(b)s(dd)p 397 953 V 31 w(setcoun)m(tset)h(,)f(55)236 -1066 y(b)s(dd)p 397 1066 V 31 w(setmaxincrease)g(,)g(59)236 -1178 y(b)s(dd)p 397 1178 V 31 w(setmaxno)s(den)m(um)f(,)g(59)236 -1291 y(b)s(dd)p 397 1291 V 31 w(setminfreeno)s(des)f(,)h(60)236 -1404 y(b)s(dd)p 397 1404 V 31 w(setpair)g(,)g(60)236 -1517 y(b)s(dd)p 397 1517 V 31 w(setpairs)g(,)g(61)236 -1630 y(b)s(dd)p 397 1630 V 31 w(setv)-5 b(arn)m(um)30 -b(,)h(61)236 1743 y(b)s(dd)p 397 1743 V 31 w(setv)-5 -b(arorder)30 b(,)h(62)236 1856 y(b)s(dd)p 397 1856 V -31 w(simplify)c(,)j(62)236 1969 y(b)s(dd)p 397 1969 V -31 w(stats)h(,)g(62)236 2082 y(b)s(dd)p 397 2082 V 31 -w(strm)p 611 2082 V 32 w(ho)s(ok)g(,)f(63)236 2195 y(b)s(dd)p -397 2195 V 31 w(supp)s(ort)f(,)h(63)236 2308 y(b)s(dd)p -397 2308 V 31 w(sw)m(ap)m(v)-5 b(ar)31 b(,)f(64)236 2420 -y(b)s(dd)p 397 2420 V 31 w(true)g(,)h(64)236 2533 y(b)s(dd)p -397 2533 V 31 w(unique)d(,)j(65)236 2646 y(b)s(dd)p 397 -2646 V 31 w(v)-5 b(ar)30 b(,)h(65)236 2759 y(b)s(dd)p -397 2759 V 31 w(v)-5 b(ar2lev)m(el)31 b(,)f(65)236 2872 -y(b)s(dd)p 397 2872 V 31 w(v)-5 b(arblo)s(c)m(k)g(all)29 -b(,)h(66)236 2985 y(b)s(dd)p 397 2985 V 31 w(v)-5 b(arn)m(um)30 -b(,)g(66)236 3098 y(b)s(dd)p 397 3098 V 31 w(v)-5 b(arpro\014le)29 -b(,)i(66)236 3211 y(b)s(dd)p 397 3211 V 31 w(v)m(eccomp)s(ose)h(,)e(67) -236 3324 y(b)s(dd)p 397 3324 V 31 w(v)m(ersionn)m(um)f(,)i(67)236 -3437 y(b)s(dd)p 397 3437 V 31 w(v)m(ersionstr)f(,)g(67)236 -3550 y(b)s(dd)p 397 3550 V 31 w(xor)g(,)h(68)236 3662 -y(b)s(ddCac)m(heStat)f(,)h(20)236 3775 y(b)s(ddfalse,)e(68)236 -3888 y(b)s(ddGb)s(cStat)g(,)i(21)236 4001 y(b)s(ddStat)e(,)i(22)236 -4114 y(b)s(ddtrue)d(,)j(68)236 4227 y(Bo)s(olean)g(V)-8 -b(ectors,)32 b(7)236 4340 y(b)m(v)m(ec)g(,)e(69)236 4453 -y(b)m(v)m(ec)p 414 4453 V 34 w(add)g(,)h(69)236 4566 -y(b)m(v)m(ec)p 414 4566 V 34 w(addref)f(,)g(70)236 4679 -y(b)m(v)m(ec)p 414 4679 V 34 w(co)s(erce)i(,)e(70)236 -4792 y(b)m(v)m(ec)p 414 4792 V 34 w(con)h(,)f(70)236 -4905 y(b)m(v)m(ec)p 414 4905 V 34 w(cop)m(y)h(,)g(71)236 -5017 y(b)m(v)m(ec)p 414 5017 V 34 w(delref)e(,)i(71)236 -5130 y(b)m(v)m(ec)p 414 5130 V 34 w(div)e(,)i(71)236 -5243 y(b)m(v)m(ec)p 414 5243 V 34 w(div\014xed)e(,)h(72)236 -5356 y(b)m(v)m(ec)p 414 5356 V 34 w(equ)g(,)h(72)236 -5469 y(b)m(v)m(ec)p 414 5469 V 34 w(false)f(,)h(72)236 -5582 y(b)m(v)m(ec)p 414 5582 V 34 w(free)g(,)f(73)236 -5695 y(b)m(v)m(ec)p 414 5695 V 34 w(gte)i(,)e(73)2153 -162 y(b)m(v)m(ec)p 2331 162 V 34 w(gth)h(,)f(73)2153 -275 y(b)m(v)m(ec)p 2331 275 V 34 w(isconst)g(,)h(74)2153 -388 y(b)m(v)m(ec)p 2331 388 V 34 w(ite)f(,)h(74)2153 -501 y(b)m(v)m(ec)p 2331 501 V 34 w(lte)f(,)h(74)2153 -614 y(b)m(v)m(ec)p 2331 614 V 34 w(lth)f(,)g(75)2153 -727 y(b)m(v)m(ec)p 2331 727 V 34 w(map1)h(,)f(75)2153 -840 y(b)m(v)m(ec)p 2331 840 V 34 w(map2)h(,)f(76)2153 -953 y(b)m(v)m(ec)p 2331 953 V 34 w(map3)h(,)f(76)2153 -1066 y(b)m(v)m(ec)p 2331 1066 V 34 w(m)m(ul)f(,)i(77)2153 -1178 y(b)m(v)m(ec)p 2331 1178 V 34 w(m)m(ul\014xed)e(,)h(77)2153 -1291 y(b)m(v)m(ec)p 2331 1291 V 34 w(neq)g(,)h(77)2153 -1404 y(b)m(v)m(ec)p 2331 1404 V 34 w(shl)e(,)i(78)2153 -1517 y(b)m(v)m(ec)p 2331 1517 V 34 w(shl\014xed)d(,)j(78)2153 -1630 y(b)m(v)m(ec)p 2331 1630 V 34 w(shr)e(,)i(79)2153 -1743 y(b)m(v)m(ec)p 2331 1743 V 34 w(shr\014xed)e(,)h(79)2153 -1856 y(b)m(v)m(ec)p 2331 1856 V 34 w(sub)f(,)i(80)2153 -1969 y(b)m(v)m(ec)p 2331 1969 V 34 w(true)f(,)h(80)2153 -2082 y(b)m(v)m(ec)p 2331 2082 V 34 w(v)-5 b(al)30 b(,)h(81)2153 -2195 y(b)m(v)m(ec)p 2331 2195 V 34 w(v)-5 b(ar)30 b(,)h(81)2153 -2308 y(b)m(v)m(ec)p 2331 2308 V 34 w(v)-5 b(arfdd)29 -b(,)i(82)2153 2420 y(b)m(v)m(ec)p 2331 2420 V 34 w(v)-5 -b(arv)m(ec)32 b(,)e(82)2153 2616 y(C++)g(in)m(terface,)h(6)2153 -2729 y(compiling,)e(3)2153 2925 y(dynamic)g(v)-5 b(ariable)29 -b(reordering,)h(5)2153 3121 y(error)g(handling,)e(6)2153 -3317 y(fdd)p 2288 3317 V 32 w(clearall)h(,)i(82)2153 -3430 y(fdd)p 2288 3430 V 32 w(domain)e(,)h(83)2153 3543 -y(fdd)p 2288 3543 V 32 w(domainn)m(um)e(,)j(83)2153 3656 -y(fdd)p 2288 3656 V 32 w(domainsize)e(,)h(83)2153 3769 -y(fdd)p 2288 3769 V 32 w(equals)f(,)i(84)2153 3882 y(fdd)p -2288 3882 V 32 w(extdomain)f(,)g(84)2153 3995 y(fdd)p -2288 3995 V 32 w(\014le)p 2437 3995 V 32 w(ho)s(ok)g(,)g(85)2153 -4107 y(fdd)p 2288 4107 V 32 w(fprin)m(tset)f(,)i(88)2153 -4220 y(fdd)p 2288 4220 V 32 w(in)m(taddv)-5 b(arblo)s(c)m(k)29 -b(,)h(85)2153 4333 y(fdd)p 2288 4333 V 32 w(ithset)g(,)g(86)2153 -4446 y(fdd)p 2288 4446 V 32 w(ith)m(v)-5 b(ar)30 b(,)g(86)2153 -4559 y(fdd)p 2288 4559 V 32 w(mak)m(eset)i(,)e(87)2153 -4672 y(fdd)p 2288 4672 V 32 w(o)m(v)m(erlap)s(domain)f(,)i(87)2153 -4785 y(fdd)p 2288 4785 V 32 w(prin)m(tset)e(,)i(88)2153 -4898 y(fdd)p 2288 4898 V 32 w(scanallv)-5 b(ar)29 b(,)i(88)2153 -5011 y(fdd)p 2288 5011 V 32 w(scanset)g(,)f(89)2153 5124 -y(fdd)p 2288 5124 V 32 w(scan)m(v)-5 b(ar)31 b(,)f(89)2153 -5237 y(fdd)p 2288 5237 V 32 w(setpair)f(,)i(90)2153 5350 -y(fdd)p 2288 5350 V 32 w(setpairs)e(,)i(90)2153 5462 -y(fdd)p 2288 5462 V 32 w(strm)p 2503 5462 V 32 w(ho)s(ok)f(,)h(91)2153 -5575 y(fdd)p 2288 5575 V 32 w(v)-5 b(arn)m(um)29 b(,)i(91)2153 -5688 y(fdd)p 2288 5688 V 32 w(v)-5 b(ars)30 b(,)g(92)1962 -5989 y(95)p eop -%%Page: 96 104 -96 103 bop 236 162 a Fn(\014nite)30 b(domain)f(blo)s(c)m(ks,)h(7)236 -358 y(implemen)m(tation,)f(13)236 471 y(installing,)f(3)236 -667 y(op)s(erator)p Fm(<<)i Fn(,)h(92)236 863 y(programming)e -(examples,)i(3)236 1059 y(relational)f(pro)s(duct,)f(26)236 -1172 y(reordering,)h(5)236 1368 y(v)-5 b(ariable)29 b(reordering,)h(5) -236 1481 y(v)-5 b(ariable)29 b(sets,)i(4)1962 5989 y(96)p -eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF