From e88b41d8c943a764bba2ff42d7434fe913352c89 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Wed, 6 Aug 2003 15:15:56 +0000 Subject: [PATCH] =?UTF-8?q?*=20doc/Makefile.am=20(EXTRA=5FDIST):=20Replace?= =?UTF-8?q?=20buddy.ps=20by=20buddy.pdf=20(the=20latter=20has=20been=20reb?= =?UTF-8?q?uilt=20and=20on=20J=F8rn's=20request=20it=20explicitly=20mentio?= =?UTF-8?q?ns=20the=20differences=20with=20the=202.2=20manual).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buddy/ChangeLog | 4 + buddy/doc/Makefile.am | 2 +- buddy/doc/buddy.pdf | Bin 0 -> 347823 bytes buddy/doc/buddy.ps | 7287 ----------------------------------------- 4 files changed, 5 insertions(+), 7288 deletions(-) create mode 100644 buddy/doc/buddy.pdf delete mode 100644 buddy/doc/buddy.ps 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 0000000000000000000000000000000000000000..752b52a8dac86ce40382d16526599f4d7b37db6e GIT binary patch literal 347823 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

ZN>PMH>-rc+0 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 z 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�X{qZXdrHDkKOvW&2;mkx1fi14oe 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 KRdw}u;{pKL(o#AA literal 0 HcmV?d00001 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