(original) (raw)
%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: grislain.dvi %%Pages: 4 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Helvetica-Bold Times-Roman CMSSBX10 CMMI9 Times-Italic %%+ CMSY9 CMR9 CMMI6 Helvetica CMMI8 CMR6 Times-Bold MSBM10 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -D1200 -Pwww -ogrislain.ps grislain.dvi %DVIPSParameters: dpi=1200, compressed %DVIPSSource: TeX output 2003.06.27:1525 %%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: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{ dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def} if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def} def 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 %%BeginFont: MSBM10 %!PS-AdobeFont-1.1: MSBM10 2.1 %%CreationDate: 1993 Sep 17 11:10:37 % Math Symbol fonts were designed by the American Mathematical Society. % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (2.1) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (MSBM10) readonly def /FamilyName (Euler) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /MSBM10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 82 /R put readonly def /FontBBox{-55 -420 2343 920}readonly def /UniqueXX 5031982 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d7190fa2d133a583138f76695558e7a e9348d37cac6651806d08527c1bb4a062a4835ac37784cc39ad8841404e438b4 d52d3901e47a1de4f7924e0fb3daf442499175bab1226edf692a4956739f8828 e80592f450c5d5c22ac88bcfbe9748f61d18243a16f4a4467f084e8e2be46ef4 7fc51c3a8199e3cda62ff9c4fb73956dab8b6683d2156377808cb35026073e80 523f59a30d195fcf9b9fce4ffafc6d56491bdecdcafdc988206c5a457a19270b 37d0ab776e03eaa7eb568eeab6b5e79dec03b0dcbf923a2aa8e4f4deda2cb043 858d8b430efef0ed914a80ffc9818aba0fb30dae3694e5b31df3855892d59b89 7f82ff79fce8444c7926ffc4ea008e63bc518936c9098afc2d1c14030a2c15bc c9285c1b57e80570d2f6301009e63d9ddeba44e3251c75ca9616a2c5de9ade66 1a15db37b40b67c1bd71f77343912c62f47dd24be0e03dd833ea60d2eb020407 eaf042fed30f0c2f01956c83d46d982b50dd979c2026ed5f71979dd98c9c1eee 25054000a5eed5ce9498b2cb59a7ee55e0538ab47d86e69b2ac79229c8c6bfc9 3a24e822a2f1c9964fe630344579a25f66646113f73d1315c447f070c575de76 266c6773b01137e4a039df5e4c2f199e8e3396ef9fd001eebe090e04384c4089 ec9f13a07ad8733c6af775f432f154ef50ec4477e08760c03c006e4d1eb1c7cd acb8955ca4b0d62c7de046ff58d431bb9883d28586552c51809e3ced4dfc2198 b97ad9e52ea33c91b9e335a80d9b77d3430e0487930f992459664abca5dd9177 150b0fb502fbb04ccaa94ffe2697ed07906f95fd98e7b325bfbf10ea6b39fd76 c1e5295022cb39e9cd471b7b0b3f9d72da99deb0615d35cc22f42dbf5cfb70dc 6279fd520d99f32201abf25e621cfe1d37961d9c0ad36ef3d9264c547638152a be30812eae30521c3c775adf1959595a43d8a9c4e12d9f9ece27a0c9b5f45e38 8e26a39cb0ad4e25ab8f21b25ad1b106ed22af7947ea8ae4dc17b9facbc5e22e 89a91b046ba4cddde69c1997fa7f4cd949ba3ac4b6e001475daf165b9432dc70 6e30aeead8cc342d94b20a4045a331175655d6aa279627efc0fb53a4ce66b68f a45b5765f0c1368c02c39418366880efada9c81e9dfcee2a9443eadb1c3d2644 736aca103a5a3571f285d37f28f172cea414b1a8ff59c97990a065817703841a cde9d9f92a1511564aa7124acb4d690be1be46bf1e2f05d1eccb8980e1c01e0b 9ff57dc4573f9a105b96073d91b65983fb3cc0ede3c9eeb72411ac9107c06c87 02d1431267a919f2f34e4880c3ff606a8f4c15b6b401a0f32841385ec46fbfb5 70fc46069ec8c47745ed68a8af084a442c8b6c5699983acee943dc23634147ea ee1d861307e78a8dfc3a913acf76c67a802d2526b4fa06e98e4f461689a91c0f cf231549abcc99a5c0bb1d2d085c51b5a991b64e0080950a3337bf768adc1fb7 f1b787042f5f0a6f5b0abf6b00f0eb51443b1fa58f3dd2ac9146c3f85d115412 6ddb09fa4c28b69e723854a59b41008622f629c993633a38e8b06995405564bd 2a0047c4ae6d387d0a0e60e655ebd5993957d10d0b9263625e1b9d93a246f9ad 449e44c53963ef9efea23d0c219515a65aaf2b4ed699b7bd075af0b592adfb12 a1447799d128290030dfabf8ada2240e954d54745b774d883c7288882f6c926e c00692b953c002c4227b66eb5120cb2117bad0a89abbd5c604ef284311d74824 f44c9865eb5c008ad4bda519a3e278a02f359d41 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR6 %!PS-AdobeFont-1.1: CMR6 1.0 %%CreationDate: 1991 Aug 20 16:39:02 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put dup 50 /two put dup 51 /three put readonly def /FontBBox{-20 -250 1193 750}readonly def /UniqueXX 5000789 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf 5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b edad3b72ad63c2918b6e5a2017457e0d4ebc204b031f3fc6c13d7da7277a94ba 018e9998b3dd888011a5d7c4204989f30f908b95533bda845746b673ab71ea57 65a0d14f4350707e47c8276305b28513cbe1bb0dbd269a53719bda46e536685d df78ca0146b6b93e760256b74d939d4e35b5e77238f04c92298dfdd188feea30 e053eefbcbb52f2011772b3aae39f5805597bbc1e8bb75a446ce014030f4f2f0 f49f9e962ee4a1024a746fa92a3628db5270732b54e43fe5ecfa524f127e5fcc 788e77e66098336ad67fe4cccaf0253272d5df79864bf4b734cb9a5859d557d8 bc11b8e00221ebc12e97de4b1f466ead83a4c894709363bca9040410a52d592e 34ee40cc7e5efa920546b981aa659513a24b1b85c221a1875b62d0b89e57a368 321b8043a5b094e0379760a443d632892b14ad6d19dacc8c78093243ad67e6a3 08e56e6b68412ee690b10dac6e17708754a00d51fc957b500eb80175716eef4b 2ca1ef867614659bee3f2b7319e97b6fdf1efc847bf3cee3156f72f21751da8e 5fb6898919e6799820d3de0642d756e09d6fae4ff08dd3deda3173bff4bb11f7 9109c97ddc05897af709ea199a90fcee8ce4c7a3c15b18170c41c04de2d3fba8 f34296a95b8e1e8de3739b17273f8f2c85e914615e8eac5e8bd2387ba3b1edf4 7968f06e2067d836d0f9f3e085cdfd2de06a62c81d786b304326f7002e83160a 36598589228b4dddddc43c85e1d126f8fe81b828028e26317af5894aaccf4f69 6301e1a9fc45935d8a414957f08febebbc3a72ada80f101e47447d019ade56e9 f4fab969bba2b44e47399fedf5caa1bcea216d7ba713d523d98f2e44ef37ad46 282d7a587974734c2b1e24d8418fba0841578cb551332e6f777773f1b3155cda 5c13080030cd6402a22174611509221f2b3ac19fb60920218837144746f81792 43cd14528d48c032d279f6d8a87d2eb484f1b977e07c9f343d925c4e29440e4d 7fa894f7b3aed4f35967cf0754f375a178c830bf375ed5712c0598dda2182320 99fd8a45277a5d36139c90411cdf1b382d711f4c8011df724a07333c5421040c 06c6bd0c5bfb17cc2aa404c135fece394c5e77f735945b7dee71367ddb6c0e18 57d9eff272051cf196ea6b066d9ce7babfe387d9119d18a5e39a309f31a783c3 0df3e61b5fbca7d2ec0c81e76c4bd5d8ee71005814bff982fc50a47d68cb3864 afc1374db9f708ca964ab5fbb144195867aeb5679ebc7cd179cf2930a39e1e00 b069c5bb808e8f4d6fa76809a9b3bb2a51a92550895a2a003652db9b243d8723 b9fe67a8d1a395cbc82edb2b90760601d9b1c26ce4b2d388b7d5a8bf869970c6 320d2f8234ccd2571fa9d7433e0417995c96e118c665c769d36d8b03d294abd7 3309d0a515d5fc31b1cf350d9faf137e37dfae10d57a43db97e66885d8c6908d 41488814b6dcdcdbb38918c83faf349fd40dc4e07daf673cf9d7c3fa153bd121 fcb3423df6f5d6b96d935cd21f51a6db90a69d3211bfc35ed53227587c8e1899 eb1fd43dd853f77b5b5ab84efc9b05dd1038041806725f2a1c3099ddcee61546 9c612945cf9f915039ee8aa22d37dac60edab48dc37b33952706d0e6fdc43502 64e4b82ca26b6a98b9a56c829a4eb43f4de9b78c198dcafc06e701f349102838 b104edbc1c87632a08884e8f48cf84ed92b884d3fb4ed825be625905eaccd6b3 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI8 %!PS-AdobeFont-1.1: CMMI8 1.100 %%CreationDate: 1996 Jul 23 07:53:54 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 80 /P put dup 83 /S put dup 116 /t put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-24 -250 1110 750}readonly def /UniqueXX 5087383 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930e72218b3075925ce1192f11fc8530fcd5e3 038e3a6a6db2dcfbae3b4653e7e02730314e02b54a1e296d2bef8a79411d9225 dad7b4e6d6f9cf0688b69ba21193bf1495807e7a196cf14c95a4e02f9cd2da8c db2546c6df52e524745992e18d9ff87aa25e4e1800bbe4ebb357c6ef55ed6d03 6d3a00c1ee8073266c21d2f0ac85d656abf61d7e5a4fa87da8ec3b5329e434d0 d2adab706b42a2e5331be5295399d803ccac03f631f01f39a022fcdf63486b68 7d15ef284a77def7fde4898543e7b5f7ec267756103e477f547cfb8d2311c4b0 09deff56085f5d419697af1846c8b88c1bbbae149f0f19ca3c8dafe19cec48fe 6b38357246d8b5cef80b53bab4cbbbe8bc8318cc462a4158258f456e697f6058 86010493f252073ee4e4c9531f23485415ad6bc901bbaea659ef701f825f4b6d 5c9bed0dce7b63810f906b33ea4955531ca1ed1fc120cc56dc1e277a33222cc6 c3a97552607b865783faf0895cbeccd0df54f57bd162a88494768435eda71a39 69718c0c5912d3167bb0971546d733e735aa9bcd89f5aa154656031ab3f6fe41 94ec225ad03ab8b67a9da43ab365c4df17c23e79f685c3b6fd5b654e4a6f2603 6cec3a8641b0b57f93eb95f9e238832aeac2061f3153e0f375513c974f1c38f7 b59edcc94716f2862cf71c9a2be8430985da1cd813b1e1c1b9310564a2eb1aff 52c190f50fc981dccb64bb2c1f7a62c216f211c162c2ed1c554ef49fbaf12b31 aa3b2a80fee259dc0a2a4242869ddec7c29e2941792b28bba7f2c6f77ef69638 12b07d6843f33b51e01c8626b26edc34e1e0fffadede5fb468e8cd5de7e5a64c 366967578f415484d122834de4a647541d66989f7d8b25d1712d8d16729bd9a6 4728e9774d5359ecc76559ca0161743ea46ecf9a71df6a5178cf0e201f17434f 600dab003cb1607a236ca8bce0db546aa9ec60c8897857546e06f2bfc6390352 b7de3210e93cc33ce38c1dc8390692270e9a00d0b8aa74662d008cc2a42ffd83 0ca350eae72dd3c0b0e7d41010f4ff01c32732d9296a260ab3bb111f05af3028 030ab0c5dbc8ad206b7c08695f69cc436bd4e16311c5a7936082ea218fff75be 0fe1a507adb0b00c41fedf895db2a561cbbd2db210636d307edadfc484f39665 998e03c72983209eca6fcea3a9eb5131e68f4a6544d52a0cf69f25ceaab940c2 76ae27132618bb056c1df06b5627478f4fa0cc53f8fa92247c55a63e5ccbded9 7d3bb81eb37afd522091f825033352dbf28b0c998dceaef3ef8c8b2a68e096df 191fc12067dff7d119361babb29e58bcad0cec0f288660c3a670662866fc28f2 613ba17d55373518bb19d3f3c050f6531367792d40191058b8474064393c9ab7 3d65ac11a6e7c2a9b161443fb33e5ee342237f38804414b5ce4e6fc865b6fc7c e8998ea1911875a33a4ff362037630aeeb2cc36ea06416eda5f0e28290512847 bd70cc03d246c3690f27115a89fda4373b0e3c7f13689eb8aae94c8e402622e2 d347768f63fb761ddadd2a4e73172dcd181ebf5668bd2f46ea94090be8b0c100 9a7a89b2a084cfedd75b77d04df74391c3075ee40848daa914f9c9ce5c4fe152 3b57fde7ab969b5a3adc63660bd20419d71269031ace19552f8b33b8c2b29222 9762956ec1e71040a122dc7ed695e63cca686a74547132abf7ccb4b6b3f71104 bf9677f859a26ce1310cc65a5aebb811202a7c0a3a3fe12e69be0083106fa6a3 4f26018f14e8ad5acb835bbf7fe054656a7614ee808533a50b3415d6939534c7 193938a6881f4d87e401d635c510d87535abf47c5a4728909df612a5e2a97888 5b585a22fca26aa13de272ee553b18c87032cd4ffe20dd3c448d943897f693ab b5250fc264f69676e619c121eb5b9a4a6bd0ac701086990ea986b786a8d5b87c ababe3b081a4dad275e5861843e4071c02e093423ec59b66cd0e1a2ad963c5db e9e92c9a6997e850f2c5c6535ae8cca52c0ab18ccd8ee8fe8dfb8a4d48c8f135 7334c5feda249fb1293ba97978dc50957d9a6affb6dc358d0e949e738bde924f 68cc3f6f5cf331ef40eb1e2b3ec17350fc263c218fb9c0efd47b2f971a9d9eb0 dc9331d77bd7808aec8bdbc21cb997203760ad4f814bfff970c5a074cde8f9b8 7cd5b7e80c9f7702b0799981d211729f93b1fab9a0a62d49d1409a177f8d3802 bc553afd3c221dac62bf704a91bb1723b920943a1e59cebd0d72c763b8a5e3f0 a508f74d8821ce62793c6ad6151858f9934014369831f8341fb950ff6a4551ef b45721eff25ccdf9ee3822058407ac29976d7b8efc45360479344fab4be42f49 816e7a977ced1adf59eccce6022cf70bb315b3401f29bbaebbfdb42be8cc8965 ce665254d979c3916d9b64e29c7212452131ce29056877632eb6e130927eea83 4dee5ac6e5bb9f804e9a3a303483a9ddb57c79741ac2096a35bd657aa628e09a a1331ac2a2cb077213a957254ecec5f253328d3dfc8a389cce74ec9d73bbc709 11e50edc356ff120ec35a1e3acc1ea6dafc4e56f05e722502127eef313d90086 d10b7e3c6da6e70d415229ad02269cc771c897f1e44710dbdcbe2094fb190801 d0216f307d1d43792ae3645f8512cb9549fe73c0ec9ba44babf752d087eb891b dfbe8be25f38be6d569b87142b77ad75b77da4aa2bd3307fb44adf90ed019c28 0ec15ee3d3074094592c4b1c15566f268b3b89e931006cdcfd0428e2d4e19dcc 349f2ef94ff7b430240e67ad7a713d57ddc8aa933b68be3f3960dfe567bfdfab ba7fbef625f3aa44b249d198a22394cbc86681980e814e26d5303b5e54072f04 0c9b630b50e96d4af538733ce09fef3b67cb7c4b912fed186f8e0fae38c9f9b8 4dad1cb41f2a3487e1d079ff6073dc17cf342f66cf87e13f6bc3373d1aecb117 29610fed119f5d3914c9cbf494f250177f23d71c83a7de0800e7584276a00c13 ea96c7b5 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI6 %!PS-AdobeFont-1.1: CMMI6 1.100 %%CreationDate: 1996 Jul 23 07:53:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI6) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 100 /d put dup 102 /f put dup 105 /i put dup 106 /j put dup 110 /n put dup 115 /s put dup 116 /t put dup 118 /v put readonly def /FontBBox{11 -250 1241 750}readonly def /UniqueXX 5087381 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930e72218b3075925ce1192f11fc8530fcd5e3 038e3a6a6db2dcfbae3b4653e7e02730314e02b54a1e296d2bef8a79411d9225 dad7b4e6d6f9cf0688b69ba21193bf1495807e7a1e67ed7e41cc25acc04702f6 8ef703e3d45722c1a91fdef7100a48631a02a6f02a08c6b1f9b4df8310385b86 8632718fd87119a233f219d9411383b7fa9f3e4780d8c27e2e89e0cae883d664 c3eac57a3aef8988a2e9f0f8c7f53e0a80bdfc4620e21287d0390e1975398544 7f3ea66401024bea75e1b4c4437b7bb188f76f96b918ac7c6ad7e8ae7f21d8c2 790f08cccec904fe48ef39e597ed4d4237c1d1f596f5906b19ea308020f7a35c 168e327ec3246b1dfabe912f6b6daac09974876d3996e57d180261110db05f15 e3e8eebba3d90b5764c03df3033a1ed678ebc679569a2fb297378b25434c0f20 5313ecb8a952f07242d3ee731b0cdc086a4481178a3d65129c47c09b22e9c431 e11b3747b94c26a757c38d06001798c6a568303d541385244b967d3b1786edea f65bb53c4c2fe75e4b1b15c2c78d930b4296c80f08bad86012451edc8e9f0854 c3b390a16e27b11b3d45a9f72eff8baded2242dc928a61685d79e09681c97425 5b90a498614cf560fa5b1718981388268ba206a96989e6d0b5d485d9aca5594a e67dd7b34d8a369adb06647f8aff8814d6d9cdc04a4835918e557174c5bc0f3f bcea9907a04cf93c12727ec40db3f2f77596dca477862747435bdedacd9b2311 6cc97fa47ffdd7d897fb6bdd5572e35d34e7e1cb5e7273a4ffd86525323ace4a 84e1297028c2bd5469baa2e75d19360c2c9042139d5e7dd4390a6a3935424711 de21910126d750ae279916ceb71da3591d60dc62db333c5021e2c1cd61ade51e 939a8995b7e0f7a6dc2a9e9ea4fd8b87fa6e5218823aceecb9273176fd4c54bf ea136341ec54d05e6f6c1b89653e78605c80f5926b9ecaa9a601efae0b6923ac 448c3d24a1785f892fe5000d980f1ad2f60a0be6e6ee4b4331619d2ff0d3c9cd 22f189729c30ff61b35d8d1a2097cab9fcf0cc608d932a4458316772e35e5822 597be5573d951c0905e80f3333860c8ff0f283196f794b8b03d3062c9b255336 21a189add9d21d264e511ccc757f646d1647a1f4641ff16df9ddcc18a80d938f a7b07729cb3c06b230718f44e9832e52572059ffff658de5c964c2fb37f50289 7bde02b502df89d4471cca0b7c0b314fda0c51bb0bbf2f681dacd279f90bde98 a88aaa8d462c2ce3fb6b17524140e3fe5e2c0b65d632efca2d75b21714b57dee 649947ce8a35fa64d79f1c899693a82254bab54805372d1d8d2ad196ddf92cba 9966aa927bce1f8a06ad8eb43354866ea5628554266b0c5b77506a574563befc b41204229279084215aab9b54409f57f823a6fa9771a34cbe6561d5194dfbeb2 6032866f29e6763da9ee4f9ae7c1ae5dc54e1a406006f1d396c041076a9e82ea aeef1ae6700ab3a7a1cf3176ad9aced326c9ec5a3aa7e0150e9b60009929c666 01cbab02262f61a0aedcc88a4c73f5145283375cd5d12cfb723a3e483747c316 b22401c79f95beb87f910ba5d5c6919f8c3a28d4a88c5dc26619a50ced3c4c74 4ac71a6f0b4aadfa775f7f2e10630e0347c00edba0c14466fb850dbe666db574 979a56c9b8cfe8d75808b9fcc7eacef469ade1c762cfb40d35bbb5f75c43fa42 112b26dfb10dcab5f28de6b183a32829db3a0e05e9eb34cf3f86e79a9c1a8ef5 288cddd2e91b00a7c8bba9002f9fc8b18fe7aa80b8d11042d75840d57e26d4fd ffb7f4c57b0d5973f892829f1403735afa0368ed65238a89dfb858a538d22880 a6a6a0a70f3c2314c527d98c3ae2143caec5672e467077455b401e9a8eb5f5ee 595d750db554df5f6aaac5ee7beed3cab56877b8ab52fb0c73fb0f38bb764fc9 7a3251bf4e324bb5964c773c0d724686470c6062f6a053b5ad3987078df283c9 631e1ba189b5ce23d08b24e7875fb7f800edadb4646348b9c1e7d3c6a8c1a5fd 0aa4ce272b9aea3ed6d02095eb17b155fbe2812b4f7063c114645e12fe913fe1 13b7935509036c1bbec17e00469b1b119343e583a03046c150709005247ce568 f22f65f3fb2f7ba2444dbd529e08df6a7528b916d6a15c824dd19796508632a9 e3dcb1164da857ccf4bab8100b459691b5bb76307f092ddef9a95d5c05d4540d b690664486e0a5c6ddba1c628e30324e2ba6d31894c73155c9e66d40f3d75009 265d652ab66f03c1bb97ed8a2de5eb8b6632b6b503c577e88aca7ea2e2bbbf8a ecfad3fe89e6204f9ca68972eafba251bae83ab5dbcbc147a6342ba9ee2de0e7 b66237bf30b9ca1f1dc7d78b1eeaceaee037b075926c75dc79548ef0c3bf43c8 04276675ef21b330c36e9573fd6149015a4142369879a7ecf84c93c78070ff64 9cc98e5500d42d7ae930eb5a8c8da1fcb8eebb616f7a4804e6dd154120b403fd a065fba7f3f6b0ef96558980ed22232c11399ceb76651a174eb51cfaaf0120c4 572b496ad202abb3e77a5f8f50ea4d26ff4bb20d40ff71cf6d9d68f9bdb9b16a 44c94fcedd3b09b188f3d894b3e25e95ad2936bef1737d498069998a3fd950e9 a2b94d19221030f2657c7378c3b2f00c7a72b6c6a9b8be88cf62bfb4aaf67aab be1b654a9239f04eece0b0981000cb5b408fdb307657b4600a29e31ec664c7c3 cda1564bea532f637877fbe39117d6a6cf47a2c7e9a7b5ed9be7f8553eefe250 a19cd535005de7c2bdce31b9e41cfe5851e6284bc13a952a5e4e3e3ebcbb416e dabe2163c4a4e9a8a9290dad87ee8373065bb601b73b00ab19a21189b57ff15d 0e30338adba5a4db0b27cb08794a5481ca48a1bc672a5b353646a2e2470bda10 56e8c926c486ed7f221cc1631bca334e4779dd2935932b0422ccf6f367466b8d f90df9ccbb5f772051220573181467b3e0e65a7cc6a76de0c92001879d9e60d7 220af3492681d93f3f4551466bba1a994d3c1909033c721850ea37b713578946 5f18ac17dcb48d3c235c0a4194d6fac28f2b8151cd54385e61884c7c6a242d40 160d77911326ebc9f2d36041183f72345e22a52864b075dc1ed3dcc54dbb4bd3 7889b641a301e9ed42be2b8073c30d8b4f166077c2c703461d88ab96b6920db1 a3e15df755a3f5373eb8a4b2dd110dcbea44b6f3a342c1d3580a966415370b2f b9be5cbfa94e8b863ede318c8bc2a196d40cff87a43e20c154da99a2c4f217ee 1bcff67ba6bcbc7f6e6d0b77873421ad6546446f027a4acc7d71a4c7bbd6b3b9 01a3bf4a5468d238ca52e3c122c37ce9bb1fb69e0a3f05b4629bd9a538460d6f ed9b10e14352608dc8516c839d8b7757c2c29c904dd2375299ac83e697 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.1: CMR9 1.0 %%CreationDate: 1991 Aug 20 16:39:59 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 40 /parenleft put dup 41 /parenright put dup 61 /equal put readonly def /FontBBox{-39 -250 1036 750}readonly def /UniqueXX 5000792 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0 0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3 79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3 2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8 b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d 823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609 dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9 aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9 39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891 d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893 d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626 b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824 5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d 264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23 516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2 2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218 63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04 6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1 dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec 9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384 a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3 2f35f7bbc9aa50135f30223360fa2fbf019294b3af98224c5c05d6038db08bc1 4103010094dc215ef9ccfb96b237851332c8ed81a9184cced4edbda26b381f0c 73a2bc4a92533b0e667e82ce49ddd8ac9e34d9d40fd4b5b9910eab3b1234bbf3 af6608d66eaa424c158eddb75fbe39462708da8f5c18d92fbdb2f534598a844a e076f96a741f8002af3b38d7e4bfa363f5f5d1193014f71d730221f6f0ce59f5 827ece6d717d43fc65c46a8e2215fe5e071f9944c27a6a7dacce3f57eb6913ff 4174ae2b5ebc0d7299bb08547ad638cbc571316dc49b12ae8c6e3861de044202 b2eca66bc7c5c2a25f04fbdb5c3bb41bbd7d0c3f7783470f5140637596eef1cb 46ef24fc99cf0baa22eb70bf999d08abadbcc5fe732049a8d3f98aa4f3337769 edb11614358bd0c7122d025e7a8d38217d5ded8d183f885803e89d804faf9a42 8f2390967bcad4b92abafbd4cea72fe1029528b7e948bd859595e5609c5f465f 5e149025d84184e72cb913729079bcaf71417cd86ba7df01bce1ee5224535ec4 b54c1eedb431bf5cad5da5e36f3002d1dcc0a103664543949c408a117fc20e28 9d4e1255345f64c77605cb04ecbc14ba131acc35cbc60a3d8963de212be9c9b3 8ef5bae7cdfa2c676a8fe8f38c8dc329b22eba0569dae91c7aaf342da326c609 696d078c5c04b9984525bbdd8acc36cd87955775c2334fbe1ac123f90fd1f4ad 0f38115240df33635d8e9b2077f9c1c9b2ec6ba78603f29644df01f4ae5b7a4d 1ad0734dfd401a4e61e36ca49dd59d72996aa5ffe8a26563f07599f2485dc75c 001605f6428d1a3f6a7eb0b881df1e993a8478fa577a3707131c75142d8fecfc d3e6965ca90ffb8d2386af7978285da2d2a3377e165577c5f6e7ee636ccb5285 14762a00f129c9adcb78454c790e6beb30b5d378b2e03f0454f7606444c745e8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY9 %!PS-AdobeFont-1.1: CMSY9 1.0 %%CreationDate: 1991 Aug 15 07:22:27 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 79 /O put dup 92 /intersection put dup 94 /logicaland put readonly def /FontBBox{-30 -958 1146 777}readonly def /UniqueXX 5000819 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352 05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23 b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145 d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8 3750d597b842d8d96c423ba1273ddc63eb43f34fa90ea73a234af35fd9b24eb7 4f19626e9124df7acb92629cc87b2cf81c4a89b27447806db34393ddf0402958 e2daee0b4bf315f9aa0a2650d2e11ee289ffaec940d0af160fe7f29411c1c458 69d1ac3bcfe2ae4da72422549095f1fc9fec606289316f106e719a4ae2fd45ee 868fddf07a80e9a626bb43cdfdaa9dcd208b88fd99af20b27f9d6b5cda6a3fa8 8d5acfce8b5eebb38854378cecc3bfdac526514f1be9fb28ae628918ba942a3e 05b78c3aff808cf416a5ed01be280231b75a7aee0c66b0549713bef6b3cbc188 e625ba8776683e518d45caed940a7282a877ad8c4df101b9b589265f715a1599 ed182af8d0e8a9885d2f55ff176b20541c1b642c74f93fad2bd40454d4e1406a a10f1ee58ceb2f28238e0e6bcd631f066a4618013c70aa6c262ab1ee1d2f4c85 05c418c2856fec0a52dfefcd7fbe8ff8fe5871b3b8a6d68ecca15a3438889fc3 48c3edf5c5fc0710f461b4685cc6318121adc69f635ce570ef57ef8d7c77db42 e7eabc29fbc980807f26911e41047135de8ed55557ad4dd3fbb60f175b4446f9 fcd825987700047cc08959ecbc5dcf39bfdd39b98a08b8f0179c27bf59ee7646 ba8fcb995bd6543c2d6132757f647760f15e9cd0f380cbbfef629084c0ac6454 19ef65f4d1994ed26e00d6fb34178e8c16cc0da5d30834ca1578ff146faaee6a 859c0b465906055e3c96815acd72547620ec954d235c577313b55607e93f8364 fc0637c6040b6ca9f108cdee92ae25e47ff4cd1df17fbeb5b4923436a4222125 104ed19a69bb8660604d156e57d4412c2db0ee47deaafb31bf0b1aa37f43537e 7a4ea72d71cdbe0042e49a9d11d1505d5500dfc69dda9a801e20be39676b3744 829bd0dba92408db5a24e3d224868139523bf603e0a068246f0405943e1bb403 a6baf6e3bda4fcd200a3c86534bfd7fa69f09dfa81046225c5a8c8f53a030a39 68f721c3a21dd0f9fe44c72b6eafa3da5c9e211a6b1ad68ebf7b9256fc346c16 950d58cf3af15d107875efc5ffab531577356b5a20fe4b5967c6ac6f872c5788 3ceb64dda199cb 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI9 %!PS-AdobeFont-1.1: CMMI9 1.100 %%CreationDate: 1996 Jul 23 07:53:55 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put dup 59 /comma put dup 80 /P put dup 83 /S put dup 84 /T put dup 98 /b put dup 105 /i put dup 106 /j put dup 109 /m put dup 110 /n put dup 112 /p put dup 113 /q put dup 115 /s put dup 116 /t put dup 118 /v put dup 120 /x put dup 121 /y put dup 122 /z put readonly def /FontBBox{-29 -250 1075 750}readonly def /UniqueXX 5087384 def currentdict end currentfile eexec 80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98 74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730 48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f 15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427 bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792 3c6e705479464a4b33ae3d31bfe98efe259f07f7950237bbaee4f7b64ffea83a 757fa717d50c3298392891bfd60e34a056b0d6021da3fd9b8b01bf78b0b23dc4 ea3b0605150d20b27ff9ea5f2524661019d982a2e47cd7c21ee5ca9ed9227821 f8d07119397de26838c11d7b35bcedc43e011626e300f8249ed846d7b5ccbd89 02550cda17ddf113df658fb13f8162681013766863784efac128e01ef997e1a4 30312afac8f3d948edecd7d5090ab5c864b91d7f6e80256f0e1fc99f1102b74c 61cc456e2e1bedf0e627d5f70f738f963a13666405c51ebf23ca077e97570a2f 1118536b92e585cf1dbd5fbf36a0a5d197538c05304e93a15f3c931168d91d42 483ef428b1a3f1b7e548fd1d23b80f5523c8b8bf450b02804fb689f915c86693 f7dfb1c43f681627c7f027021aa3a8179148f1819cd94b8890a9ac63dc1e8a68 f254b64f6f173c3d02e3ebc037da05074017c8b113e94f4e2d26b467ef9da07e afd7ea7c86e025af52c5ceeb835951e67e02a38daf1e9e698bd21996c1071e84 ff7fbe77f6ddf9d06fa92b16ecebcbe0370b5cd9d450d0f2906a105cadf93ed0 0abc7fcf2c996e7c15e452006e35390d99b9cfc59925f1444c20d9c3e1fc2910 32cf9fa9d580eac1bc956334da391b870a757c3bee6aa3e005b20988d8587876 3ced20c6edf2ac2b22890e37ff7aedeb0986d85ae05bc84339bf2116df48c5d1 cc888bb33d409b06dd70ffd0618b2080442aac439aeb39c20a87ad74ef10629c f1604db8611e8e4224c5b21ab0c7ebddc77fe9a283b3a8c6a2a9508f6836e3fc 3eae1366b4da4f44cb7a77fd81d278c17775d56cb28b70f18d894bfd1ec1827f fb15f8480f3ea54447c66187dcbf2c5a459522b028f23614b353a9d6e18179c5 1eee8fb725c816736571f58e7dc9c7aab4045614d22f3363fdc67d7a585349b2 cb3b4d5d720d3c3ea712cb8637b63cb94c058eddb372fa648564b0f26662f730 1148d39d67ebe2024d3a2f185da1ec7997a47d0d5f315d8d6c18ed718cfb3f65 b1a5cc15820c494024ffeb5d9e1540ba62957f09aa47ead894199992647da129 39ab4799f25a65dce225ab6e791cd473728407997be22121fc069b0f155e7061 ab2532646c6a3d36ab63663d26de6089afc3b0def7b39135440dd4c87e249064 18d4d2064829c9e2f84e36e6e66f51c6d3e10e02e6b23d6d0aca3b89cd6c5fe9 9a6d5658ef121122d2c1cd4484fd9267212868a8cb38292d47f085cfeb77b9e5 f09c7a1a5c530913620e86d106d2357e608f8a7ed0492ab4ab79d89b75a9266a f6c7b76594806856bc3b098e0eb5d7a82aa1db783b233daaa114fdeadc1596d3 018b2dcd3e5bfd27f4dc2e444e62c440623173f45f92aab83ddc07bafd290581 880c8772645383295b0a72d2dc01ee2ab49ba0e4d27b8ce4a1f72bdde6bf2fcd 02dabd80f9698795e7e25d8ecf8e76c7f9d46ad358aa9e5397c3ce4622591857 9d18f739d5712c3f3c86078ae5ff9ae9782989b574328cc516cfb036021248b8 0d94eca6d3cd79eb12bbb525de474b46989f853e756bbc79e6806bb2296571dc b3db4b1172deb2118bde3947b3832a81bf3c5e9478d319baf2f1ef587e3f0b42 b9723da87a9170e8fe157f053125dfa44a779b2da4678a2c7f6cfd5d8b51997a 548d1d52b58ee25e0a7d47a0e1fac7be35c6bb91cd33070fb9649823215ddaef 470cb1a3db66c70b0ed4bcd60b9713a229047035fcbe7e77b739a7109a2c36a4 4da74cfb3f8315b158f478e6b4f3c55699fb327a316812603be2286b7a42a699 7c212c111fbca1ea17b0474f48cc045bc707091587e3af5820270ff0d074a8a4 4b69e9faa60449fd7ac40b8b3a76a63abf3a9b5f78c9bcd5e4361ef5aa5a06a2 a920f0297e2cd5af0fbd0be9356172ea364d2dfa2c3b405fd4f52309d5f11e33 9bd8a8653d1d7bc330ab55cd94bfec7be0994f77acbf3773538aa9ba82314cf3 b72d3c69b090e338fe9df056e2663560366d407a2a97e121680de125fcdde460 fdf4d152abab3f81865a31d8d27c5caa4c0816706a728f379d794c71f08222b0 5c68055fd76a9235f47a955bfb8757b93b6a6f06cf6acfae49aec2d2890ff34b 9d06540b9c0addb655b3905e18aeff0586e6c61954062fe8d3d40180f543ca21 94d199784a4696bd084e84806510cb7bc84dd11629201995ca1fbe536dcd4f73 1ee8af565b012efe839cd34f34507b4a57a04051202c4b54fe92f70a8d12202c c2ba8f5b4ae5ee14383d64c9e023d1210791663a341ffb116f57fbf861f23b07 f39943f66397bbebfeb43156f9d08972f3444ea70191653b5713919d0b9164fa 0c0d8dfaedb5c3718f68008c9995746caff6af5032138848b5085676eabe9964 1329a16c28ab2d373af7a05c1882c1e7122f3fc8a4760ebcbd9a0fd7ac380322 96159115b8322a61c1a76a32094b2762574d2ea653d222e42ee0eded756bc930 04a4c0405c2124262a23ce466e8b828404368de4314b844f4995da49133045d6 54671fbb7dbb082592a3bface9aa93b48c0ddfc939b53da56efb116a8062d771 c983eadbb073f0ab099a89b68b040cdacb5fdee842a9b30ca83a9dfbf6884195 affea5ffd88b1cef001de5034cdf81340e57225fd59f08a4fca08f68038d31fd 3021205e750ded58377096250a375e32f785983095f34a11d0ce53bb3ea39d15 731602a2450bb8e33db1f09f20509d66aa9df2fce2cc3062c037811eae66b41c a681e70b4dda28b689dd6326875544b7446544c24e3878ae3e8366959509c4d6 a2c7de8adf459499d19bcb1295045e99b948afd8c581d1c800d7dc92dd2eba2d 3cd81c1cabd6cdfd6c5ffeefb99c0b167db6669cff9194f16618a3cfdb51e974 c671b17bd41e92f80dbc88f90969f3ccf54acec636161c3ddc457f918412feb2 bd3439c89201a90ed8ea578a606583857f1213229a9a1b1a5c37c6971543ea59 693866c1b2e3b587658e56aaae6903a54ec3b60fcc204776837e4acad8cf5aa9 d0d4de145f6004d4a21fa0c1e895aa0a57cb7ac4f62125252d6e62ddc5c672cd c1f3d577e36c76bbcdfb69727019a2233e0474f3a1d3039ccb896a3df78f298a a798b476b184e7839c7425851875e966bbe5f5db1b17c9b835ce02c8ad9d0778 e8a09992055d4a1c5a4eee6976fb439d17e91e6f1138327ecb7b694c1fa3f1be b00d222077e85cce77e686ec64c4df71b2e87ac8cef96db4f8bb8edb4e18456a 186386e5b08116b9bdbeeceac09f894d88dfcafaa2f475df3780006ead128cee 9b70ace15e4699bb8b306d14b7df697715a8dfdd8813d9d6b8a9e334187d9315 1f8c2152f045a54f9f3c1593985bcda6ef35327d6e2f46e0b26c63118a60634b bc0f74c2939cb768315f69d4a5ef56846067a277cb67f72d80984b4bb302c580 9e431ea9e39ec81745a7fb5d319df6f86bbddf0e2630bd3b6dd2b922cf85408c 6536730cedf0d7112865d3f2065348081cba6ed35b92ae027e449b8b1cec271b 801ae9694dc934ac51287dfe9e8213a5a7650668f16fa731c3e562367a931f08 defc8834f5a461ca5029439417a010d6ea17c28b348668ed0c98951a3869966b 3480de32879f30c4ef9e993b74cede8c58d58c0ec01eac9c03536a4a302c0265 092eb930104e47742f5d8ece54a7b4c7ac90a4b92e8a7021a484996d8e5f6e52 2cfd2dfc3eabde36d13f70d543a50dd561ffd6913ce74c9031340f702df003b8 af3e6951ce879eb2fa995264dff2c3ec1dad791239f3bcc6e4e7e4adbf2277da dce3124c77f1e15803e18ebd02f0940b15f7b9bdb20570e277723c9bd6106369 fa4173d765c06ad3622c6bf97933df40ee80f72bc3bdb15908db69ed9e90835d b3f5f4b1d54c00cd13c7acdbb02bdba1836745b58e35b2a27ba3702a35f78b75 f59601923132b18567e674bf40c78ceb3c4b3c68662dd1483ba034b9de96852c e243acc5d4bef37e7ecd5cc9afb96a07c696250d27718601749c19958da51976 67e131baa46f1849c80589058bcb26c2ab661f681e9d1ea214ef5c524dce6d32 beb823f2c88ce20f2451b6bd273810b42cc66912551680f5d8498d1fba107d7d 9a28373c3c0a3ffaba8d050eec49cbc9bbb6396ae35273a0813bb5133bb53596 c8fff4caa83e173b70d261855b8a521f02b60181d6ecf14b41d5351b51182732 9997d423340b3bc4e7315a1d0edce5dbda9fabbf60c20e159d2a076ce4fffd31 1bf947c2c04e5d631f022a0ffdad393a8ba432fd9733689ef2c62e721018ae4b 25ebbfc66c78f83edc2077e3a0122a1bbecc25f9373ee75dba189d5487420a1c 3f301a61df7dd68cf35c808b3f436d32cdaea1a398285e8fefdd657176f053a7 69f6514191dc8ff4d9beef2e0be8060b644510c7a299f2793da67de414ac6b92 a5ed8cb69ba6865447622be9702f18cf8218acac5ec229da28a4135b9148e5e4 8831f1802aa67495edc1309f82e1620734b2846ceb641dace2ec05b8b97dbc63 e5044f71cf44e44cea3fb1629dbde4614644883ad69719a927405a326ca957cc f82a84ec08771523f774f213f6198d92f45e7f70b79c427846ebdc5ff435566d 33d33346aeb147b35b5a57103f5a9817139299e52c34f0ff29f3b7f59bb93e36 89eb317c5f3623f0e40d5a03e6ef3abfca42bea69de6612555e362b76ab34261 58d76c047bdbd378fea40afc7d8d56de2b934708aa6c85232c265b284ac1a07b e4cdd2bf2f3c5fbbf94176ebe996c988d7579af0eb7c6477b67eb3b34bfed9ab 17379cbdb1539742942687ecf4a36db2a8f1f0cef23c75db7e3591b9f98a13cc 751bfb63dc73c32d75d69e811595f878cae07bf66d093902b6a64e329c117a7d b446653b123b023c498bff7e3ef7fb3ef12c7e0ee8ea4d52ecc594b00f1000e1 89acbd7b89016f36d1de73e83340e3b05ff1ce43251da857fbe82f499f6e3adf e00a5187f7b472f3d7e9f0de834056d17cf1fb9c890af3418c9b484e10e6a34c 3f4fe3a7f13a10bfca380cb3a20a02b239d28d3ad20ca10c56bb8e906a6e386a a0a1dbafdc1bc0028aa477a2f385d477d3f3504451a2b4037342ecc41b61998d ab1e4645d148f2e652cedcbf40ad75d7d590ca77126cc6148e46856e8ed99754 ec0951a5baaf667a4138392cd5843d5f56a1376bb21241e28818579971e726c7 fa825e80302994a71b3ed9d4630ff3040b3d0731b971738c2f78e3738a47ed76 9d5ec056490c8da761691c8e2303703d00e6290fca734b96fa5a21c6ca7a9084 fba08787d50c5e769c9234fb33b2efdc1059c802fb70ef997682f65f476b3e7f 83e10710870e93d0ea90c1f0296df30fe6f08ae32173dbe6fba18d285d82ccd3 efc156d00a99813b82f2e7947e29821c3fcf857cd67debd48b318888f3cf40b2 c34923255857d6dcb21a694e5626aeb2bc194c7874eb6a366a810060371398e9 3479c29ac1a5d9ffbe75151e4344301f6146d85c1678992d1283e9c5b477e546 47adfa2609d569158220446e99c9a8c1639d1efc320248ea4c557de800a17db2 afd833aaaf6bb3b33ec99200c7c5bcd62af4474aba994ddfc104e91c5414c3a7 29aaca5e677d8b893d048316b6330ed4c76be8a1b4eabefea79549fcc2d59759 e3dc5506a49e62ebfd6ee6b2e07d64f03595ab520fc967da513e79ffc51228eb 48367d70dcd3c2776b6b8d318e641868f6b8fe08dd760e7d92e066aa320ff36b 09709dade9282db99ee55c51acbc4a5982ce00650fe192d5a0d9b7c34b7cfd58 c3d8133f5dbfa0089302d595a204ce75ce97761fde32a41668c48ad4c01c245b 6a57d8ea5f6b4ac5864bdc7da6fa4c68129720bf00d8b8299557c0de8fcc0a9d cb5cb1e14e11a57ea8a666bf7c0706ed93022aa0d288a4b1d129157388ff7c8d a91cba66d1cf4ceb0f060c5b9200f40a04584ce9d677df4796a6ba5152b6be14 33f00c351308415db21e37f5ff77f347a63fd89510a24ae98fee1137ce7d47c2 57b2afc13d90c540bdf50831f0ca7d9a613615ef2cb79a7065898c304233566f ebd6414779895b00d0deca95000d9985e9d41bdb8284423636085e2454e43e71 aec3d3166c5cdf4694034e788f9d8e1b5169732210c5513ed33af20b099b1956 93575353af3cf05347ecc77224c0e356564899a311da6d3aa62c40151d3bdb69 3058fd49808b2a5343dbec8ab4202d181df0a0b7f9490f68a1dfa7799874dae9 8008664dee1a4d5d612cd30484dc7fb0a9c17c4d3be5b2 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSSBX10 %!PS-AdobeFont-1.1: CMSSBX10 1.0 %%CreationDate: 1991 Aug 20 16:43:06 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSSBX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMSSBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 65 /A put dup 67 /C put dup 68 /D put dup 73 /I put dup 82 /R put dup 84 /T put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 104 /h put dup 105 /i put dup 108 /l put dup 110 /n put dup 111 /o put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 121 /y put dup 122 /z put readonly def /FontBBox{-71 -250 1099 780}readonly def /UniqueXX 5000806 def currentdict end currentfile eexec 9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65 66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7 695aba81f0260cd5248b9e649cd800bcb325468d2c43f9469c605847b026bcd2 1cbf124128e8ee31aa6d4286fa6d465315407a865001dbf5f9a84d3c7974880b 04bb3fdcc784bea5fdd113f8fbd8a454347aa30bf2f5369abf0829dcd5378296 a42091f24af75e9e8310e61e74704d7d88f586944710ad7adb098ad4ef8fb0f6 34873391837c2456f1126b8b6f2a19c5f43e5c47b746fbfbe14db596bd4a5000 adaba65a30556845ae06c6e20efc20647fd0cc730d587ddcea79c40388105b0c 20782fee3f0f2257b942de0853a1ee99805fe77e1796c3d2420f5658fdf30766 0c5525634b2b530a17b104e9a21ecc2f6a30e22520eefdb6a62600acc6b6e690 358036a18b2f414ae204fd429694fd212be6ede4bf941e3257f88a03a75aaba1 59aac9d0ba10cbbb4d4458c8bb0b3894d367d6256d5577e71a7c409a6f955909 e0f05b89175e89e50d833178e230f23553979497371147f764d7d5f8c7060278 d4ff7b299631604cf2b13e03038c1d2f8a726cff45122f37597dbb6eb8dab326 f200eccbb85c7e45d16c0aef3213e6b9c6190f6cbd1d0c9b24892fe97e57f2f3 a35a9ef6f0564ae852620bbd8d333c1fe8f6423157ad465809c536e9bf60700a 6d86aa05bc4257a31cff4282186a1540d0c9f91526c436def5a58caf23890bd1 e4f862076a77ff2339272d758ade8ce76d712d09a66a486038c7526ba4ec8188 dfcb3554fc97d7896893656c3b0dd357ab78098b97b42d507072e35112e7bade 4f03b0a7802093c546be61c5c9a61562f13364ce4b089a976f9f5cb84f83a077 44631b9532e1532309e42c60407656ee331dc020c2c04dfcaeef8de0145ed640 cc6e4f5111c718d64ffd3b1c32278711bd32e1ae3ef02a322ae3e68ac5e3c210 35a7eb1204e3403503b2f66527d90cd1ac968f801a680102de9b3b64089e3c99 9ce3ac89fb599c38aab754119059a15e7d9bcc412bf11286be753f99579b698d ca28bfe7ee32a81b87f08f137edab1741cd08e84f55ca486a3c9f7933a6efcf4 28b05294cb78868d2414d0bf5fc65b5703d35104a1ef4d3ad9a745133d33169f e3028e3c08ebc79e7f35e41f2011c069653a6ac4e900d69f7fff4e39e3b7d757 66b52703c9b6a80d13a2e9e083ddffc3574409ff53a125a54e340b345af931e7 8a278dc12c0632e9fcfb93d9c5882c351d04f3d56d7bab5987e729428fb9a5c7 ac1e57105eaed8bb2401c0dec27cdd2f2f97a90950688295331a9799314c8693 7d8e3efa2f3254126dc18eaec306615b4586fd4e087eb0a46a99b6beac1b1768 f7760daadacb2583a1bd574924d81a1a05ba384a017cb36010178906f3ea29c7 3dbd607d73595772d532c02fa9c2f1d680ff70967e91f843e801684e182f9406 eccf67f09dce35de517ddd65e2eda8fe50408d31a935f4723a482658eab8dc0e 799bb05902a7fcbfedcee19935a70f4ebb299c537fb1252448546d9652f336f9 5f8c2eb3ccd32bbc82472ba4265ebc0d53775a7ddfd2d686ad1a866521fe830e f85c9f6912b9d75e66f44c022bc323376d978b94b53e1a3e34598371b68b07a2 e84a424b18eff4f64a864e45df5dd84a4a95da7dca8f87870ebaef5999c3d617 c14effffc015d97a8465eb78bee241ea87a94b9d160bd25d41c598772ee094f0 a104648257fc1218adf88423bb6676268d6e24663da51c3efbeadf0cbfaad092 495e6d2c071559388b1569487d22e9951291ab4e8533bc82aaa3c8e98561e4d6 29686d20d957480f595eb701b19bce36e81a0f6d341b59c8d2ef4922f31d267c 3cbf58460d1fb4e9c8602adfdc1c93c86bec6971859b0fe2fe33d52771fbafaf eb47f3b6545f1859d0d3b09be801819551d9c6e33738eb7dd49e747665914cb4 23916f1d1c4574e283227a8dc7b3d1d82e33c328eca34eccd277727390b40aac 4e7f76aa02f333fbee7b37fa46d0fdff2e77d9d82d5a9012e48d8dcfcbc6b45e d087b5b39fc3e22ce8403801ca433d0c1a394dd815499812114e66906d9b1c43 c37b100ae698a3f957a78c8bdd48a37a97243b9e6683f2a30426128f350d9d32 4ce149df5cf0ce5c7a9383ed35256fcecf229b1caef25032daea7b383a878b96 4c39213544f69e4d2849683951325af4b0c76de8a519cd1e1686edc5faf3c18f 78d071c657c3b46007dcf4179d62bbb1d9aaadec265cba1b418456195cfdab5f 8d526c0e96778e831f62ebcef17e9c396b0cf70c988c25d209e3e2fe5e8bb31d 05e7d84896505b6c8c462e4823b2acf998b2a84901e0b43f6d004ed67ddcfc42 2d271eaa1973224cc3db64150d69521f4a5b89ed80282a180bfb5657cb2b3782 73cc1d45b4bfe966c8995146f0582dcf6f43adc435fd579ba90a6995667cd12e 9b68674757547f950cf634f0c8fa6048cfb49224dcb1ebf5c1aa1f89635fbc08 5e6e6feb50889bec4a4f45fa99ed16d718a8226ccb75b26475ead5b6774d30e3 6a6b7791a6f42daa7fda8bf486807475df1056784646d7c254e3dfcf7cef4af7 e5dbc9d51d8520cf21a9cfc8c7f3bc72fe1ce26685a3ad46238695e2aceab0b2 65e0d8336872374c0cad0945da995e560e2261d3ac42a393c9fb2b3857351a1c 698f04c423ab6d883fa30722eb4d488a02ecd0bc376d647ed171118ce2da77bd ff9cf34e900638b10c4e20d1fdef1b9262788d2050a8afd77dcb383ce43a9830 071b8d416939153253ba3e19e6a6f89fc2465649fe760d2ad15841328c71033e fc7bf5530553704852b0f41f07f26fcdc9a2b8ff3e5d38affff56bc7828f3ab4 f34c9adb9d85e658b3289a42c72124ce01e30ad7f044ddb1a5555815fde2a914 4fec61600ab0eb81a4a42ed184323765a7aed84e2cb2ad493fade04ecc2cab3d cf4ab76136a7331102d930844c3de260c362b541436ab6d33384518880ffcfc7 91139d23f86a6d0781044063f73a4d9be710d96313ffba17f9e44370437dc92c bb13e9e6ccc84a4e40b1a02f98b3e522ea1fe2ffc2f69cc79097d4b1b6ba055c 1cd9c75d12c0fad480bfb7f57cf9cf6ce949258b36494cf97ed0583d9fe32146 aedb47737b74097f6bface75f0100bdbe445b8a2292dd7c994e6c669f52aa5f0 6dc81528fc067f65ad7067b1aedadbd4971312deb425096d7a2b9c15d7057c16 d24f1f32c4b295318a64a923c79981963860616bae6bc0efeb14afeaea6d1a97 05903d8bdc1ff441e6f90b3bd9d88fe283552d4338b2dbbc80e3cc9043796cd4 b025b6d8ed6dbd511c38e0d4564e92010d9fffc37ed1ad984327fc49ca903e2e 989ed291fdaf6208fb862e8ca35f5569505bc7665bb11c37a05910a938d7a7c7 50da7ea84f839f8120252fe25712cf88bde13723d9b0fc11562f01053b61b492 77a239adc220874fb31788dae4b30f7fc21f81cacdabcf479e613de11e6ff17c 54d2ebb4480cb2cbd345201a9bb6cb6e895d7d22e5ab0018196ef2bcd7651ca0 ed651c1f5c756de251f0f96070f6e7998ee3a2a02471ddfaac73517a0104db9b e4a8e10be8ceb6fac4ce02843e21b2deea146da60c25e099c35fa12b18d1cc70 70ae4acf6bb967467237370d1adcc6b00de53784272ec31361142623d0d608fa 8468027aae250056d2e1e3e648cd18137cab81a55dffd749d069492ae91175d5 b5a2968b889a2ea82ac436ad8c391b4e34c49210115839187a4b3c8f621091ac 12d13f46eb85ff0016f4810adad866ce1a921c1d544934c7292641da0d4982f2 10ae3f1634ae2f1a6ac39c1e569ce989361f35090f4b5920d93b06018f1916d8 1d2cff26038dc4f9ca3a2834dd5060c28152787ae3bdd1bb9f6677ae5de07792 599831ba9665e935547496bd8c988d8087735dca662def28d1313f8f341309cf 7fde55a50eaa5e8f7380bde46afda02b269d10f10aaea956b0f67d7dd3bfbd02 d63cd13cd9b00a5932610c7eec21faebc0dad88e5e813205e2c8e59533e9c87b aadbe8c478fef7c2ba26f0807bd80982e0913ef599b7dc11e2a135cd3dd0a06f 5d3bf8adb583e134afc238bad418a976b5a3fcfba6ae0a7239ab2e3c86b128ea 133583e7b6f3efb83ee17a72dedcd1c45b1839f406e492b40435f2e54ad3694e f865ccf441f6c8604c444be59f21d1c9ba5fb4eccd3f908c545abdd0c55aab3e a9efb55fc5ffb9f15c28d4d20fabdffd1b0b337569b296ed25d3d7a6dcc96b87 200f5ed295cf3c342089d8960a5770d68de56c7e2fea447f1a5728e3f54b1c1f 2cb39c3739bd8cf98577d0a0ce45b118f17fa4a2672783303e43e9ac6711e43c 3ac97264a274d67204323e4231065481e55d0be146a608588a9a326eb79ddab0 53aa7a410ec8e389d2d98021de2e9d5d124a7a792dc6061b171ef58566884dec d117a5b7d33566b2782bca0d1dd2cf050dc58468ced7d7d67e31669f798b71b6 97f7339f31bbbe1e70955b6becf33fb4b607492e62bebb8071e53c0b5074b5ff bc1cbd8f829a2b8e278f93e8a2af85574f0aed8858d32063111e5591fa00b631 97eff571e3f3af13f03d2ac1d5586352519ff91e4d953bcfe8c63b5a6071103f ab403b61224418d8e94fb3d47add1211a6ae6b72f30ed8c2cf40bb83e4d75ff8 d1b7b2dc454359eed68d8d15da0d48da15d86dfefafe3d3a2d8d56d78fa04dc3 72e4b527baa56b905524217e7dedd8720ee112a891d6f383847ce50288303621 8141f782045a0f9764b91a2c8c3eff2779581e4963955f951402228c796b892c 28d11d3f9bef6d6e37e11f4ec4197481d7faa75ee61d3b5450e9fd0bbe7007fd decc3fea3da4d2815abb5d878a58d4ecc85cd74f898e7e2e5771da89d1299d2c 7fd9a359a2461542dcc8b0b3ffea551a5462db85a06276572bb62718e9163785 4d7292b8610a81577e040a36f56d143e34654a0e28f0f4c44a65935dbe9134b3 72a342f24b141dd6f134614f9a4c780c569a2edd9496c764fc60dbc72c6ee84f 5cd5003c829348102fc4949e9d760e23157d5213881775bcdbb0257956bd32b2 66258894733ba57b8b5f661f1449a916e5f68ef7260e41b76d6a7d23abbc5484 b5c267e6034ec1f47f2a2f94789d78288ae0278a52944dadf6be8fa35a776b23 4c4d0141d518d3870742337183df31f37554a32a74a69ad512e7248b35db00ff 1a2960d9832a53b330bc414ab745b486060205ef5a2ca32d16f757d40e1c0a68 2698b413b8c18722405e49fbfd07e648263de815cd32fc16a668e481a7951fe5 ac602db295a5c7ddf2ddd5400d258678654c8aac817f63163a5e24988df46bf1 e0a772885296dfd81fc687853e8504764f5876c29785a4bcd3417b81d9123f77 aa75bd66ea8a0eb64f79555a5baac1e09f5fef1951b1b2bc3c3cfcb8991e252b bf9ca682ac28896ec1801b0dbb67fd86b2258278bcfb18e3f490326aa041e4e8 b672e619ad005ad87a5d3568dceab23ad2acd104d386980c7d82500101fd8bce cadde563407dc8bc95d9ad2134726b170dc210d06a837a3d92be156d03e4f240 43ef6d3651c8e5499ca1b3c66aa3f042455d41b05d4dddfa5c4053e2be4faf5e 70ea538ea31066279b8dfd77c9cbaa37ee08d1dd7536d1dd208c9e0c5fb08ffe ca0c20cdf5b93001f02cf497cf235ae908d53114585997df91e5bf35b70ade7d 40c467016aa167f4aa34b1bfccee9a36880caa72658ab8d98140f95a76872c1f 5feb4dcf5fca5fba8fbad666f7e066abdc2142f43e0023912d29c9c60d16833f 1973df0ec2f40757a6a959650923f3c13fd7490c18da2d604c9912cb1e837b73 3c6d4940223915cab89d0a9277cdbccd482cfdc31f4984498975f48560353f73 16527cdc12564c3b9f12ddabbd219c2da8519e805215303663eb18afaeda65fe 59ed3eeed16a14f51a740f5af5345e6ca42eeab6b7420f9b86c52313f73ab859 dcb5706d28885be0d1b6799133ee279b5f2f8f48acf30353e224812dfdbb1a17 2b4f9c21ac992ab03c26edd3e0f5dce5fa7175c231470b5bc6f22dbe92ad917d dd68dfff264fa75f5d4b122973bec2cb789833bd2fbc4ca6c52f2a2426b0cd2a a5c42988d4602ccc48a36bdfcffb653fd7ed94c57bb22e495ee02080511cea25 68fed89e17ce5eb796ff47129771303ec7b52c4c2da74aa9a4e98542c1b2353c 3d9d8e07f98b7b556cdf5d4d74e1a38409bdc71d05ed5c5256ca606f121db448 46f9ff7c9ae8f48dcd841b2c02aae62528 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 40258431 52099146 1000 1200 1200 (grislain.dvi) @start /Fa 173[108 82[{}1 149.44 /MSBM10 rf /Fb 139[44 4[66 74 1[37 3[74 1[44 4[66 51[44 45[{TeXBase1Encoding ReEncodeFont}8 132.835 /Times-Bold rf /Fc 139[50 1[66 2[75 83 1[42 3[83 1[50 1[83 2[75 39[75 75 75 1[75 1[75 5[50 45[{ TeXBase1Encoding ReEncodeFont}15 149.44 /Times-Bold rf /Fd 204[61 61 61 49[{}3 99.6264 /CMR6 rf /Fe 133[66 70 79 3[51 32[86 2[89 80[{}6 132.835 /CMMI8 rf /Ff 134[66 66 96 66 74 37 66 44 74 74 74 74 111 29 66 1[29 74 74 37 74 74 66 74 74 9[125 2[81 89 11[103 2[96 2[89 5[37 37 11[37 44 37 2[44 44 29 35[66 66 2[{TeXBase1Encoding ReEncodeFont}40 132.835 /Helvetica rf /Fg 134[58 1[84 58 58 32 45 39 1[58 58 58 90 32 58 1[32 58 58 39 52 58 52 58 52 11[84 71 65 78 2[84 84 103 3[39 2[65 71 1[78 78 84 7[58 58 58 58 58 58 58 58 58 58 1[29 39 29 41[65 2[{ TeXBase1Encoding ReEncodeFont}49 116.231 /Times-Roman rf /Fh 137[62 1[48 58 4[77 3[51 44 2[60 1[64 100[{}8 99.6264 /CMMI6 rf /Fi 194[119 19[60 60 40[{}3 149.44 /CMR9 rf /Fj 161[102 1[102 12[122 79[{}3 149.44 /CMSY9 rf /Fk 87[50 45[58 66 66 100 66 75 42 58 58 75 75 75 75 108 42 66 1[42 75 75 42 66 75 66 75 75 6[83 2[124 91 108 83 75 1[108 91 108 100 124 83 2[50 108 108 1[91 108 100 1[91 1[75 4[50 12[50 37 41[75 2[{TeXBase1Encoding ReEncodeFont} 50 149.44 /Times-Italic rf /Fl 133[71 76 87 1[75 1[55 72 1[69 77 1[93 135 2[63 53 6[66 13[90 94 2[98 20[43 43 58[{}18 149.44 /CMMI9 rf /Fm 133[79 83 3[93 67 70 62 2[91 93 1[42 2[42 93 1[56 85 93 81 93 87 12[122 1[117 8[55 4[132 117 1[122 12[91 91 91 91 49[{}27 166.044 /CMSSBX10 rf /Fn 75[50 11[50 16[149 75 1[66 66 24[66 75 75 108 75 75 42 58 50 75 75 75 75 116 42 75 42 42 75 75 50 66 75 66 75 66 3[50 1[50 1[108 1[141 108 108 91 83 100 1[83 108 108 133 91 108 58 50 108 108 83 91 108 100 100 108 138 66 3[42 42 75 75 75 75 75 75 75 75 75 75 1[37 50 37 2[50 50 50 116 34[83 83 2[{TeXBase1Encoding ReEncodeFont}80 149.44 /Times-Roman rf /Fo 134[101 101 2[111 61 101 71 1[111 111 111 162 51 2[51 111 111 61 101 111 2[101 12[111 121 14[131 131 67[{TeXBase1Encoding ReEncodeFont}22 181.818 /Helvetica-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 1200dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 1322 155 a Fo(The)50 b(Strang)r(e)h(Comple)m(xity)f(of)g (Constrained)g(Delauna)l(y)h(T)-15 b(riangulation)1564 611 y Fn(Nicolas)37 b(Grislain)1018 760 y(\264)997 793 y(Ecole)h(Normale)f(Sup)2176 792 y(\264)2168 793 y(erieure)g(de)g(L)-8 b(yon)1657 975 y(L)g(yon,)37 b(France)1433 1157 y(ngrislai@ens-lyon.fr) 5200 595 y(Jonathan)f(Richard)h(She)l(wchuk)5225 777 y(Computer)f(Science)i(Di)l(vision)4974 959 y(Uni)l(v)n(ersity)e(of)h (California)e(at)i(Berk)o(ele)n(y)5016 1140 y(Berk)o(ele)n(y)-10 b(,)36 b(California,)g(USA)112 b(94720)5447 1322 y(jrs@cs.berk)o(ele)n (y)-10 b(.edu)-150 2102 y Fm(Abstract)-150 2464 y Fn(The)74 b(problem)f(of)g(determining)f(whether)h(a)i(polyhedron)c(has)j(a)g (con-)-150 2646 y(strained)47 b(Delaunay)h(tetrahedralization)e(is)i (NP-complete.)79 b(Ho)l(we)l(v)n(er)-6 b(,)51 b(if)-150 2828 y(no)29 b(\002)l(v)n(e)i(v)n(ertices)e(of)g(the)h(polyhedron)e (lie)h(on)g(a)i(common)f(sphere,)h(the)f(prob-)-150 3010 y(lem)j(has)h(a)f(polynomial-time)e(solution.)43 b(Constrained)31 b(Delaunay)i(tetrahe-)-150 3192 y(dralization)27 b(has)i(the)g(unusual) f(status)g(\(for)g(a)i(small-dimensional)d(problem\))-150 3373 y(of)37 b(being)f(NP-hard)h(only)f(for)h(de)n(generate)g(inputs.) -150 3863 y Fm(1)183 b(Intro)5 b(duction)-150 4226 y Fn(Suppose)39 b(we)h(wish)f(to)g(\002nd)h(a)g(tetrahedralization)d Fl(T)61 b Fn(of)39 b(a)i(polyhedron)c Fl(P)21 b Fn(.)-150 4407 y Fl(P)65 b Fn(is)43 b(not)g(necessarily)g(con)-6 b(v)n(e)n(x,)45 b(and)e(is)g(not)f(necessarily)i(homeomorphic)-150 4589 y(to)55 b(a)g(ball)g(\(i.e.)g(it)g(may)g(ha)m(v)n(e)h(holes)e(and) h(handles,)60 b(and)55 b(be)g(of)g(arbitrary)-150 4771 y(genus\).)63 b(W)-12 b(e)44 b(use)f(the)f(most)h(common)g (de\002nition)e(of)h Fk(tetr)n(ahedr)n(alization)p Fn(,)-150 4953 y(in)53 b(which)g Fl(T)75 b Fn(is)53 b(a)i(simplicial)d(comple)n (x)h(whose)h Fk(underlying)e(space)i Fn(\(the)-150 5135 y(union)37 b(of)i(all)g(the)f(simplices)h(in)f Fl(T)21 b Fn(\))39 b(is)g Fl(P)21 b Fn(,)40 b(and)f(the)f(v)n(ertices)h(of)g Fl(T)60 b Fn(are)39 b(pre-)-150 5316 y(cisely)j(the)g(v)n(ertices)g(of) g Fl(P)21 b Fn(,)45 b(with)c(no)h(e)n(xtra)g(v)n(ertices)g(permitted.) 61 b(Observ)n(e)-150 5498 y(that)53 b(a)i(simplicial)d(comple)n(x)i Fl(T)75 b Fn(is)53 b(not)g(a)i(tetrahedralization)d(of)h Fl(P)75 b Fn(if)54 b Fl(T)-150 5680 y Fn(lea)m(v)n(es)c(an)n(y)f (portion)f(of)h Fl(P)72 b Fn(unco)n(v)n(ered.)83 b(Unfortunately)-10 b(,)51 b(man)n(y)e(polyhe-)-150 5862 y(dra)35 b(ha)m(v)n(e)g(no)g (tetrahedralization)e([4],)j(and)f(Ruppert)e(and)j(Seidel)e([3])h(sho)l (w)-150 6044 y(that)g(it)g(is)g(NP-hard)g(to)g(determine)g(whether)g(a) h(polyhedron)e(is)h(tetrahedral-)-150 6226 y(izable.)4 6422 y(A)51 b Fk(constr)n(ained)e(Delaunay)i(tetr)n(ahedr)n(alization)c Fn(\(CDT\))k(is)g(a)g(speci\002c)-150 6604 y(tetrahedralization)29 b(of)h(a)h(polyhedron)d(\(or)i(of)g(a)i(more)e(general)h(input)e (called)-150 6785 y(a)53 b Fk(piece)n(wise)g(linear)e(comple)m(x)p Fn(\))i(that)e(has)i(se)l(v)n(eral)g(f)o(a)m(v)m(orable)f(properties,) -150 6967 y(notably)k(that)h(it)g(helps)g(to)g(control)f(interpolation) e(error)j([8,)h(7)o(])g(because)-150 7149 y(it)e(minimizes)g(the)g (radius)g(of)g(the)g(lar)m(gest)g(min-containment)f(sphere)h(of)-150 7331 y(a)62 b(tetrahedron)d([2])i(\(compared)g(to)g(all)f(other)h (constrained)f(tetrahedral-)-150 7513 y(izations)49 b(of)g(the)h (polyhedron\),)g(and)g(it)f(is)h(an)g(ingredient)d(that)i(helps)h(De-) -150 7694 y(launay)43 b(re\002nement)h(algorithms)e(to)i(reliably)e (generate)i(good)f(tetrahedral)-150 7876 y(meshes)32 b([5].)44 b(A)32 b(polynomial-time)d(algorithm)g(e)n(xists)i(to)g (construct)f(a)i(CDT)-150 8058 y(of)41 b(a)g(polyhedron)e(if)h(one)h(e) n(xists)f([6)o(])h(\(and)g(therefore)f(to)h(check)g(whether)f(a)-150 8240 y(polyhedron)e(has)j(a)f(CDT\))g(in)g Fj(O)t Fi(\()p Fl(n)1742 8257 y Fh(v)1815 8240 y Fl(n)1908 8257 y Fh(s)1975 8240 y Fi(\))g Fn(time,)h(where)f Fl(n)2917 8257 y Fh(v)3031 8240 y Fn(is)g(the)g(number)-150 8422 y(of)f(v)n(ertices)f(of)h(the)f (polyhedron,)g(and)h Fl(n)2006 8439 y Fh(s)2111 8422 y Fn(is)g(the)g(number)f(of)h(simplices)f(in)-150 8604 y(its)51 b(CDT)-11 b(.)52 b(Ho)l(we)l(v)n(er)-6 b(,)56 b(the)51 b(algorithm)f(is)h(only)g(guaranteed)g(to)g(w)o(ork)f(cor)m(-) -150 8785 y(rectly)36 b(if)f(no)h(\002)l(v)n(e)g(v)n(ertices)g(of)g (the)g(polyhedron)e(lie)i(on)f(a)i(common)f(sphere.)4 8982 y(F)n(or)f(con)-6 b(v)n(enience,)36 b(we)g(say)g(that)f(a)h (polyhedron)d(is)j Fk(de)-6 b(g)o(ener)n(ate)35 b Fn(if)g(it)g(has)-150 9163 y(\002)l(v)n(e)g(\(or)f(more\))g(v)n(ertices)h(that)e(lie)i(on)f (a)h(common)g(sphere)f(\(with)f(a)j(w)o(arning)-150 9345 y(that)46 b(we)g(are)h(ab)m(using)e(the)h(term\).)74 b(A)46 b(nonde)n(generate)g(polyhedron)e(has)i(a)-150 9527 y(unique)40 b(CDT)h(if)g(it)f(has)i(a)f(CDT)g(at)g(all,)h(whereas) g(some)g(de)n(generate)f(poly-)-150 9709 y(hedra)32 b(ha)m(v)n(e)h(man) n(y)f(CDTs.)45 b(A)33 b(de)n(generate)f(polyhedron)e(can)j(be)g(con)-6 b(v)n(erted)-150 9891 y(into)31 b(a)i(nonde)n(generate)e(polyhedron)f (by)i(an)h(in\002nitesimal)d(perturbation)g(of)-150 10072 y(its)39 b(v)n(ertices)g([1],)i(b)m(ut)d(a)j(perturbation)c(might)h (con)-6 b(v)n(ert)39 b(a)i(polyhedron)c(with)-150 10254 y(a)46 b(CDT)g(\(or)g(man)n(y)g(CDTs\))f(into)g(a)i(nonde)n(generate)e (polyhedron)f(with)g(no)p -150 10434 1601 7 v -150 10581 a Fg(Supported)e(in)g(part)g(by)g(the)g(National)g(Science)f(F)n (oundation)h(under)g(A)-11 b(w)o(ards)42 b(A)-5 b(CI-9875170,)-150 10714 y(CMS-9980063,)25 b(CCR-0204377,)g(and)f(EIA-9802069,)h(and)f(by) h(a)f(gift)h(from)f(the)g(Oka)n(w)o(a)g(F)n(oun-)-150 10847 y(dation.)47 b(This)33 b(w)o(ork)f(w)o(as)g(done)g(while)h(the)f (\002rst)h(author)f(w)o(as)g(visiting)i(the)f(Uni)m(v)n(ersity)g(of)f (Cali-)-150 10980 y(fornia)d(at)g(Berk)o(ele)n(y)-8 b(.)5530 3475 y @beginspecial 0 @llx 0 @lly 244 @urx 258 @ury 864 @rwi @setspecial %%BeginDocument: cdelaunay3d.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: cdelaunay3d.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Fri Jun 27 13:19:29 2003 %%For: jrs@pyramid.CS.Berkeley.EDU (Jonathan Shewchuk,625 Soda Hall,,) %%BoundingBox: 0 0 244 258 %%Magnification: 1.0000 %%EndComments /MyAppDict 100 dict dup begin def /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 258 moveto 0 0 lineto 244 0 lineto 244 258 lineto closepath clip newpath -85.0 419.0 translate 1 -1 scale % This junk string is used by the show operators /PATsstr 1 string def /PATawidthshow { % cx cy cchar rx ry string % Loop over each character in the string { % cx cy cchar rx ry char % Show the character dup % cx cy cchar rx ry char char PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char) false charpath % cx cy cchar rx ry char /clip load PATdraw % Move past the character (charpath modified the % current point) currentpoint % cx cy cchar rx ry char x y newpath moveto % cx cy cchar rx ry char % Reposition by cx,cy if the character in the string is cchar 3 index eq { % cx cy cchar rx ry 4 index 4 index rmoveto } if % Reposition all characters by rx ry 2 copy rmoveto % cx cy cchar rx ry } forall pop pop pop pop pop % - currentpoint newpath moveto } bind def /PATcg { 7 dict dup begin /lw currentlinewidth def /lc currentlinecap def /lj currentlinejoin def /ml currentmiterlimit def /ds [ currentdash ] def /cc [ currentrgbcolor ] def /cm matrix currentmatrix def end } bind def % PATdraw - calculates the boundaries of the object and % fills it with the current pattern /PATdraw { % proc save exch PATpcalc % proc nw nh px py 5 -1 roll exec % nw nh px py newpath PATfill % - restore } bind def % PATfill - performs the tiling for the shape /PATfill { % nw nh px py PATfill - PATDict /CurrentPattern get dup begin setfont % Set the coordinate system to Pattern Space PatternGState PATsg % Set the color for uncolored pattezns PaintType 2 eq { PATDict /PColor get PATsc } if % Create the string for showing 3 index string % nw nh px py str % Loop for each of the pattern sources 0 1 Multi 1 sub { % nw nh px py str source % Move to the starting location 3 index 3 index % nw nh px py str source px py moveto % nw nh px py str source % For multiple sources, set the appropriate color Multi 1 ne { dup PC exch get PATsc } if % Set the appropriate string for the source 0 1 7 index 1 sub { 2 index exch 2 index put } for pop % Loop over the number of vertical cells 3 index % nw nh px py str nh { % nw nh px py str currentpoint % nw nh px py str cx cy 2 index oldshow % nw nh px py str cx cy YStep add moveto % nw nh px py str } repeat % nw nh px py str } for 5 { pop } repeat end } bind def % PATkshow - kshow with the current pattezn /PATkshow { % proc string exch bind % string proc 1 index 0 get % string proc char % Loop over all but the last character in the string 0 1 4 index length 2 sub { % string proc char idx % Find the n+1th character in the string 3 index exch 1 add get % string proe char char+1 exch 2 copy % strinq proc char+1 char char+1 char % Now show the nth character PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr) false charpath % string proc char+1 char char+1 /clip load PATdraw % Move past the character (charpath modified the current point) currentpoint newpath moveto % Execute the user proc (should consume char and char+1) mark 3 1 roll % string proc char+1 mark char char+1 4 index exec % string proc char+1 mark... cleartomark % string proc char+1 } for % Now display the last character PATsstr dup 0 4 -1 roll put % string proc (char+1) false charpath % string proc /clip load PATdraw neewath pop pop % - } bind def % PATmp - the makepattern equivalent /PATmp { % patdict patmtx PATmp patinstance exch dup length 7 add % We will add 6 new entries plus 1 FID dict copy % Create a new dictionary begin % Matrix to install when painting the pattern TilingType PATtcalc /PatternGState PATcg def PatternGState /cm 3 -1 roll put % Check for multi pattern sources (Level 1 fast color patterns) currentdict /Multi known not { /Multi 1 def } if % Font dictionary definitions /FontType 3 def % Create a dummy encoding vector /Encoding 256 array def 3 string 0 1 255 { Encoding exch dup 3 index cvs cvn put } for pop /FontMatrix matrix def /FontBBox BBox def /BuildChar { mark 3 1 roll % mark dict char exch begin Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata] PaintType 2 eq Multi 1 ne or { XStep 0 FontBBox aload pop setcachedevice } { XStep 0 setcharwidth } ifelse currentdict % mark [paintdata] dict /PaintProc load % mark [paintdata] dict paintproc end gsave false PATredef exec true PATredef grestore cleartomark % - } bind def currentdict end % newdict /foo exch % /foo newlict definefont % newfont } bind def % PATpcalc - calculates the starting point and width/height % of the tile fill for the shape /PATpcalc { % - PATpcalc nw nh px py PATDict /CurrentPattern get begin gsave % Set up the coordinate system to Pattern Space % and lock down pattern PatternGState /cm get setmatrix BBox aload pop pop pop translate % Determine the bounding box of the shape pathbbox % llx lly urx ury grestore % Determine (nw, nh) the # of cells to paint width and height PatHeight div ceiling % llx lly urx qh 4 1 roll % qh llx lly urx PatWidth div ceiling % qh llx lly qw 4 1 roll % qw qh llx lly PatHeight div floor % qw qh llx ph 4 1 roll % ph qw qh llx PatWidth div floor % ph qw qh pw 4 1 roll % pw ph qw qh 2 index sub cvi abs % pw ph qs qh-ph exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph % Determine the starting point of the pattern fill %(px, py) 4 2 roll % nw nh pw ph PatHeight mul % nw nh pw py exch % nw nh py pw PatWidth mul exch % nw nh px py end } bind def % Save the original routines so that we can use them later on /oldfill /fill load def /oldeofill /eofill load def /oldstroke /stroke load def /oldshow /show load def /oldashow /ashow load def /oldwidthshow /widthshow load def /oldawidthshow /awidthshow load def /oldkshow /kshow load def % These defs are necessary so that subsequent procs don't bind in % the originals /fill { oldfill } bind def /eofill { oldeofill } bind def /stroke { oldstroke } bind def /show { oldshow } bind def /ashow { oldashow } bind def /widthshow { oldwidthshow } bind def /awidthshow { oldawidthshow } bind def /kshow { oldkshow } bind def /PATredef { MyAppDict begin { /fill { /clip load PATdraw newpath } bind def /eofill { /eoclip load PATdraw newpath } bind def /stroke { PATstroke } bind def /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def /ashow { 0 0 null 6 3 roll PATawidthshow } bind def /widthshow { 0 0 3 -1 roll PATawidthshow } bind def /awidthshow { PATawidthshow } bind def /kshow { PATkshow } bind def } { /fill { oldfill } bind def /eofill { oldeofill } bind def /stroke { oldstroke } bind def /show { oldshow } bind def /ashow { oldashow } bind def /widthshow { oldwidthshow } bind def /awidthshow { oldawidthshow } bind def /kshow { oldkshow } bind def } ifelse end } bind def false PATredef % Conditionally define setcmykcolor if not available /setcmykcolor where { pop } { /setcmykcolor { 1 sub 4 1 roll 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat setrgbcolor - pop } bind def } ifelse /PATsc { % colorarray aload length % c1 ... cn length dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor } ifelse } ifelse } bind def /PATsg { % dict begin lw setlinewidth lc setlinecap lj setlinejoin ml setmiterlimit ds aload pop setdash cc aload pop setrgbcolor cm setmatrix end } bind def /PATDict 3 dict def /PATsp { true PATredef PATDict begin /CurrentPattern exch def % If it's an uncolored pattern, save the color CurrentPattern /PaintType get 2 eq { /PColor exch def } if /CColor [ currentrgbcolor ] def end } bind def % PATstroke - stroke with the current pattern /PATstroke { countdictstack save mark { currentpoint strokepath moveto PATpcalc % proc nw nh px py clip newpath PATfill } stopped { (*** PATstroke Warning: Path is too complex, stroking with gray) = cleartomark restore countdictstack exch sub dup 0 gt { { end } repeat } { pop } ifelse gsave 0.5 setgray oldstroke grestore } { pop restore pop } ifelse newpath } bind def /PATtcalc { % modmtx tilingtype PATtcalc tilematrix % Note: tiling types 2 and 3 are not supported gsave exch concat % tilingtype matrix currentmatrix exch % cmtx tilingtype % Tiling type 1 and 3: constant spacing 2 ne { % Distort the pattern so that it occupies % an integral number of device pixels dup 4 get exch dup 5 get exch % tx ty cmtx XStep 0 dtransform round exch round exch % tx ty cmtx dx.x dx.y XStep div exch XStep div exch % tx ty cmtx a b 0 YStep dtransform round exch round exch % tx ty cmtx a b dy.x dy.y YStep div exch YStep div exch % tx ty cmtx a b c d 7 -3 roll astore % { a b c d tx ty } } if grestore } bind def /PATusp { false PATredef PATDict begin CColor PATsc end } bind def % vertical lines 11 dict begin /PaintType 1 def /PatternType 1 def /TilingType 1 def /BBox [0 0 1 1] def /XStep 1 def /YStep 1 def /PatWidth 1 def /PatHeight 1 def /Multi 2 def /PaintData [ { clippath } bind { 8 16 true [ 8 0 0 -16 0 16 ] {<11111111111111111111111111111111>} imagemask } bind ] def /PaintProc { pop exec fill } def currentdict end /P10 exch def /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 F2psBegin10setmiterlimit0.060000.06000scF2psBegin 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 1 slj 15.000 slw n 3000 6225 m 4050 6225 l gs col0 s gr % Polyline n 4050 6225 m 4500 4800 l gs col0 s gr % Polyline n 4950 6900 m 1500 6900 l gs col0 s gr % Polyline n 1500 2775 m 3000 2775 l gs col0 s gr % Polyline n 3900 5850 m 4168 5850 l gs col0 s gr % Polyline n 4500 4800 m 4950 6225 l gs col0 s gr % Polyline n 4500 4800 m 5400 5850 l gs col0 s gr % Polyline n 4050 6225 m 4950 6225 l gs col0 s gr % Polyline n 4950 6225 m 4950 6900 l gs col0 s gr % Polyline n 4950 6225 m 5400 5850 l gs col0 s gr % Polyline n 4950 6900 m 5400 6525 l gs col0 s gr % Polyline n 1500 4500 m 1500 6900 l gs col0 s gr % Polyline n 1500 2775 m 1500 4500 l gs col0 s gr % Polyline n 5400 5850 m 5400 6525 l gs col0 s gr % Polyline 30.000 slw n 3900 3150 m 3000 4500 l 3900 5850 l cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def 15.00 15.00 sc P10 [8 0 0 -16 200.00 210.00] PATmp PATsp ef gr PATusp gs col0 s gr % Polyline 7.500 slw n 3900 5550 m 3000 5850 l gs col0 s gr % Polyline n 3900 5250 m 3000 5475 l gs col0 s gr % Polyline n 3900 4950 m 3000 5100 l gs col0 s gr % Polyline n 3900 4650 m 3000 4725 l gs col0 s gr % Polyline n 3900 4350 m 3000 4275 l gs col0 s gr % Polyline n 3900 4050 m 3000 3900 l gs col0 s gr % Polyline n 3900 3750 m 3000 3525 l gs col0 s gr % Polyline n 3000 3150 m 3900 3450 l gs col0 s gr % Polyline 0.000 slw n 3000 2775 m 3000 4500 l 3900 3150 l cp gs col7 1.00 shd ef gr % Polyline n 3000 4500 m 3000 6225 l 3900 5850 l cp gs col7 1.00 shd ef gr 15.000 slw % Ellipse n 3075 4500 1575 1575 0 360 DrawEllipse gs col0 s gr % Polyline 7.500 slw [60] 0 sd n 2700 4500 m 3145 4715 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 2400 4500 m 3375 5040 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 2100 4500 m 3570 5335 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 1800 4500 m 3740 5595 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 1800 4500 m 3740 3400 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 2400 4500 m 3365 3965 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 2700 4500 m 3155 4285 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 3000 2775 m 3900 3150 l gs col0 s gr % Polyline n 3900 5850 m 3000 6225 l gs col0 s gr % Polyline 30.000 slw n 3000 4500 m 3900 3150 l gs col0 s gr % Polyline n 3000 4500 m 3900 5850 l gs col0 s gr % Polyline 7.500 slw [60] 0 sd n 2100 4500 m 3565 3665 l gs col0 s gr [] 0 sd % Polyline 30.000 slw n 1500 4500 m 3000 4500 l gs col0 s gr % Polyline [120] 0 sd n 1500 4500 m 3900 5850 l gs col0 s gr [] 0 sd % Polyline [120] 0 sd n 1500 4500 m 3900 3150 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 3000 2775 m 3000 6225 l gs col0 s gr /Times-Italic ff 450.00 scf sf 1725 6450 m gs 1 -1 sc (P) col0 sh gr /Times-Italic ff 450.00 scf sf 2625 4275 m gs 1 -1 sc (t) col0 sh gr /Times-Italic ff 450.00 scf sf 4275 4725 m gs 1 -1 sc (v) col0 sh gr 7.500 slw % Ellipse n 3900 3150 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3900 5850 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1500 4500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 6225 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 2775 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 4500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 4500 4800 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 4050 6225 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 4950 6225 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 4950 6900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1500 6900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1500 2775 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 5400 5850 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 5400 6525 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr F2psBegin10setmiterlimit0.060000.06000scF2psEnd rs end %%EndDocument @endspecial 4249 3790 a Fn(Figure)38 b(1:)49 b Ff(A)38 b(constr)o(ained)g(Delauna)l(y)h(tetr)o(ahedron)e Fe(t)h Ff(inside)i(a)e(polyhedron)4249 3940 y Fe(P)20 b Ff(.)4249 4384 y Fn(CDT)-11 b(.)38 b(Similarly)-10 b(,)37 b(an)h(in\002nitesimal) e(perturbation)f(might)i(con)-6 b(v)n(ert)37 b(a)h(tetra-)4249 4565 y(hedralizable)47 b(polyhedron)e(into)h(a)i(polyhedron)d(with)h (no)h(tetrahedraliza-)4249 4747 y(tion)36 b(at)h(all.)4403 4929 y(This)44 b(note)h(sho)l(ws)f(that)g(determining)f(whether)h(a)i (de)n(generate)e(polyhe-)4249 5111 y(dron)57 b(has)h(a)h(CDT)f(is)f (NP-hard.)108 b(\(It)57 b(is)h(easy)h(to)e(sho)l(w)h(the)f(problem)g (is)4249 5293 y(in)48 b(the)f(class)i(NP)-17 b(,)49 b(so)f(it)f(is)h (NP-complete.\))79 b(This)48 b(is)f(an)i(odd)e(result)g(for)h(a)4249 5475 y(small-dimensional)h(problem,)k(because)e(the)f(e)n(xistence)g (and)g(identity)e(of)4249 5656 y(the)53 b(\(unique\))e(CDT)j(of)e(a)i (nonde)n(generate)e(polyhedron)f(is)i(easily)g(deter)m(-)4249 5838 y(mined)37 b(in)g(polynomial)e(time.)4403 6020 y(Note)43 b(that)f(the)h(Ruppert\226Seidel)f(result)g([3])h(is)g(not)f(rele)l(v)l (ant)i(to)e(CDTs;)4249 6202 y(their)34 b(construction)g(cannot)g(be)i (embodied)e(in)h(constrained)f(Delaunay)h(tet-)4249 6384 y(rahedra.)47 b(Our)37 b(construction)e(is)i(entirely)f(dif)l(ferent.) 4249 6800 y Fm(2)183 b(Constrained)62 b(Delauna)-5 b(y)62 b(T)-15 b(etrahedralizations)4249 7136 y Fn(Let)35 b Fl(P)56 b Fn(be)34 b(a)h(polyhedron.)44 b(T)-12 b(w)o(o)34 b(points)f Fl(p)h Fn(and)h Fl(q)k Fn(are)c Fk(visible)f Fn(to)g(each)h(other)4249 7318 y(if)56 b(the)h(line)e(se)n(gment)i Fl(pq)62 b Fn(lies)56 b(in)g Fl(P)21 b Fn(.)105 b(A)57 b(tetrahedron)e Fl(t)i Fn(is)g Fk(constr)n(ained)4249 7500 y(Delaunay)33 b Fn(if)h(all)f(four)g(v)n(ertices)h(of)f Fl(t)h Fn(are)h(v)n(ertices)e(of)h Fl(P)21 b Fn(,)35 b(the)f(tetrahedron)f Fl(t)4249 7682 y Fn(lies)i(entirely)f(in)h Fl(P)21 b Fn(,)37 b(and)e(the)g(circumsphere)h(of)f Fl(t)h Fn(\(the)f(unique)f(sphere)i(that)4249 7864 y(passes)h(through)d(all)i (four)f(v)n(ertices)h(of)g Fl(t)p Fn(\))g(encloses)h(no)e(v)n(erte)n(x) h(of)f Fl(P)58 b Fn(that)35 b(is)4249 8045 y(visible)j(from)h(an)n(y)g (point)f(in)h(the)g(interior)e(of)i Fl(t)p Fn(.)53 b(\(An)n(y)39 b(number)g(of)f(v)n(ertices)4249 8227 y(is)j(permitted)e Fk(on)h Fn(the)g(sphere,)i(though.\))55 b(Figure)40 b(1)g(depicts)g(a)h (constrained)4249 8409 y(Delaunay)d(tetrahedron)e Fl(t)p Fn(.)48 b(Although)36 b(the)h(circumsphere)h(of)f Fl(t)i Fn(encloses)f(a)4249 8591 y(v)n(erte)n(x)k Fl(v)5 b Fn(,)45 b Fl(v)j Fn(is)42 b(not)g(visible)g(from)g(an)n(y)h(point)e(in)h(the)h (interior)e(of)h Fl(t)p Fn(,)j(so)e Fl(t)g Fn(is)4249 8773 y(constrained)37 b(Delaunay)-10 b(.)4403 8955 y(A)46 b(tetrahedralization)e Fl(T)68 b Fn(of)45 b Fl(P)68 b Fn(is)46 b(a)h Fk(constr)n(ained)e(Delaunay)g(tetr)n(ahe-)4249 9136 y(dr)n(alization)50 b Fn(\(CDT\))j(of)g Fl(P)74 b Fn(if)53 b(all)f(the)h(tetrahedra)g(in)f Fl(T)74 b Fn(are)54 b(constrained)4249 9318 y(Delaunay)-10 b(.)46 b(A)33 b(set)h(of)f(\002)l(v)n(e)h(or)f(more)h(v)n(ertices)g(lying)e (on)h(a)h(common)g(sphere,)4249 9500 y(with)47 b(no)g(v)n(erte)n(x)g (inside)g(it,)j(might)c(admit)i(se)l(v)n(eral)g(dif)l(ferent)e (tetrahedral-)4249 9682 y(ization,)37 b(all)g(composed)g(of)g (constrained)f(Delaunay)h(tetrahedra.)4249 10098 y Fm(3)183 b(The)61 b(Reduction)4249 10435 y Fn(Here)43 b(we)h(sho)l(w)e(ho)l(w)h (to)f(embody)g(simple)h(circuits)e(and)i(g)o(ates)g(in)f(a)i(poly-)4249 10616 y(hedron)38 b Fl(P)21 b Fn(,)40 b(so)e(an)n(y)h(satis\002ability) d(problem)i(can)h(be)g(reduced)f(to)g(\002nding)g(a)4249 10798 y(CDT)-11 b(.)47 b(Let)g Fl(p)p Fi(\()p Fl(v)5079 10815 y Fd(1)5148 10798 y Fl(;)25 b(v)5291 10815 y Fd(2)5360 10798 y Fl(;)g(:)g(:)h(:)f(;)g(v)5776 10815 y Fh(n)5861 10798 y Fi(\))46 b Fn(be)h(a)g(predicate)f(of)h(length)e Fl(m)i Fn(on)f Fl(n)h Fn(v)l(ari-)4249 10980 y(ables)38 b Fl(v)4669 10997 y Fd(1)4737 10980 y Fl(;)26 b(v)4881 10997 y Fd(2)4950 10980 y Fl(;)f(:)g(:)g(:)h(;)f(v)5366 10997 y Fh(n)5450 10980 y Fn(.)p eop %%Page: 2 2 2 1 bop 170 820 a @beginspecial 0 @llx 0 @lly 546 @urx 186 @ury 1656 @rwi @setspecial %%BeginDocument: bit.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: bit.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Mon Aug 26 05:35:34 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 546 186 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 186 moveto 0 0 lineto 546 0 lineto 546 186 lineto closepath clip newpath -161.0 235.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline n 3000 1500 m 3300 3600 l 5100 3600 l 4200 900 l cp gs col7 0.85 shd ef gr % Polyline n 6300 1500 m 6600 3600 l 8400 3600 l 7500 900 l cp gs col7 0.85 shd ef gr % Polyline n 9600 1500 m 9900 3600 l 11700 3600 l 10800 900 l cp gs col7 0.85 shd ef gr 7.500 slw [60] 0 sd % Ellipse n 4200 2400 1500 1500 0 360 DrawEllipse gs col0 s gr [] 0 sd % Ellipse n 7500 900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 6300 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 6600 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 8400 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 10800 900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 9600 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 9900 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 11700 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 4200 900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3300 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 5100 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Polyline 15.000 slw n 7500 900 m 6300 1500 l gs col0 s gr % Polyline n 6300 1500 m 6600 3600 l gs col0 s gr % Polyline n 6600 3600 m 8400 3600 l gs col0 s gr % Polyline n 8400 3600 m 7500 900 l gs col0 s gr % Polyline n 10800 900 m 9600 1500 l gs col0 s gr % Polyline n 9600 1500 m 9900 3600 l gs col0 s gr % Polyline n 9900 3600 m 11700 3600 l gs col0 s gr % Polyline n 11700 3600 m 10800 900 l gs col0 s gr % Polyline n 4200 900 m 3000 1500 l gs col0 s gr % Polyline n 3000 1500 m 3300 3600 l gs col0 s gr % Polyline n 3300 3600 m 5100 3600 l gs col0 s gr % Polyline n 5100 3600 m 4200 900 l gs col0 s gr % Polyline n 6300 1500 m 8400 3600 l gs col0 s gr % Polyline n 9900 3600 m 10800 900 l gs col0 s gr F2psBeginF2psEnd rs %%EndDocument @endspecial -450 1136 a Fn(Figure)39 b(2:)50 b Ff(A)38 b(bit)i(\(left\),)g(whose)f(tr)r(iangulation)g(indicates)i(a)e(v)m (alue)g(of)g(tr)r(ue)g(or)-450 1285 y(f)l(alse)n(.)-430 2747 y @beginspecial 0 @llx 0 @lly 710 @urx 212 @ury 2376 @rwi @setspecial %%BeginDocument: gate1.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: gate1.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Mon Aug 26 05:35:22 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 710 212 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 212 moveto 0 0 lineto 710 0 lineto 710 212 lineto closepath clip newpath -17.0 250.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 15.000 slw n 8025 2850 m 8025 3750 l gs col0 s gr % Polyline n 8025 3750 m 8625 3000 l gs col0 s gr % Polyline n 9225 2850 m 8025 3750 l gs col0 s gr % Polyline n 8625 3000 m 9225 2850 l gs col0 s gr % Polyline n 9225 2850 m 8025 2850 l gs col0 s gr % Polyline n 8025 2850 m 8625 3000 l gs col0 s gr % Polyline [90] 0 sd n 6000 2025 m 7200 2025 l gs col0 s gr [] 0 sd % Polyline n 6000 1125 m 6000 2025 l gs col0 s gr % Polyline n 6000 1125 m 6600 2175 l gs col0 s gr % Polyline n 6000 1125 m 7200 2025 l gs col0 s gr % Polyline n 6000 2025 m 6600 2175 l gs col0 s gr % Polyline n 6600 2175 m 7200 2025 l gs col0 s gr % Polyline n 8325 1050 m 9525 1950 l gs col0 s gr % Polyline n 8325 1050 m 8925 1200 l gs col0 s gr % Polyline n 9525 1050 m 8325 1050 l gs col0 s gr % Polyline n 8925 1200 m 9525 1050 l gs col0 s gr % Polyline n 8925 1200 m 9525 1950 l gs col0 s gr % Polyline n 9525 1950 m 9525 1050 l gs col0 s gr % Polyline [90] 0 sd n 6225 3825 m 7425 3825 l gs col0 s gr [] 0 sd % Polyline n 7425 2925 m 6225 3825 l gs col0 s gr % Polyline n 7425 2925 m 6825 3975 l gs col0 s gr % Polyline n 7425 3825 m 7425 2925 l gs col0 s gr % Polyline n 6225 3825 m 6825 3975 l gs col0 s gr % Polyline n 6825 3975 m 7425 3825 l gs col0 s gr % Polyline 0.000 slw n 6225 1200 m 6825 2250 l 7425 2100 l 7425 1200 l cp gs col7 1.00 shd ef gr % Polyline n 8025 1050 m 8025 1950 l 9225 1950 l 8625 1200 l cp gs col7 1.00 shd ef gr % Polyline n 6000 3000 m 6000 3900 l 6600 4050 l 7200 3000 l cp gs col7 1.00 shd ef gr % Polyline n 8925 3000 m 8325 3750 l 9525 3750 l 9525 2850 l cp gs col7 1.00 shd ef gr % Polyline 15.000 slw n 4200 1050 m 4800 1200 l gs col0 s gr % Polyline n 4200 1050 m 5400 1950 l gs col0 s gr % Polyline n 4800 1200 m 5400 1950 l gs col0 s gr % Polyline n 4800 1200 m 5400 1050 l gs col0 s gr % Polyline n 5400 1050 m 4200 1050 l gs col0 s gr % Polyline n 5400 1950 m 5400 1050 l gs col0 s gr % Polyline n 3900 1050 m 3900 1950 l gs col0 s gr % Polyline n 3900 1050 m 4500 2100 l gs col0 s gr % Polyline n 3900 1050 m 5100 1950 l gs col0 s gr % Polyline n 3900 1950 m 4500 2100 l gs col0 s gr % Polyline n 4500 2100 m 5100 1950 l gs col0 s gr % Polyline [90] 0 sd n 3900 1950 m 5100 1950 l gs col0 s gr [] 0 sd % Polyline n 7425 1200 m 6225 1200 l gs col0 s gr % Polyline n 6225 1200 m 6825 2250 l gs col0 s gr % Polyline n 7425 1200 m 6825 2250 l gs col0 s gr % Polyline n 6825 2250 m 7425 2100 l gs col0 s gr % Polyline n 7425 2100 m 7425 1200 l gs col0 s gr % Polyline [90] 0 sd n 6225 1200 m 7425 2100 l gs col0 s gr [] 0 sd % Polyline n 8025 1950 m 9225 1950 l gs col0 s gr % Polyline n 8025 1950 m 8625 1200 l gs col0 s gr % Polyline n 8025 1050 m 8025 1950 l gs col0 s gr % Polyline n 8025 1050 m 8625 1200 l gs col0 s gr % Polyline n 8625 1200 m 9225 1950 l gs col0 s gr % Polyline [90] 0 sd n 8025 1050 m 9225 1950 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 4200 3750 m 5400 3750 l gs col0 s gr [] 0 sd % Polyline n 5400 2850 m 4200 3750 l gs col0 s gr % Polyline n 5400 2850 m 4800 3900 l gs col0 s gr % Polyline n 5400 3750 m 5400 2850 l gs col0 s gr % Polyline n 4200 3750 m 4800 3900 l gs col0 s gr % Polyline n 4800 3900 m 5400 3750 l gs col0 s gr % Polyline n 3900 3750 m 4500 3000 l gs col0 s gr % Polyline n 3900 2850 m 3900 3750 l gs col0 s gr % Polyline n 3900 2850 m 4500 3000 l gs col0 s gr % Polyline n 5100 2850 m 3900 2850 l gs col0 s gr % Polyline n 5100 2850 m 3900 3750 l gs col0 s gr % Polyline n 4500 3000 m 5100 2850 l gs col0 s gr % Polyline n 6000 3000 m 6600 4050 l gs col0 s gr % Polyline n 6000 3000 m 6000 3900 l gs col0 s gr % Polyline n 7200 3000 m 6000 3000 l gs col0 s gr % Polyline n 7200 3000 m 6600 4050 l gs col0 s gr % Polyline n 6000 3900 m 6600 4050 l gs col0 s gr % Polyline [90] 0 sd n 7200 3000 m 6000 3900 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9525 2850 m 8325 3750 l gs col0 s gr [] 0 sd % Polyline n 8325 3750 m 8925 3000 l gs col0 s gr % Polyline n 8925 3000 m 9525 2850 l gs col0 s gr % Polyline n 8925 3000 m 9525 3750 l gs col0 s gr % Polyline n 9525 3750 m 9525 2850 l gs col0 s gr % Polyline n 8325 3750 m 9525 3750 l gs col0 s gr % Polyline 0.000 slw n 4050 1125 m 4650 2175 l 5250 2025 l 4650 1275 l cp gs col7 1.00 shd ef gr % Polyline n 6225 975 m 6825 2025 l 7425 975 l cp gs col7 1.00 shd ef gr % Polyline n 8775 1275 m 8175 2025 l 8775 2175 l 9375 2025 l cp gs col7 1.00 shd ef gr % Polyline n 4650 3075 m 4050 3825 l 4650 3975 l 5250 2925 l cp gs col7 1.00 shd ef gr % Polyline n 6000 2775 m 6600 3825 l 7200 2775 l cp gs col7 1.00 shd ef gr % Polyline n 8775 3075 m 8175 3825 l 8775 3975 l 9375 3825 l cp gs col7 1.00 shd ef gr % Polyline 15.000 slw n 4050 1125 m 4650 1275 l gs col0 s gr % Polyline n 4650 1275 m 4650 2175 l gs col0 s gr % Polyline n 4050 1125 m 4650 2175 l gs col0 s gr % Polyline n 4650 1275 m 5250 2025 l gs col0 s gr % Polyline [90] 0 sd n 4050 1125 m 5250 2025 l gs col0 s gr [] 0 sd % Polyline n 4650 2175 m 5250 2025 l gs col0 s gr % Polyline n 6225 975 m 6825 1125 l gs col0 s gr % Polyline n 6825 1125 m 7425 975 l gs col0 s gr % Polyline n 7425 975 m 6225 975 l gs col0 s gr % Polyline n 6825 1125 m 6825 2025 l gs col0 s gr % Polyline n 7425 975 m 6825 2025 l gs col0 s gr % Polyline n 6225 975 m 6825 2025 l gs col0 s gr % Polyline n 8175 2025 m 8775 2175 l gs col0 s gr % Polyline n 8775 2175 m 9375 2025 l gs col0 s gr % Polyline n 8775 1275 m 8775 2175 l gs col0 s gr % Polyline [90] 0 sd n 8175 2025 m 9375 2025 l gs col0 s gr [] 0 sd % Polyline n 8175 2025 m 8775 1275 l gs col0 s gr % Polyline n 8775 1275 m 9375 2025 l gs col0 s gr % Polyline n 4650 3075 m 5250 2925 l gs col0 s gr % Polyline n 4050 3825 m 4650 3975 l gs col0 s gr % Polyline n 4650 3075 m 4650 3975 l gs col0 s gr % Polyline n 4050 3825 m 4650 3075 l gs col0 s gr % Polyline n 5250 2925 m 4650 3975 l gs col0 s gr % Polyline [90] 0 sd n 5250 2925 m 4050 3825 l gs col0 s gr [] 0 sd % Polyline n 6000 2775 m 6600 2925 l gs col0 s gr % Polyline n 6600 2925 m 7200 2775 l gs col0 s gr % Polyline n 7200 2775 m 6000 2775 l gs col0 s gr % Polyline n 6600 2925 m 6600 3825 l gs col0 s gr % Polyline n 7200 2775 m 6600 3825 l gs col0 s gr % Polyline n 6000 2775 m 6600 3825 l gs col0 s gr % Polyline n 8175 3825 m 8775 3075 l gs col0 s gr % Polyline n 8775 3075 m 8775 3975 l gs col0 s gr % Polyline n 8775 3075 m 9375 3825 l gs col0 s gr % Polyline n 8175 3825 m 8775 3975 l gs col0 s gr % Polyline n 8775 3975 m 9375 3825 l gs col0 s gr % Polyline [90] 0 sd n 8175 3825 m 9375 3825 l gs col0 s gr [] 0 sd 7.500 slw [60] 0 sd % Ellipse n 1800 2400 1500 1500 0 360 DrawEllipse gs col0 s gr [] 0 sd % Ellipse n 600 3300 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 3300 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1800 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 600 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1800 1800 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr 45.000 slw % Ellipse n 11250 1500 825 825 0 360 DrawEllipse gs col0 s gr % Ellipse n 11250 3300 825 825 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 600 1500 m 600 3300 l gs col0 s gr % Polyline n 600 3300 m 1800 3600 l gs col0 s gr % Polyline n 1800 3600 m 1800 1800 l gs col0 s gr % Polyline n 1800 1800 m 3000 1500 l gs col0 s gr % Polyline n 3000 1500 m 3000 3300 l gs col0 s gr % Polyline n 3000 3300 m 1800 3600 l gs col0 s gr % Polyline n 1800 1800 m 600 1500 l gs col0 s gr % Polyline n 600 1500 m 3000 1500 l gs col0 s gr % Polyline [90] 0 sd n 600 3300 m 3000 3300 l gs col0 s gr [] 0 sd % Polyline n 10650 1050 m 11250 1200 l gs col0 s gr % Polyline n 11250 1200 m 11850 1050 l gs col0 s gr % Polyline n 11850 1050 m 10650 1050 l gs col0 s gr % Polyline n 10650 1050 m 10650 1950 l gs col0 s gr % Polyline n 10650 1950 m 11250 2100 l gs col0 s gr % Polyline n 11250 2100 m 11850 1950 l gs col0 s gr % Polyline n 11850 1950 m 11850 1050 l gs col0 s gr % Polyline n 11250 1200 m 11250 2100 l gs col0 s gr % Polyline [90] 0 sd n 10650 1950 m 11850 1950 l gs col0 s gr [] 0 sd % Polyline n 11250 1200 m 10650 1950 l gs col0 s gr % Polyline n 11250 2100 m 11850 1050 l gs col0 s gr % Polyline [90] 0 sd n 10650 1050 m 11850 1950 l gs col0 s gr [] 0 sd % Polyline 45.000 slw n 11775 900 m 10725 2100 l gs col0 s gr % Polyline 15.000 slw n 10650 2850 m 11250 3000 l gs col0 s gr % Polyline n 11250 3000 m 11850 2850 l gs col0 s gr % Polyline n 11850 2850 m 10650 2850 l gs col0 s gr % Polyline n 10650 2850 m 10650 3750 l gs col0 s gr % Polyline n 10650 3750 m 11250 3900 l gs col0 s gr % Polyline n 11250 3900 m 11850 3750 l gs col0 s gr % Polyline n 11850 3750 m 11850 2850 l gs col0 s gr % Polyline n 11250 3000 m 11250 3900 l gs col0 s gr % Polyline [90] 0 sd n 10650 3750 m 11850 3750 l gs col0 s gr [] 0 sd % Polyline n 10650 2850 m 11250 3900 l gs col0 s gr % Polyline n 11250 3000 m 11850 3750 l gs col0 s gr % Polyline [90] 0 sd n 10650 3750 m 11850 2850 l gs col0 s gr [] 0 sd % Polyline 45.000 slw n 11775 2700 m 10725 3900 l gs col0 s gr F2psBeginF2psEnd rs %%EndDocument @endspecial -450 3062 a Fn(Figure)51 b(3:)73 b Ff(There)51 b(are)g(tw)o(o)f(con\002gur)o(ations)h(the)g(S)f(gate)g(does)h(not)f (allo)n(w:)-450 3212 y(the)c(inputs)g(are)g(tr)r(ue)g(and)f(the)h (output)f(f)l(alse;)51 b(or)c(the)e(inputs)i(are)f(f)l(alse)g(and)-450 3361 y(the)37 b(output)f(tr)r(ue)n(.)-296 3915 y Fn(One)59 b(basic)g(component)f(of)h(our)f(circuits)g(is)h(a)g Fk(bit)p Fn(,)64 b(realized)59 b(as)h(four)-450 4097 y(coplanar)35 b(v)n(ertices)g(that)g(lie)g(on)g(a)h(common)g(sphere,)h (with)d(no)h(other)g(v)n(erte)n(x)-450 4279 y(of)c Fl(P)54 b Fn(inside)31 b(or)g(on)g(the)h(sphere.)45 b(Because)33 b(the)e(four)g(v)n(ertices)g(are)i(coplanar)-6 b(,)-450 4461 y(their)36 b(con)-6 b(v)n(e)n(x)36 b(hull)f(is)h(a)h (quadrilateral)e(\(which)h(is)g(not)g(necessarily)h(rectan-)-450 4642 y(gular\),)g(depicted)g(in)g(Figure)f(2.)48 b(The)38 b(interior)d(of)i(the)g(quadrilateral)f(lies)h(in)-450 4824 y(the)43 b(interior)d(of)j Fl(P)21 b Fn(.)64 b(Because)43 b(the)g(sphere)g(neither)f(touches)g(nor)g(encloses)-450 5006 y(an)n(y)d(other)f(v)n(erte)n(x,)h(in)f(an)n(y)h(CDT)g(of)g Fl(P)21 b Fn(,)40 b(the)f(quadrilateral)e(must)i(be)g(trian-)-450 5188 y(gulated)c(in)h(one)h(of)f(tw)o(o)f(w)o(ays,)h(which)g(we)h (interpret)e(as)i(\223true\224)f(or)h(\223f)o(alse.)-10 b(\224)-450 5370 y(The)38 b(edge)f(that)g(di)l(vides)f(a)i(bit)e(into)g (tw)o(o)g(triangles)g(is)h(called)g(a)h Fk(dia)o(gonal)p Fn(.)-296 5590 y(In)d(our)g(construction,)f(some)j(bits)d(represent)i (v)l(ariables,)g(some)g(bits)f(rep-)-450 5772 y(resent)43 b(the)g(v)l(alues)g(of)g(sube)n(xpressions,)g(and)g(most)g(bits)f(are)i (simply)e(used)-450 5954 y(to)c(propag)o(ate)g(a)i(signal)e(\(v)l (ariable)g(or)g(sube)n(xpression\))f(from)i(one)f(place)h(to)-450 6136 y(another)-8 b(.)-296 6357 y(Gates)45 b(are)h(simulated)e(by)h (modular)f(v)m(olumes)h(that)f(ha)m(v)n(e)h(bits)f(on)h(their)-450 6538 y(surf)o(aces)h(and)g(can)g(be)h(tetrahedralized)e(in)g(se)l(v)n (eral)h(dif)l(ferent)f(w)o(ays.)72 b(The)-450 6720 y(surf)o(ace)47 b(triangulations,)f(and)g(therefore)g(the)h(bits,)h(must)e(conform)g (to)g(the)-450 6902 y(g)o(ate)c(tetrahedralizations.)60 b(Circuits)40 b(are)j(b)m(uilt)d(by)i(gluing)e(g)o(ates)j(together)-450 7084 y(along)49 b(their)g(bits.)82 b(Unfortunately)-10 b(,)51 b(our)e(g)o(ates)h(are)h(weak,)i(because)e(their)-450 7266 y(outputs)40 b(are)h(not)g(\002x)n(ed)g(for)g(all)f(possible)h (inputs.)57 b(Sadly)-10 b(,)43 b(we)e(do)g(not)g(e)l(v)n(en)-450 7448 y(kno)l(w)34 b(ho)l(w)f(to)h(b)m(uild)e(a)j(proper)e(wire)h(that)g (propag)o(ates)f(both)g(true)h(and)g(f)o(alse)-450 7629 y(signals,)j(b)m(ut)f(we)i(will)e(not)g(need)i(one.)-296 7850 y(W)-12 b(e)50 b(b)m(uild)f(a)h(g)o(ate)h(called)f(an)g Fk(S)g(gate)p Fn(,)j(inspired)48 b(by)i(Sch)2757 7849 y(\250)2745 7850 y(onhardt')-8 b(s)49 b(un-)-450 8032 y(tetrahedralizable)e(polyhedron)e([4].)78 b(Place)48 b(six)g(v)n(ertices)f(on)g(a)i(common)-450 8214 y(sphere)35 b(so)f(that)g(their)g(con)-6 b(v)n(e)n(x)33 b(hull)h(is,)h (topologically)-10 b(,)32 b(a)j(triangular)e(prism.)-450 8396 y(\(None)k(of)f(its)h(f)o(aces)g(need)h(be)f(parallel,)g (though.\))44 b(Let)38 b Fl(S)45 b Fn(be)38 b(a)f(sphere,)h(and)-450 8577 y(let)30 b Fl(p)-193 8594 y Fd(1)-124 8577 y Fn(,)j Fl(p)23 8594 y Fd(2)92 8577 y Fn(,)g(and)d Fl(p)485 8594 y Fd(3)585 8577 y Fn(be)h(three)f(planes)h(such)g(that)f Fl(S)17 b Fj(\\)9 b Fl(p)2358 8594 y Fd(1)2428 8577 y Fn(,)32 b Fl(S)17 b Fj(\\)9 b Fl(p)2796 8594 y Fd(2)2866 8577 y Fn(,)32 b(and)f Fl(S)17 b Fj(\\)9 b Fl(p)3481 8594 y Fd(3)-450 8759 y Fn(are)37 b(pairwise)g(intersecting)e(circles,) i(and)g Fl(p)1841 8776 y Fd(1)1942 8759 y Fj(\\)c Fl(p)2154 8776 y Fd(2)2256 8759 y Fj(\\)g Fl(p)2468 8776 y Fd(3)2574 8759 y Fn(lies)j(outside)g Fl(S)45 b Fn(or)-450 8941 y(does)39 b(not)e(e)n(xist.)50 b(F)n(or)38 b(each)i(distinct)d Fl(i)h Fn(and)h Fl(j)9 b Fn(,)39 b Fl(S)k Fj(\\)36 b Fl(p)2342 8958 y Fh(i)2430 8941 y Fj(\\)f Fl(p)2644 8958 y Fh(j)2748 8941 y Fn(is)k(tw)o(o)e(points,)-450 9123 y(yielding)43 b(six)i(points)e(total.)69 b(An)45 b(S)g(g)o(ate)h(is)f (the)f(con)-6 b(v)n(e)n(x)45 b(hull)e(of)i(these)g(six)-450 9305 y(points,)36 b(as)i(illustrated)d(in)i(Figure)f(3.)-296 9525 y(An)30 b(S)g(g)o(ate)g(has)h(three)f(quadrilateral)f(f)o(aces,)j (each)f(of)f(which)f(is)h(a)h(bit,)g(and)-450 9707 y(tw)o(o)38 b(triangular)f(f)o(aces.)53 b(Ev)n(ery)39 b(S)g(g)o(ate)g(we)h(use)f (in)g(our)f(circuit)g(is)h(included)-450 9889 y(in)30 b(the)g(polyhedron)e Fl(P)21 b Fn(,)33 b(so)d(an)n(y)g (tetrahedralization)e(of)i Fl(P)52 b Fn(must)30 b(co)n(v)n(er)g(each) -450 10071 y(S)53 b(g)o(ate.)92 b(There)53 b(are)g(six)f(w)o(ays)g(to)g (tetrahedralize)f(an)i(S)f(g)o(ate,)57 b(and)c(if)e(no)-450 10253 y(v)n(erte)n(x)36 b(lies)g(inside)f Fl(S)8 b Fn(,)38 b(all)e(these)h(tetrahedralizations)d(use)j(only)e(Delaunay)-450 10435 y(tetrahedra.)49 b(There)39 b(are)g(tw)o(o)f(con\002gurations)e (of)i(the)g(three)g(bits)g(for)g(which)-450 10616 y(there)44 b(is)g(no)g(corresponding)e(tetrahedralization.)66 b(If)44 b(we)g(arbitrarily)e(treat)-450 10798 y(tw)o(o)h(of)i(the)f(bits)g(as)h (inputs)e(and)i(one)f(as)i(an)e(output,)h(the)g(S)g(g)o(ate)g(enforces) -450 10980 y(the)37 b(follo)l(wing)e(truth)g(table.)3970 895 y @beginspecial 0 @llx 0 @lly 710 @urx 182 @ury 2376 @rwi @setspecial %%BeginDocument: gate2.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: gate2.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Mon Aug 26 06:29:21 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 710 182 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 182 moveto 0 0 lineto 710 0 lineto 710 182 lineto closepath clip newpath -17.0 235.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 15.000 slw [90] 0 sd n 6000 2925 m 7200 2925 l gs col0 s gr [] 0 sd % Polyline n 6000 2025 m 6000 2925 l gs col0 s gr % Polyline n 6000 2025 m 6600 3075 l gs col0 s gr % Polyline n 6000 2025 m 7200 2925 l gs col0 s gr % Polyline n 6000 2925 m 6600 3075 l gs col0 s gr % Polyline n 6600 3075 m 7200 2925 l gs col0 s gr % Polyline [90] 0 sd n 8325 2925 m 9525 2925 l gs col0 s gr [] 0 sd % Polyline n 9525 2025 m 8325 2925 l gs col0 s gr % Polyline n 9525 2025 m 8925 3075 l gs col0 s gr % Polyline n 9525 2925 m 9525 2025 l gs col0 s gr % Polyline n 8325 2925 m 8925 3075 l gs col0 s gr % Polyline n 8925 3075 m 9525 2925 l gs col0 s gr % Polyline 0.000 slw n 6225 2100 m 6825 3150 l 7425 3000 l 7425 2100 l cp gs col7 1.00 shd ef gr % Polyline n 8100 2100 m 8100 3000 l 8700 3150 l 9300 2100 l cp gs col7 1.00 shd ef gr % Polyline 15.000 slw n 4200 1950 m 4800 2100 l gs col0 s gr % Polyline n 4200 1950 m 5400 2850 l gs col0 s gr % Polyline n 4800 2100 m 5400 2850 l gs col0 s gr % Polyline n 4800 2100 m 5400 1950 l gs col0 s gr % Polyline n 5400 1950 m 4200 1950 l gs col0 s gr % Polyline n 5400 2850 m 5400 1950 l gs col0 s gr % Polyline n 3900 1950 m 3900 2850 l gs col0 s gr % Polyline n 3900 1950 m 4500 3000 l gs col0 s gr % Polyline n 3900 1950 m 5100 2850 l gs col0 s gr % Polyline n 3900 2850 m 4500 3000 l gs col0 s gr % Polyline n 4500 3000 m 5100 2850 l gs col0 s gr % Polyline [90] 0 sd n 3900 2850 m 5100 2850 l gs col0 s gr [] 0 sd % Polyline n 7425 2100 m 6225 2100 l gs col0 s gr % Polyline n 6225 2100 m 6825 3150 l gs col0 s gr % Polyline n 7425 2100 m 6825 3150 l gs col0 s gr % Polyline n 6825 3150 m 7425 3000 l gs col0 s gr % Polyline n 7425 3000 m 7425 2100 l gs col0 s gr % Polyline [90] 0 sd n 6225 2100 m 7425 3000 l gs col0 s gr [] 0 sd % Polyline n 8100 2100 m 8700 3150 l gs col0 s gr % Polyline n 8100 2100 m 8100 3000 l gs col0 s gr % Polyline n 9300 2100 m 8100 2100 l gs col0 s gr % Polyline n 9300 2100 m 8700 3150 l gs col0 s gr % Polyline n 8100 3000 m 8700 3150 l gs col0 s gr % Polyline [90] 0 sd n 9300 2100 m 8100 3000 l gs col0 s gr [] 0 sd % Polyline 0.000 slw n 4050 2025 m 4650 3075 l 5250 2925 l 4650 2175 l cp gs col7 1.00 shd ef gr % Polyline n 6225 1875 m 6825 2925 l 7425 1875 l cp gs col7 1.00 shd ef gr % Polyline n 8100 1875 m 8700 2925 l 9300 1875 l cp gs col7 1.00 shd ef gr 45.000 slw % Ellipse n 11250 2400 825 825 0 360 DrawEllipse gs col0 s gr % Polyline 15.000 slw n 10650 1950 m 11250 2100 l gs col0 s gr % Polyline n 11250 2100 m 11850 1950 l gs col0 s gr % Polyline n 11850 1950 m 10650 1950 l gs col0 s gr % Polyline n 10650 1950 m 10650 2850 l gs col0 s gr % Polyline n 10650 2850 m 11250 3000 l gs col0 s gr % Polyline n 11250 3000 m 11850 2850 l gs col0 s gr % Polyline n 11850 2850 m 11850 1950 l gs col0 s gr % Polyline n 11250 2100 m 11250 3000 l gs col0 s gr % Polyline [90] 0 sd n 10650 2850 m 11850 2850 l gs col0 s gr [] 0 sd % Polyline n 10650 1950 m 11250 3000 l gs col0 s gr % Polyline n 11250 2100 m 11850 2850 l gs col0 s gr % Polyline [90] 0 sd n 10650 2850 m 11850 1950 l gs col0 s gr [] 0 sd % Polyline 45.000 slw n 11775 1800 m 10725 3000 l gs col0 s gr % Polyline 15.000 slw n 4050 2025 m 4650 2175 l gs col0 s gr % Polyline n 4650 2175 m 4650 3075 l gs col0 s gr % Polyline n 4050 2025 m 4650 3075 l gs col0 s gr % Polyline n 4650 2175 m 5250 2925 l gs col0 s gr % Polyline [90] 0 sd n 4050 2025 m 5250 2925 l gs col0 s gr [] 0 sd % Polyline n 4650 3075 m 5250 2925 l gs col0 s gr % Polyline n 6225 1875 m 6825 2025 l gs col0 s gr % Polyline n 6825 2025 m 7425 1875 l gs col0 s gr % Polyline n 7425 1875 m 6225 1875 l gs col0 s gr % Polyline n 6825 2025 m 6825 2925 l gs col0 s gr % Polyline n 7425 1875 m 6825 2925 l gs col0 s gr % Polyline n 6225 1875 m 6825 2925 l gs col0 s gr % Polyline n 8100 1875 m 8700 2025 l gs col0 s gr % Polyline n 8700 2025 m 9300 1875 l gs col0 s gr % Polyline n 9300 1875 m 8100 1875 l gs col0 s gr % Polyline n 8700 2025 m 8700 2925 l gs col0 s gr % Polyline n 9300 1875 m 8700 2925 l gs col0 s gr % Polyline n 8100 1875 m 8700 2925 l gs col0 s gr 7.500 slw [60] 0 sd % Ellipse n 1800 2400 1500 1500 0 360 DrawEllipse gs col0 s gr [] 0 sd % Ellipse n 600 3300 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 3300 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1800 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1800 1800 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 900 1200 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Polyline 15.000 slw n 900 1200 m 600 3300 l gs col0 s gr % Polyline n 600 3300 m 1800 3600 l gs col0 s gr % Polyline n 1800 3600 m 1800 1800 l gs col0 s gr % Polyline n 1800 1800 m 3000 1500 l gs col0 s gr % Polyline n 3000 1500 m 3000 3300 l gs col0 s gr % Polyline n 3000 3300 m 1800 3600 l gs col0 s gr % Polyline n 1800 1800 m 900 1200 l gs col0 s gr % Polyline n 900 1200 m 3000 1500 l gs col0 s gr % Polyline [90] 0 sd n 600 3300 m 3000 3300 l gs col0 s gr [] 0 sd % Polyline n 900 1200 m 1800 3600 l gs col0 s gr F2psBeginF2psEnd rs %%EndDocument @endspecial 3949 1211 a(Figure)40 b(4:)53 b Ff(A)40 b(W)h(gate)f(does)h(not)f(allo)n(w)h(the)f(output)g(to)g(be)g(f)l(alse) h(if)g(the)f(input)3949 1360 y(is)c(tr)r(ue)n(.)44 b(Alter)s(nativ)m (ely)-13 b(,)36 b(b)m(y)f(\003ipping)h(the)e(\002x)l(ed)h(diagonal,)g (w)o(e)f(ha)m(v)m(e)g(a)h(W)g(gate)3949 1509 y(that)i(propagates)f(f)l (alse)i(signals)g(\(b)m(ut)f(not)g(necessar)r(ily)i(tr)r(ue)e (signals\).)5350 2947 y @beginspecial 0 @llx 0 @lly 182 @urx 182 @ury 720 @rwi @setspecial %%BeginDocument: anchor.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: anchor.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Mon Aug 26 10🔞56 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 182 182 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 182 moveto 0 0 lineto 182 0 lineto 182 182 lineto closepath clip newpath -359.0 271.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline n 6300 2100 m 6300 3900 l 7500 4200 l 7200 2625 l cp gs col7 0.80 shd ef gr 7.500 slw [60] 0 sd % Ellipse n 7500 3000 1500 1500 0 360 DrawEllipse gs col0 s gr [] 0 sd % Ellipse n 6300 3900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 8700 3900 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 7500 4200 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 6300 2100 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 8700 2100 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 7500 2400 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 7200 2625 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Polyline 15.000 slw n 6300 2100 m 6300 3900 l gs col0 s gr % Polyline n 6300 3900 m 7500 4200 l gs col0 s gr % Polyline n 7500 4200 m 7500 2400 l gs col0 s gr % Polyline n 7500 2400 m 8700 2100 l gs col0 s gr % Polyline n 8700 2100 m 8700 3900 l gs col0 s gr % Polyline n 8700 3900 m 7500 4200 l gs col0 s gr % Polyline n 7500 2400 m 6300 2100 l gs col0 s gr % Polyline n 6300 2100 m 8700 2100 l gs col0 s gr % Polyline [90] 0 sd n 6300 3900 m 8700 3900 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 6300 2100 m 7500 4200 l gs col0 s gr [] 0 sd % Polyline n 7500 4200 m 7200 2625 l gs col0 s gr % Polyline n 7200 2625 m 6300 2100 l gs col0 s gr % Polyline n 7200 2625 m 6300 3900 l gs col0 s gr F2psBeginF2psEnd rs %%EndDocument @endspecial 3949 3262 a Fn(Figure)76 b(5:)123 b Ff(An)75 b(alter)s(nativ)m(e)h(W)g(gate)f(f)l(or)s(med)g(b)m(y)g(pasting)h(an)f (anchor)3949 3411 y(\(shaded\))53 b(onto)g(an)f(S)h(gate)n(.)93 b(The)53 b(anchor)g(f)l(orces)h(one)e(of)h(the)f(quadr)r(ilat-)3949 3561 y(er)o(al)57 b(f)l(aces)h(to)e(be)h(tr)r(iangulated)g(along)g(a)f (\002x)l(ed)i(diagonal.)106 b(The)56 b(ape)l(x)h(of)3949 3710 y(the)44 b(anchor)-7 b(,)47 b(lik)m(e)e(the)f(other)g(v)m(er)5 b(tices)n(,)48 b(lies)d(on)f(the)g(circumsphere)h Fe(S)7 b Ff(.)68 b(The)3949 3860 y(ape)l(x)37 b(cannot)f(see)h(an)n(y)g(v)m (er)5 b(te)l(x)38 b(of)e(the)g(gate)h(other)f(than)g(the)h(v)m(er)5 b(tices)38 b(of)e(the)3949 4009 y(anchor)-7 b(.)5765 4446 y Fn(S)38 b(g)o(ate)p 5016 4507 1868 7 v 5115 4634 a(Input)e(1)199 b(Input)36 b(2)p 6266 4689 7 182 v 199 w(Output)p 5016 4696 1868 7 v 5189 4823 a(f)o(alse)346 b(f)o(alse)p 6266 4877 7 182 v 339 w(f)o(alse)5189 5005 y(f)o(alse)370 b(true)p 6266 5059 V 470 w(?)5213 5186 y(true)g(f)o(alse)p 6266 5241 V 446 w(?)5213 5368 y(true)394 b(true)p 6266 5423 V 387 w(true)4103 5691 y(A)48 b(second)g(g)o(ate,)j (called)d(a)h Fk(W)f(gate)g Fn(\(for)f Fk(wir)-6 b(e)p Fn(\),)51 b(is)d(lik)o(e)f(an)h(S)g(g)o(ate)g(e)n(x-)3949 5873 y(cept)e(that)e(one)h(input)f(is)h(\002x)n(ed.)70 b(A)45 b(W)h(g)o(ate)f(has)h(only)e(tw)o(o)g(bits;)k(the)d(third)3949 6054 y(quadrilateral)39 b(f)o(ace)i(is)f(replaced)g(by)g(tw)o(o)f (triangular)g(f)o(aces)i(that)e(meet)i(at)g(a)3949 6236 y(diagonal)g(re\003e)n(x)g(edge,)i(as)g(illustrated)c(in)i(Figure)g(4.) 59 b(These)43 b(tw)o(o)d(triangu-)3949 6418 y(lar)f(f)o(aces)h(lie)f (in)g(the)g(boundary)f(of)h(the)g(polyhedron)e Fl(P)21 b Fn(,)41 b(so)e(the)n(y)f(are)i(\002x)n(ed)3949 6600 y(parts)d(of)g(an)n(y)g(tetrahedralization)e(of)i Fl(P)21 b Fn(.)4103 6786 y(Let)29 b Fl(S)37 b Fn(be)30 b(a)f(sphere,)i(and)e (let)f Fl(p)5686 6803 y Fd(1)5785 6786 y Fn(and)h Fl(p)6107 6803 y Fd(2)6205 6786 y Fn(be)g(tw)o(o)f(planes)h(such)g(that)f Fl(S)11 b Fj(\\)s Fl(p)7881 6803 y Fd(1)3949 6968 y Fn(and)47 b Fl(S)j Fj(\\)42 b Fl(p)4577 6985 y Fd(2)4693 6968 y Fn(are)48 b(intersecting)d(circles.)76 b(A)47 b(W)g(g)o(ate)g(has)h (six)e(v)n(ertices,)k(of)3949 7149 y(which)38 b(tw)o(o)f(are)h Fl(S)44 b Fj(\\)35 b Fl(p)5186 7166 y Fd(1)5290 7149 y Fj(\\)g Fl(p)5504 7166 y Fd(2)5574 7149 y Fn(,)j(tw)o(o)f(more)i(lie) f(on)f Fl(S)43 b Fj(\\)36 b Fl(p)6983 7166 y Fd(1)7052 7149 y Fn(,)j(and)f(tw)o(o)f(more)3949 7331 y(lie)i(on)g Fl(S)44 b Fj(\\)37 b Fl(p)4681 7348 y Fd(2)4750 7331 y Fn(.)53 b(W)-12 b(e)40 b(ha)m(v)n(e)g(some)g(\003e)n(xibility)d(in)i (choosing)f(the)h(latter)g(four)-6 b(,)3949 7513 y(and)35 b(we)g(select)f(them)h(so)f(that)g(the)n(y)g(are)h(not)f(coplanar)g (and)g(the)g(W)h(g)o(ate)g(has)3949 7695 y(one)i(re\003e)n(x)h(edge.) 4103 7881 y(If)f(the)h(non-coplanarity)d(of)i(these)h(four)e(v)n (ertices)i(mak)o(es)g(circuit)e(layout)3949 8063 y(incon)-6 b(v)n(enient,)61 b(we)c(can)h(instead)e(construct)h(a)g(W)g(g)o(ate)h (by)f(attaching)f(to)3949 8244 y(an)49 b(S)g(g)o(ate)g(an)g Fk(anc)n(hor)p Fn(:)68 b(a)50 b(tetrahedron)d(whose)i(ape)n(x)g(v)n (erte)n(x)f(lies)g(on)g(the)3949 8426 y(circumsphere)29 b Fl(S)37 b Fn(and)28 b(is)h(placed)g(so)f(that)g(it)g(cannot)g(see)h (an)n(y)g(v)n(erte)n(x)e(outside)3949 8608 y(the)37 b(anchor)-6 b(,)38 b(as)f(Figure)g(5)g(illustrates.)4103 8794 y(There)k(are)f(tw)o (o)f(types)h(of)g(W)g(g)o(ates,)i(determined)d(by)h(the)g(choice)g(of)g (re-)3949 8976 y(\003e)n(x)30 b(edge.)45 b(One)30 b(type)f(of)h(W)g(g)o (ate)h(al)o(w)o(ays)e(has)h(a)h(true)e(output)g(if)g(the)h(input)e(is) 3949 9158 y(true.)48 b(Ho)l(we)l(v)n(er)-6 b(,)38 b(if)f(the)h(input)e (is)i(f)o(alse,)g(the)f(output)f(may)i(be)g(either)f(true)h(or)3949 9339 y(f)o(alse.)63 b(The)44 b(complementary)f(type)f(of)g(W)h(g)o(ate) h(propag)o(ates)e(f)o(alse)h(signals)3949 9521 y(from)52 b(input)e(to)h(output,)j(b)m(ut)d(may)i(or)e(may)i(not)e(propag)o(ate)g (true)h(signals.)3949 9703 y(By)d(chaining)f(W)h(g)o(ates)h(together)-6 b(,)51 b(we)f(b)m(uild)d(wires)i(that)g(propag)o(ate)g(true)3949 9885 y(signals)37 b(\(or)f(f)o(alse)h(signals,)g(b)m(ut)g(not)f(both\)) g(from)h(one)g(place)g(to)g(another)-8 b(.)4103 10071 y(W)57 b(g)o(ates)g(are)g(quite)e(\003e)n(xible)h(in)g(shape,)62 b(so)56 b(chains)h(of)f(W)h(g)o(ates)g(can)3949 10253 y(easily)37 b(run)e(signals)h(along)g(circuitous)f(paths)h(through)f (three-dimensional)3949 10435 y(space.)106 b(This)56 b(\003e)n(xibility)e(mak)o(es)j(it)e(easy)j(to)e(simulate)g(a)h Fc(half-not)e Fn(g)o(ate)3949 10616 y(\(which)44 b(maps)h(a)f(true)g (to)g(a)h(f)o(alse)f(and)g(a)h(f)o(alse)f(to)g(a)g(\223don')m(t)g (care,)-10 b(\224)47 b(or)d(vice)3949 10798 y(v)n(ersa\))54 b(by)f(rotating)f(the)h(diagonals)g(as)h(needed.)96 b(Figure)53 b(6)g(depicts)g(one)3949 10980 y(w)o(ay)37 b(to)g(f)o(ashion)f(a)h Fc(half-not)f Fn(g)o(ate)i(from)e(three)i(W)f(g)o(ates.)p eop %%Page: 3 3 3 2 bop 290 1099 a @beginspecial 0 @llx 0 @lly 471 @urx 184 @ury 1872 @rwi @setspecial %%BeginDocument: not.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: not.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Mon Aug 26 11:38:49 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 471 184 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 184 moveto 0 0 lineto 471 0 lineto 471 184 lineto closepath clip newpath -107.0 272.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 7.500 slw n 4350 1950 m 4500 2100 l 4650 1950 l 4725 2025 l 4725 1725 l 4425 1725 l 4500 1800 l cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline 15.000 slw n 2100 3150 m 3600 2850 l gs col0 s gr % Polyline 0.000 slw n 3600 1950 m 3000 3150 l 3900 3150 l 4500 2850 l 4500 1950 l cp gs col7 1.00 shd ef gr % Polyline 15.000 slw n 6900 4500 m 6900 3600 l gs col0 s gr % Polyline n 6900 3600 m 7500 3300 l gs col0 s gr % Polyline n 7500 3300 m 7500 4200 l gs col0 s gr % Polyline n 7500 4200 m 6900 4500 l gs col0 s gr % Polyline n 6900 4500 m 6000 4500 l gs col0 s gr % Polyline n 6000 4500 m 6000 3600 l gs col0 s gr % Polyline n 6000 3600 m 6900 3600 l gs col0 s gr % Polyline n 6000 3600 m 7500 3300 l gs col0 s gr % Polyline [90] 0 sd n 6000 4500 m 7500 4200 l gs col0 s gr [] 0 sd % Polyline 7.500 slw [60] 0 sd n 6000 4500 m 7500 3300 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 8100 4500 m 8100 3600 l gs col0 s gr % Polyline n 8100 3600 m 8700 3300 l gs col0 s gr % Polyline n 8700 4200 m 8100 4500 l gs col0 s gr % Polyline n 8100 3600 m 9000 3600 l gs col0 s gr % Polyline n 9000 3600 m 9600 3300 l gs col0 s gr % Polyline n 9600 3300 m 8700 3300 l gs col0 s gr % Polyline n 8100 4500 m 9000 3600 l gs col0 s gr % Polyline n 8700 4200 m 9600 3300 l gs col0 s gr % Polyline [90] 0 sd n 8700 3300 m 8700 4200 l gs col0 s gr [] 0 sd % Polyline 7.500 slw n 9000 3600 m 8700 4200 l gs col0 s gr % Polyline 15.000 slw n 8100 2700 m 9000 2700 l gs col0 s gr % Polyline n 9000 2700 m 9600 2400 l gs col0 s gr % Polyline n 9600 2400 m 9600 1500 l gs col0 s gr % Polyline n 9600 1500 m 8700 1500 l gs col0 s gr % Polyline n 8700 1500 m 8100 2700 l gs col0 s gr % Polyline n 9000 2700 m 9600 1500 l gs col0 s gr % Polyline [90] 0 sd n 8700 1500 m 8700 2400 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 8100 2700 m 8700 2400 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9600 2400 m 8700 2400 l gs col0 s gr [] 0 sd % Polyline 7.500 slw n 8100 2700 m 9600 1500 l gs col0 s gr % Polyline n 8775 3150 m 8925 3150 l 8925 3000 l 9000 3000 l 8850 2850 l 8700 3000 l 8775 3000 l cp gs col7 0.00 shd ef gr gs col0 s gr % Polyline n 7650 3825 m 7650 3975 l 7800 3975 l 7800 4050 l 7950 3900 l 7800 3750 l 7800 3825 l cp gs col7 0.00 shd ef gr gs col0 s gr % Polyline 15.000 slw n 3600 3750 m 3000 4050 l gs col0 s gr % Polyline n 3000 4050 m 2100 4050 l gs col0 s gr % Polyline n 2100 4050 m 2100 3150 l gs col0 s gr % Polyline n 2100 3150 m 3000 3150 l gs col0 s gr % Polyline [90] 0 sd n 2100 4050 m 3600 3750 l gs col0 s gr [] 0 sd % Polyline n 3000 3150 m 3900 3150 l gs col0 s gr % Polyline n 3900 3150 m 4500 2850 l gs col0 s gr % Polyline n 3000 4050 m 3900 3150 l gs col0 s gr % Polyline n 3600 3750 m 4500 2850 l gs col0 s gr % Polyline n 4500 2850 m 4500 1950 l gs col0 s gr % Polyline n 4500 1950 m 3600 1950 l gs col0 s gr % Polyline n 3600 1950 m 3000 3150 l gs col0 s gr % Polyline n 3900 3150 m 4500 1950 l gs col0 s gr % Polyline [90] 0 sd n 3600 2850 m 3600 3750 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 2100 3150 m 3600 2850 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 3600 1950 m 3600 2850 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 3000 3150 m 3600 2850 l gs col0 s gr [] 0 sd % Polyline 7.500 slw n 3000 3150 m 4500 1950 l gs col0 s gr % Polyline n 3900 3150 m 3600 3750 l gs col0 s gr % Polyline [60] 0 sd n 2100 4050 m 3600 2850 l gs col0 s gr [] 0 sd % Polyline 15.000 slw n 3000 3150 m 3000 4050 l gs col0 s gr % Polyline [90] 0 sd n 3600 2850 m 4500 2850 l gs col0 s gr [] 0 sd % Polyline 7.500 slw n 1800 3825 m 1950 3975 l 2100 3825 l 2175 3900 l 2175 3600 l 1875 3600 l 1950 3675 l cp gs col7 1.00 shd ef gr gs col0 s gr F2psBeginF2psEnd rs %%EndDocument @endspecial -150 1414 a Fn(Figure)37 b(6:)45 b Ff(A)37 b Fb(half-not)h Ff(gate)e(\(left\))i(f)l(ashioned)f(from)f(three)h(W)g (gates)g(\(r)r(ight\).)-130 2781 y @beginspecial 0 @llx 0 @lly 746 @urx 215 @ury 2376 @rwi @setspecial %%BeginDocument: gate3.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: gate3.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Mon Aug 26 07:44:11 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 746 215 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 215 moveto 0 0 lineto 746 0 lineto 746 215 lineto closepath clip newpath -17.0 254.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Polyline 15.000 slw [90] 0 sd n 8175 1725 m 7425 1575 l gs col0 s gr [] 0 sd % Polyline n 7425 1575 m 7725 1875 l gs col0 s gr % Polyline n 7725 1875 m 8175 1725 l gs col0 s gr % Polyline n 8175 825 m 7425 1575 l gs col0 s gr % Polyline n 8175 825 m 7725 1875 l gs col0 s gr % Polyline n 8175 1725 m 8175 825 l gs col0 s gr % Polyline 0.000 slw n 7200 675 m 7200 1575 l 7500 1875 l 7950 825 l cp gs col7 1.00 shd ef gr % Polyline 15.000 slw n 4800 1575 m 4800 675 l gs col0 s gr % Polyline n 5100 1875 m 4800 675 l gs col0 s gr % Polyline n 5550 1725 m 4800 675 l gs col0 s gr % Polyline n 5100 1875 m 5550 1725 l gs col0 s gr % Polyline n 4800 1575 m 5100 1875 l gs col0 s gr % Polyline [90] 0 sd n 5550 1725 m 4800 1575 l gs col0 s gr [] 0 sd % Polyline n 7200 1575 m 7200 675 l gs col0 s gr % Polyline n 7500 1875 m 7200 675 l gs col0 s gr % Polyline n 7950 825 m 7200 675 l gs col0 s gr % Polyline n 7950 825 m 7500 1875 l gs col0 s gr % Polyline n 7200 1575 m 7500 1875 l gs col0 s gr % Polyline [90] 0 sd n 7950 825 m 7200 1575 l gs col0 s gr [] 0 sd % Polyline n 4275 3600 m 4725 2550 l gs col0 s gr % Polyline n 4725 2550 m 5475 3600 l gs col0 s gr % Polyline n 4350 3600 m 5475 3600 l gs col0 s gr % Polyline [90] 0 sd n 4725 3450 m 4725 2550 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 4725 3450 m 4275 3600 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 5475 3600 m 4725 3450 l gs col0 s gr [] 0 sd % Polyline n 12675 825 m 11925 1575 l gs col0 s gr % Polyline n 12675 825 m 12225 1875 l gs col0 s gr % Polyline n 12675 1725 m 12675 825 l gs col0 s gr % Polyline n 11925 1575 m 12225 1875 l gs col0 s gr % Polyline n 12225 1875 m 12675 1725 l gs col0 s gr % Polyline [90] 0 sd n 12675 1725 m 11925 1575 l gs col0 s gr [] 0 sd % Polyline 0.000 slw n 4650 675 m 4200 1725 l 4950 1875 l cp gs col7 1.00 shd ef gr % Polyline n 7050 675 m 6600 1725 l 7350 1875 l cp gs col7 1.00 shd ef gr % Polyline n 4800 2775 m 4350 3825 l 5100 3975 l 5550 3825 l cp gs col7 1.00 shd ef gr % Polyline n 11700 675 m 11700 1575 l 12000 1875 l 12450 825 l cp gs col7 1.00 shd ef gr % Polyline 15.000 slw n 4650 675 m 4200 1725 l gs col0 s gr % Polyline n 4950 1875 m 4650 675 l gs col0 s gr % Polyline n 4200 1725 m 4950 1875 l gs col0 s gr % Polyline [90] 0 sd n 4650 1575 m 4650 675 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 4650 1575 m 4200 1725 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 4650 1575 m 4950 1875 l gs col0 s gr [] 0 sd % Polyline n 7050 675 m 6600 1725 l gs col0 s gr % Polyline n 7350 1875 m 7050 675 l gs col0 s gr % Polyline n 6600 1725 m 7350 1875 l gs col0 s gr % Polyline [90] 0 sd n 7050 1575 m 7050 675 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 7050 1575 m 6600 1725 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 7050 1575 m 7350 1875 l gs col0 s gr [] 0 sd % Polyline n 9450 1575 m 9450 675 l gs col0 s gr % Polyline n 9750 1875 m 9450 675 l gs col0 s gr % Polyline n 9450 675 m 10200 1725 l gs col0 s gr % Polyline n 9750 1875 m 10200 1725 l gs col0 s gr % Polyline n 9450 1575 m 9750 1875 l gs col0 s gr % Polyline [90] 0 sd n 10200 1725 m 9450 1575 l gs col0 s gr [] 0 sd % Polyline n 5100 3975 m 4800 2775 l gs col0 s gr % Polyline n 4350 3825 m 4800 2775 l gs col0 s gr % Polyline n 4800 2775 m 5550 3825 l gs col0 s gr % Polyline n 4350 3825 m 5100 3975 l gs col0 s gr % Polyline n 5100 3975 m 5550 3825 l gs col0 s gr % Polyline [90] 0 sd n 4425 3825 m 5550 3825 l gs col0 s gr [] 0 sd % Polyline n 11700 1575 m 11700 675 l gs col0 s gr % Polyline n 12000 1875 m 11700 675 l gs col0 s gr % Polyline n 12450 825 m 11700 675 l gs col0 s gr % Polyline n 12450 825 m 12000 1875 l gs col0 s gr % Polyline n 11700 1575 m 12000 1875 l gs col0 s gr % Polyline [90] 0 sd n 12450 825 m 11700 1575 l gs col0 s gr [] 0 sd % Polyline 0.000 slw n 5025 675 m 5325 1875 l 5775 1725 l 5775 825 l cp gs col7 1.00 shd ef gr % Polyline n 4350 675 m 3900 825 l 3900 1725 l 4650 1875 l cp gs col7 1.00 shd ef gr % Polyline n 6750 675 m 6300 825 l 6300 1725 l 7050 1875 l cp gs col7 1.00 shd ef gr % Polyline n 9300 675 m 8850 825 l 9300 1575 l 9600 1875 l cp gs col7 1.00 shd ef gr % Polyline n 9675 750 m 9975 1875 l 10425 1725 l 10425 825 l cp gs col7 1.00 shd ef gr % Polyline n 4350 2775 m 3900 2925 l 3900 3825 l 4650 3975 l cp gs col7 1.00 shd ef gr % Polyline n 5250 2775 m 5550 3975 l 6000 3825 l 6000 2925 l cp gs col7 1.00 shd ef gr % Polyline n 11550 675 m 11100 825 l 11550 1575 l 11850 1875 l cp gs col7 1.00 shd ef gr 7.500 slw [60] 0 sd % Ellipse n 1800 2400 1500 1500 0 360 DrawEllipse gs col0 s gr [] 0 sd % Ellipse n 600 3300 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 3300 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 600 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 3000 1500 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 2100 3600 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1500 1200 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Ellipse n 1500 3000 75 75 0 360 DrawEllipse gs col7 0.00 shd ef gr gs col0 s gr % Polyline 15.000 slw n 600 1500 m 600 3300 l gs col0 s gr % Polyline n 600 3300 m 2100 3600 l gs col0 s gr % Polyline n 2100 3600 m 1500 1200 l gs col0 s gr % Polyline n 1500 1200 m 3000 1500 l gs col0 s gr % Polyline n 3000 1500 m 3000 3300 l gs col0 s gr % Polyline n 3000 3300 m 2100 3600 l gs col0 s gr % Polyline n 1500 1200 m 600 1500 l gs col0 s gr % Polyline [90] 0 sd n 600 3300 m 1500 3000 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 1500 3000 m 3000 3300 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 1500 3000 m 1500 1200 l gs col0 s gr [] 0 sd % Polyline n 600 1500 m 2100 3600 l gs col0 s gr % Polyline n 2100 3600 m 3000 1500 l gs col0 s gr % Polyline n 5325 1875 m 5775 1725 l gs col0 s gr % Polyline n 5775 1725 m 5775 825 l gs col0 s gr % Polyline n 5775 825 m 5025 675 l gs col0 s gr % Polyline n 5325 1875 m 5025 675 l gs col0 s gr % Polyline n 5775 825 m 5325 1875 l gs col0 s gr % Polyline [90] 0 sd n 5775 1725 m 5025 675 l gs col0 s gr [] 0 sd % Polyline n 3900 825 m 3900 1725 l gs col0 s gr % Polyline n 3900 1725 m 4650 1875 l gs col0 s gr % Polyline n 4350 675 m 3900 825 l gs col0 s gr % Polyline n 3900 825 m 4650 1875 l gs col0 s gr % Polyline n 4650 1875 m 4350 675 l gs col0 s gr % Polyline [90] 0 sd n 4350 675 m 3900 1725 l gs col0 s gr [] 0 sd % Polyline n 6300 825 m 6300 1725 l gs col0 s gr % Polyline n 6300 1725 m 7050 1875 l gs col0 s gr % Polyline n 6750 675 m 6300 825 l gs col0 s gr % Polyline n 6300 825 m 7050 1875 l gs col0 s gr % Polyline n 7050 1875 m 6750 675 l gs col0 s gr % Polyline [90] 0 sd n 6750 675 m 6300 1725 l gs col0 s gr [] 0 sd % Polyline n 9300 1575 m 9600 1875 l gs col0 s gr % Polyline n 9300 675 m 8850 825 l gs col0 s gr % Polyline n 9600 1875 m 9300 675 l gs col0 s gr % Polyline n 8850 825 m 9300 1575 l gs col0 s gr % Polyline [90] 0 sd n 9300 1575 m 9300 675 l gs col0 s gr [] 0 sd % Polyline n 8850 825 m 9600 1875 l gs col0 s gr % Polyline n 8700 825 m 8700 1725 l gs col0 s gr % Polyline n 8700 1725 m 9450 1875 l gs col0 s gr % Polyline n 8700 825 m 9450 1875 l gs col0 s gr % Polyline [90] 0 sd n 8700 825 m 9150 1575 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9150 1575 m 8700 1725 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9150 1575 m 9450 1875 l gs col0 s gr [] 0 sd % Polyline n 9975 1875 m 10425 1725 l gs col0 s gr % Polyline n 10425 1725 m 10425 825 l gs col0 s gr % Polyline n 10425 825 m 9675 675 l gs col0 s gr % Polyline n 9975 1875 m 9675 675 l gs col0 s gr % Polyline n 10425 825 m 9975 1875 l gs col0 s gr % Polyline [90] 0 sd n 9675 675 m 10425 1725 l gs col0 s gr [] 0 sd % Polyline n 3900 2925 m 3900 3825 l gs col0 s gr % Polyline n 3900 3825 m 4650 3975 l gs col0 s gr % Polyline n 4350 2775 m 3900 2925 l gs col0 s gr % Polyline n 3900 2925 m 4650 3975 l gs col0 s gr % Polyline n 4650 3975 m 4350 2775 l gs col0 s gr % Polyline [90] 0 sd n 3900 3825 m 4350 2775 l gs col0 s gr [] 0 sd % Polyline n 5550 3975 m 6000 3825 l gs col0 s gr % Polyline n 6000 3825 m 6000 2925 l gs col0 s gr % Polyline n 6000 2925 m 5250 2775 l gs col0 s gr % Polyline n 5550 3975 m 5250 2775 l gs col0 s gr % Polyline n 6000 2925 m 5550 3975 l gs col0 s gr % Polyline [90] 0 sd n 5250 2775 m 6000 3825 l gs col0 s gr [] 0 sd % Polyline n 9000 2925 m 9000 3825 l gs col0 s gr % Polyline n 9000 3825 m 9750 3975 l gs col0 s gr % Polyline n 9750 3975 m 10200 3825 l gs col0 s gr % Polyline n 10200 3825 m 10200 2925 l gs col0 s gr % Polyline n 10200 2925 m 9450 2775 l gs col0 s gr % Polyline n 9450 2775 m 9000 2925 l gs col0 s gr % Polyline n 9000 2925 m 9750 3975 l gs col0 s gr % Polyline n 9750 3975 m 9450 2775 l gs col0 s gr % Polyline n 10200 2925 m 9750 3975 l gs col0 s gr % Polyline [90] 0 sd n 9450 3675 m 9000 3825 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9075 3825 m 10200 3825 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 10200 3825 m 9450 3675 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9450 3675 m 9450 2775 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9450 2775 m 10200 3825 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 9000 3000 m 9450 3675 l gs col0 s gr [] 0 sd % Polyline n 11550 675 m 11100 825 l gs col0 s gr % Polyline n 11850 1875 m 11550 675 l gs col0 s gr % Polyline n 11550 1575 m 11850 1875 l gs col0 s gr % Polyline n 11100 825 m 11550 1575 l gs col0 s gr % Polyline [90] 0 sd n 11550 1575 m 11550 675 l gs col0 s gr [] 0 sd % Polyline n 11100 825 m 11850 1875 l gs col0 s gr % Polyline n 10950 825 m 10950 1725 l gs col0 s gr % Polyline n 10950 1725 m 11700 1875 l gs col0 s gr % Polyline n 10950 825 m 11700 1875 l gs col0 s gr % Polyline [90] 0 sd n 11400 1575 m 10950 1725 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 10950 825 m 11400 1575 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 11400 1575 m 11700 1875 l gs col0 s gr [] 0 sd % Polyline n 11250 2925 m 11250 3825 l gs col0 s gr % Polyline n 11250 3825 m 12000 3975 l gs col0 s gr % Polyline n 12000 3975 m 12450 3825 l gs col0 s gr % Polyline n 12450 3825 m 12450 2925 l gs col0 s gr % Polyline n 12450 2925 m 11700 2775 l gs col0 s gr % Polyline n 11700 2775 m 11250 2925 l gs col0 s gr % Polyline n 11250 2925 m 12000 3975 l gs col0 s gr % Polyline n 12000 3975 m 11700 2775 l gs col0 s gr % Polyline n 12450 2925 m 12000 3975 l gs col0 s gr % Polyline [90] 0 sd n 11700 3675 m 11700 2775 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 11700 3675 m 11250 3825 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 11325 3825 m 12450 3825 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 12450 3825 m 11700 3675 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 11700 3675 m 12450 2925 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 11250 2925 m 11700 3675 l gs col0 s gr [] 0 sd % Polyline n 6750 2925 m 6750 3825 l gs col0 s gr % Polyline n 6750 3825 m 7500 3975 l gs col0 s gr % Polyline n 7500 3975 m 7950 3825 l gs col0 s gr % Polyline n 7950 3825 m 7950 2925 l gs col0 s gr % Polyline n 7950 2925 m 7200 2775 l gs col0 s gr % Polyline n 7200 2775 m 6750 2925 l gs col0 s gr % Polyline n 6750 2925 m 7500 3975 l gs col0 s gr % Polyline n 7500 3975 m 7200 2775 l gs col0 s gr % Polyline [90] 0 sd n 6750 3825 m 7200 2775 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 7200 3675 m 7200 2775 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 6825 3825 m 7950 3825 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 7200 3675 m 6750 3825 l gs col0 s gr [] 0 sd % Polyline n 7950 2925 m 7500 3975 l gs col0 s gr % Polyline [90] 0 sd n 7950 3825 m 7200 3675 l gs col0 s gr [] 0 sd % Polyline [90] 0 sd n 7200 3675 m 7950 2925 l gs col0 s gr [] 0 sd 45.000 slw % Ellipse n 9600 3375 825 825 0 360 DrawEllipse gs col0 s gr % Ellipse n 11850 3375 825 825 0 360 DrawEllipse gs col0 s gr % Ellipse n 7350 3375 825 825 0 360 DrawEllipse gs col0 s gr % Polyline n 10125 2775 m 9075 3975 l gs col0 s gr % Polyline n 12375 2775 m 11325 3975 l gs col0 s gr % Polyline n 7875 2775 m 6825 3975 l gs col0 s gr /Times-Italic ff 450.00 scf sf 1650 3825 m gs 1 -1 sc (x) col0 sh gr /Times-Italic ff 450.00 scf sf 2250 1275 m gs 1 -1 sc (z) col0 sh gr /Times-Italic ff 450.00 scf sf 375 2400 m gs 1 -1 sc (y) col0 sh gr F2psBeginF2psEnd rs %%EndDocument @endspecial -150 3097 a Fn(Figure)f(7:)45 b Ff(A)36 b(G)h(gate)e(f)l(orces)i Fe(y)k Ff(and)36 b Fe(z)42 b Ff(to)36 b(be)g(tr)r(ue)g(if)g Fe(x)h Ff(is)g(tr)r(ue)n(,)f(and)g(f)l (orces)h Fe(x)-150 3246 y Ff(to)g(be)f(f)l(alse)i(if)f Fe(y)42 b Ff(or)37 b Fe(z)42 b Ff(if)37 b(f)l(alse)n(.)4 3708 y Fn(Our)29 b(most)g(po)l(werful)g(g)o(ate,)j(called)d(a)i Fk(G)e(gate)p Fn(,)i(is)f(illustrated)e(in)h(Figure)g(7.)-150 3890 y(Let)43 b Fl(S)52 b Fn(be)43 b(a)g(sphere,)i(and)e(let)f Fl(p)1531 3907 y Fd(1)1601 3890 y Fn(,)j Fl(p)1760 3907 y Fd(2)1829 3890 y Fn(,)g(and)d Fl(p)2246 3907 y Fd(3)2359 3890 y Fn(be)h(three)g(planes)g(such)g(that)-150 4072 y Fl(S)50 b Fj(\\)41 b Fl(p)214 4089 y Fd(1)283 4072 y Fn(,)50 b Fl(S)f Fj(\\)42 b Fl(p)734 4089 y Fd(2)803 4072 y Fn(,)50 b(and)c Fl(S)k Fj(\\)41 b Fl(p)1516 4089 y Fd(3)1632 4072 y Fn(are)48 b(pairwise)e(intersecting)f(circles,)k (and)-150 4254 y(furthermore)e(there)h(is)g(one)g(point)f(where)h(all)g (three)g(planes)g(and)g Fl(S)57 b Fn(inter)m(-)-150 4435 y(sect.)47 b(The)37 b(se)l(v)n(en)f(v)n(ertices)h(of)f(a)g(G)h(g)o(ate) g(are)g(the)f(point)e Fl(S)40 b Fj(\\)31 b Fl(p)3123 4452 y Fd(1)3223 4435 y Fj(\\)h Fl(p)3434 4452 y Fd(2)3534 4435 y Fj(\\)f Fl(p)3744 4452 y Fd(3)3813 4435 y Fn(,)-150 4617 y(one)46 b(additional)e(point)g(from)i(each)h(of)f Fl(S)j Fj(\\)41 b Fl(p)2300 4634 y Fd(1)2411 4617 y Fj(\\)g Fl(p)2631 4634 y Fd(2)2700 4617 y Fn(,)49 b Fl(S)g Fj(\\)41 b Fl(p)3149 4634 y Fd(2)3260 4617 y Fj(\\)g Fl(p)3480 4634 y Fd(3)3549 4617 y Fn(,)49 b(and)-150 4799 y Fl(S)29 b Fj(\\)20 b Fl(p)172 4816 y Fd(3)262 4799 y Fj(\\)g Fl(p)461 4816 y Fd(1)531 4799 y Fn(,)35 b(and)f(one)f(additional)f (point)g(chosen)h(\(with)g(some)h(\003e)n(xibility\))-150 4981 y(from)j(each)h(of)f(the)g(circles)g Fl(S)43 b Fj(\\)34 b Fl(p)1648 4998 y Fd(1)1717 4981 y Fn(,)k Fl(S)43 b Fj(\\)34 b Fl(p)2142 4998 y Fd(2)2211 4981 y Fn(,)k(and)f Fl(S)43 b Fj(\\)34 b Fl(p)2889 4998 y Fd(3)2959 4981 y Fn(.)4 5163 y(A)53 b(G)g(g)o(ate,)58 b(lik)o(e)52 b(an)h(S)h(g)o (ate,)j(has)d(three)f(bits.)93 b(It)53 b(has)g(four)g(triangular)-150 5344 y(f)o(aces,)58 b(which)53 b(all)g(lie)g(in)g(the)g(boundary)f(of)h Fl(P)21 b Fn(.)95 b(As)54 b(Figure)e(7)i(sho)l(ws,)j(a)-150 5526 y(G)43 b(g)o(ate)g(is)g(not)f(con)-6 b(v)n(e)n(x,)44 b(and)e(its)h(three)f(bits)g(are)i(not)e(all)g(interchangeable.)-150 5708 y(In)52 b(the)h(\002gure,)j(the)c(tw)o(o)g(bits)g Fl(y)57 b Fn(and)c Fl(z)59 b Fn(beha)m(v)n(e)53 b(symmetrically)-10 b(,)56 b(b)m(ut)c(the)-150 5890 y(pri)l(vile)n(ged)32 b(bit)g Fl(x)i Fn(is)g(dif)l(ferent.)44 b(There)34 b(are)g(\002)l(v)n (e)g(w)o(ays)g(to)f(tetrahedralize)g(an)-150 6072 y(S)j(g)o(ate,)h(and) f(if)f(no)g(v)n(erte)n(x)g(lies)g(inside)g Fl(S)8 b Fn(,)37 b(all)f(\002)l(v)n(e)g(tetrahedralizations)e(use)-150 6254 y(only)45 b(Delaunay)g(tetrahedra.)72 b(In)46 b(an)n(y)f(bit,)i (we)g(are)f(free)g(to)g(decide)g(which)-150 6435 y(diagonal)30 b(represents)i(\223true\224)g(\(because)g(we)g(can)g(al)o(w)o(ays)f (interpose)g(a)h Fc(half-)-150 6617 y(not)41 b Fn(g)o(ate)i(between)e (tw)o(o)g(other)g(g)o(ates)h(if)g(necessary)g(to)g(mak)o(e)g(them)f (speak)-150 6799 y(the)c(same)h(language\),)f(so)h(we)f(interpret)f (the)h(G)g(g)o(ate)h(as)f(follo)l(ws.)4 6981 y(If)54 b(we)h(treat)f Fl(x)h Fn(as)g(the)f(input,)k(and)c Fl(y)60 b Fn(and)54 b Fl(z)62 b Fn(as)55 b(outputs,)j(then)c(the)g(G)-150 7163 y(g)o(ate)49 b(serv)n(es)f(as)h(a)g Fk(splitter)p Fn(:)66 b(if)48 b Fl(x)g Fn(is)g(true,)j(then)d(both)f Fl(y)54 b Fn(and)48 b Fl(z)55 b Fn(must)48 b(also)-150 7344 y(be)53 b(true.)92 b(If)52 b Fl(x)h Fn(is)f(f)o(alse,)57 b(then)52 b Fl(y)57 b Fn(and)c Fl(z)59 b Fn(may)53 b(each)h (independently)c(tak)o(e)-150 7526 y(on)43 b(an)n(y)g(v)l(alue.)66 b(By)43 b(re)l(v)n(ersing)g(our)g(interpretation)e(of)i(the)g (diagonals,)i(we)-150 7708 y(may)e(instead)f(use)g(a)h(G)f(g)o(ate)h (so)f(that)g(it)f(duplicates)h(and)g(propag)o(ates)g(f)o(alse)-150 7890 y(signals,)37 b(b)m(ut)f(not)h(necessarily)g(true)g(signals.)4 8072 y(If)e(we)i(treat)f Fl(y)41 b Fn(and)36 b Fl(z)43 b Fn(as)37 b(inputs,)e(and)h Fl(x)g Fn(as)h(the)f(output,)f(then)h(the) f(G)i(g)o(ate)-150 8254 y(serv)n(es)h(as)f(a)h Fc(half-and)e Fn(g)o(ate)i(with)e(the)h(follo)l(wing)e(truth)g(table.)1438 8520 y Fc(half-and)h Fn(g)o(ate)p 849 8581 2002 7 v 949 8709 a(Input)g Fl(y)204 b Fn(Input)36 b Fl(z)p 2109 8763 7 182 v 206 w Fn(Output)g Fl(x)p 849 8770 2002 7 v 1026 8897 a Fn(f)o(alse)350 b(f)o(alse)p 2109 8952 7 182 v 404 w(f)o(alse)1026 9079 y(f)o(alse)374 b(true)p 2109 9134 V 428 w(f)o(alse)1050 9261 y(true)g(f)o(alse)p 2109 9315 V 404 w(f)o(alse)1050 9443 y(true)398 b(true)p 2109 9497 V 535 w(?)-150 9707 y(By)39 b(re)l(v)n(ersing)g(our)g (interpretation)d(of)k(the)f(diagonals,)g(we)h(ha)m(v)n(e)g(a)g Fc(half-or)-150 9889 y Fn(g)o(ate:)45 b(if)35 b(either)g Fl(y)40 b Fn(or)35 b Fl(z)42 b Fn(is)35 b(true,)h(then)f Fl(x)g Fn(must)g(be)h(true.)45 b(If)35 b(both)f Fl(y)41 b Fn(and)35 b Fl(z)42 b Fn(are)-150 10071 y(f)o(alse,)37 b(then)g Fl(x)g Fn(may)h(be)g(either)e(true)h(or)g(f)o(alse.)4 10253 y(W)-12 b(e)44 b(wish)f(to)g(con)-6 b(vince)43 b(the)g(reader)h(\(without)d(a)k(fully)d(rigorous)f(proof\))-150 10435 y(that)63 b(it)g(is)h(straightforw)o(ard)d(to)j(piece)g(g)o(ates) g(together)f(by)h(gluing)e(their)-150 10616 y(quadrilateral)56 b(f)o(aces)j(\(bits\))e(together)-6 b(,)62 b(so)c(that)f(the)n(y)h(can) g(emulate)h(arbi-)-150 10798 y(trary)d(logic)h(circuits)f(and)h(so)g (that)f(all)h(the)g(tetrahedralizations)e(of)i(each)-150 10980 y(g)o(ate)c(enumerated)f(abo)n(v)n(e,)k(and)c(no)g(others,)j(are) e(constrained)e(Delaunay)-10 b(.)4270 2220 y @beginspecial 0 @llx 0 @lly 352 @urx 208 @ury 2376 @rwi @setspecial %%BeginDocument: grid.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: grid.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Tue Aug 27 09:06:55 2002 %%For: jrs@localhost.localdomain (Jonathan Shewchuk) %%BoundingBox: 0 0 352 208 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /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 newpath 0 208 moveto 0 0 lineto 352 0 lineto 352 208 lineto closepath clip newpath -31.0 275.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 F2psBeginF2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % % Arc 7.500 slw [60] 0 sd n 4500.0 1339.3 910.7 -171.2 -8.8 arcn gs col0 s gr [] 0 sd % Arc [60] 0 sd n 4496.0 1643.3 906.7 -150.7 -29.3 arcn gs col0 s gr [] 0 sd % Arc [60] 0 sd n 3900.0 4058.5 1208.5 158.6 21.4 arc gs col0 s gr [] 0 sd % Arc [60] 0 sd n 3900.0 3754.0 1204.0 141.7 38.3 arc gs col0 s gr [] 0 sd % Arc [60] 0 sd n 1341.5 3300.0 908.5 -144.7 144.7 arc gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1650 3300 912 912 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1650 4350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1950 4350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1350 2250 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1200 2100 300 300 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1350 1950 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1350 1650 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1050 1650 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1050 1350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 750 1350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1650 1950 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1650 2250 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1950 2250 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1950 2550 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2250 2550 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2250 2850 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1800 2700 300 300 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1950 2850 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 1950 3150 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2250 3150 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2250 3450 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2550 3450 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2550 3750 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5250 4050 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5250 4350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5550 4350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5550 4050 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5400 3900 300 300 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5850 4050 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5850 3750 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 6150 3750 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 6150 3450 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2550 2850 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2550 2550 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2850 2550 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 2850 2250 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 3150 2250 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 3150 1950 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 3450 1950 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 3450 1650 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd [60] 0 sd % Ellipse n 5550 1350 212 212 0 360 DrawEllipse gs col0 s gr [] 0 sd % Polyline 15.000 slw n 2100 2400 m 2100 2700 l gs col0 s gr % Polyline n 2100 2700 m 2400 2700 l gs col0 s gr % Polyline n 2400 2700 m 2100 2400 l gs col0 s gr % Polyline n 2100 2400 m 1800 2400 l 2100 2700 l gs col0 s gr % Polyline n 2100 2700 m 1800 3000 l gs col0 s gr % Polyline n 1800 3000 m 1800 2400 l gs col0 s gr % Polyline n 2100 2700 m 2100 3000 l gs col0 s gr % Polyline n 2100 3000 m 1800 3000 l gs col0 s gr % Polyline n 1800 3000 m 2100 3300 l gs col0 s gr % Polyline n 2100 3300 m 2100 3000 l gs col0 s gr % Polyline n 2100 2400 m 1800 2100 l gs col0 s gr % Polyline n 1800 2100 m 1800 2400 l gs col0 s gr % Polyline n 1800 2400 m 1500 2100 l gs col0 s gr % Polyline n 1500 2100 m 1800 2100 l gs col0 s gr % Polyline n 2100 3000 m 2400 3300 l gs col0 s gr % Polyline n 2400 3300 m 2100 3300 l gs col0 s gr % Polyline n 2100 3300 m 2400 3600 l gs col0 s gr % Polyline n 2400 3600 m 2400 3300 l gs col0 s gr % Polyline n 2100 2700 m 2400 3000 l gs col0 s gr % Polyline n 2400 3000 m 2400 2700 l gs col0 s gr % Polyline n 2400 3000 m 2700 2700 l gs col0 s gr % Polyline n 2700 2700 m 2400 2700 l gs col0 s gr % Polyline n 3000 2400 m 2700 2700 l gs col0 s gr % Polyline n 2400 2700 m 2700 2400 l gs col0 s gr % Polyline n 2700 2700 m 2700 2400 l gs col0 s gr % Polyline n 2700 2400 m 3000 2400 l gs col0 s gr % Polyline n 2700 2400 m 3000 2100 l gs col0 s gr % Polyline n 3000 2100 m 3000 2400 l gs col0 s gr % Polyline n 3000 2400 m 3300 2400 l gs col0 s gr % Polyline n 3300 2400 m 3300 2100 l gs col0 s gr % Polyline n 3300 2100 m 3000 2100 l gs col0 s gr % Polyline n 3000 2100 m 3300 1800 l gs col0 s gr % Polyline n 3300 1800 m 3300 2100 l gs col0 s gr % Polyline n 3300 2100 m 3600 1800 l gs col0 s gr % Polyline n 3600 1800 m 3300 1800 l gs col0 s gr % Polyline n 2400 3300 m 2700 3600 l gs col0 s gr % Polyline n 2700 3600 m 2400 3600 l gs col0 s gr % Polyline n 2400 3600 m 2700 3900 l gs col0 s gr % Polyline n 2700 3900 m 2700 3600 l gs col0 s gr % Polyline n 2700 3900 m 5100 3900 l gs col0 s gr % Polyline n 5100 3900 m 2700 3600 l gs col0 s gr % Polyline n 2700 3900 m 5100 4200 l gs col0 s gr % Polyline n 5100 4200 m 5100 3900 l gs col0 s gr % Polyline n 3300 1800 m 3600 1500 l gs col0 s gr % Polyline n 3600 1500 m 3600 1800 l gs col0 s gr % Polyline n 3600 1500 m 5400 1500 l gs col0 s gr % Polyline n 5400 1500 m 3600 1800 l gs col0 s gr % Polyline n 3600 1500 m 5400 1200 l gs col0 s gr % Polyline n 5400 1200 m 5400 1500 l gs col0 s gr % Polyline n 5400 1500 m 5700 1200 l gs col0 s gr % Polyline n 5700 1200 m 5400 1200 l gs col0 s gr % Polyline n 1800 2100 m 1500 1800 l gs col0 s gr % Polyline n 1500 1800 m 1500 2100 l gs col0 s gr % Polyline n 1500 2100 m 1200 1800 l gs col0 s gr % Polyline n 1200 1800 m 1500 1800 l gs col0 s gr % Polyline n 1200 1800 m 1200 2400 l gs col0 s gr % Polyline n 1200 2400 m 1500 2100 l gs col0 s gr % Polyline n 1500 2100 m 1500 2400 l gs col0 s gr % Polyline n 1500 2400 m 1200 2400 l gs col0 s gr % Polyline n 1200 2400 m 1500 4200 l gs col0 s gr % Polyline n 1500 2400 m 1500 4200 l gs col0 s gr % Polyline n 1500 2400 m 1800 4200 l gs col0 s gr % Polyline n 1800 4200 m 1500 4200 l gs col0 s gr % Polyline n 1500 4200 m 1800 4500 l gs col0 s gr % Polyline n 1800 4500 m 1800 4200 l gs col0 s gr % Polyline n 1800 4200 m 2100 4500 l gs col0 s gr % Polyline n 2100 4500 m 1800 4500 l gs col0 s gr % Polyline n 1500 1800 m 1200 1500 l gs col0 s gr % Polyline n 1200 1500 m 1200 1800 l gs col0 s gr % Polyline n 900 1500 m 1200 1500 l gs col0 s gr % Polyline n 1200 1800 m 900 1500 l gs col0 s gr % Polyline n 900 1500 m 900 1200 l gs col0 s gr % Polyline n 900 1200 m 1200 1500 l gs col0 s gr % Polyline n 900 1500 m 600 1200 l gs col0 s gr % Polyline n 600 1200 m 900 1200 l gs col0 s gr % Polyline n 5100 3900 m 5400 4200 l gs col0 s gr % Polyline n 5400 4200 m 5100 4200 l gs col0 s gr % Polyline n 5100 4200 m 5400 4500 l gs col0 s gr % Polyline n 5400 4500 m 5400 4200 l gs col0 s gr % Polyline n 5100 3900 m 5700 3900 l gs col0 s gr % Polyline n 5700 3900 m 5400 4200 l gs col0 s gr % Polyline n 5400 4200 m 5700 4200 l gs col0 s gr % Polyline n 5700 4200 m 5700 3900 l gs col0 s gr % Polyline n 5700 3900 m 6000 3900 l gs col0 s gr % Polyline n 6000 3900 m 5700 4200 l gs col0 s gr % Polyline n 5700 3900 m 6000 3600 l gs col0 s gr % Polyline n 6000 3600 m 6000 3900 l gs col0 s gr % Polyline n 6000 3900 m 6300 3600 l gs col0 s gr % Polyline n 6000 3600 m 6300 3600 l gs col0 s gr % Polyline n 6300 3600 m 6300 3300 l gs col0 s gr % Polyline n 6300 3300 m 6000 3600 l gs col0 s gr % Polyline n 5400 4200 m 5700 4500 l gs col0 s gr % Polyline n 5700 4500 m 5400 4500 l gs col0 s gr % Polyline 7.500 slw [15 45] 45 sd n 600 1200 m 6300 1200 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 1500 m 6300 1500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 1800 m 6300 1800 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 2100 m 6300 2100 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 2400 m 6300 2400 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 2700 m 6300 2700 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 3000 m 6300 3000 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 3300 m 6300 3300 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 3600 m 6300 3600 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 3900 m 6300 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 4200 m 6300 4200 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 4500 m 6300 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 600 1200 m 600 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 900 1200 m 900 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1200 1200 m 1200 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1500 1200 m 1500 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 1800 1200 m 1800 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2100 1200 m 2100 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2400 1200 m 2400 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 2700 1200 m 2700 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 3000 1200 m 3000 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 3300 1200 m 3300 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 3600 1200 m 3600 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 3900 1200 m 3900 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 4200 1200 m 4200 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 4500 1200 m 4500 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 4800 1200 m 4800 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5100 1200 m 5100 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5400 1200 m 5400 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5700 1200 m 5700 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6000 1200 m 6000 4500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 6300 1200 m 6300 4500 l gs col0 s gr [] 0 sd F2psBeginF2psEnd rs %%EndDocument @endspecial 4249 2535 a(Figure)49 b(8:)69 b Ff(An)48 b(illustr)o(ation)j(of)d(ho)n(w)g(gates)h(can)g(be)f(laid)i(out)e(so)h (that)f(each)4249 2685 y(gate')-7 b(s)57 b(circumsphere)h(does)e(not)g (enclose)h(v)m(er)5 b(tices)57 b(of)f(other)g(gates)g(that)4249 2834 y(are)47 b(visib)m(le)i(from)e(the)g(gate')-7 b(s)47 b(inter)r(ior)-7 b(.)77 b(\(The)47 b(third)h(dimension)f(is)h(used)f (as)4249 2984 y(w)o(ell,)38 b(f)l(or)e(\003e)l(xib)m(le)j(routing)e (and)g(f)l(or)g(G)g(gates)n(.\))4249 3487 y Fn(One)54 b(w)o(ay)g(to)f(safely)h(route)f(circuits)g(is)h(to)f(di)l(vide)g (space)i(into)d(a)j(grid)e(of)4249 3669 y(cubes,)i(as)c(illustrated)d (in)i(Figure)g(8.)87 b(Each)51 b(g)o(ate)g(can)g(be)g(laid)f(out)f(so)i (its)4249 3851 y(v)n(ertices)j(lie)f(on,)58 b(or)53 b(close)h(to,)k (the)c(corners)f(of)h(one)f(or)h(tw)o(o)f(cubes,)58 b(and)4249 4033 y(so)36 b(the)g(circumsphere)g(of)g(each)g(g)o(ate)h(encloses)f (no)g(v)n(erte)n(x.)45 b(Therefore,)37 b(for)4249 4214 y(each)c(g)o(ate,)h(all)e(of)g(the)g(tetrahedralizations)e(enumerated)i (abo)n(v)n(e)g(consist)g(of)4249 4396 y(constrained)f(Delaunay)g (tetrahedra,)i(so)e(an)n(y)g(of)g(these)h(tetrahedralizations)4249 4578 y(may)41 b(be)g(part)g(of)f(the)g(CDT)h(of)f Fl(P)63 b Fn(if)40 b(the)n(y)g(can)h(be)g(made)g(compatible)f(with)4249 4760 y(the)j(tetrahedralizations)e(of)i(the)g(adjoining)e(g)o(ates.)65 b(Con)-6 b(v)n(ersely)c(,)44 b(because)4249 4942 y(the)37 b(circumsphere)g(of)g(each)h(g)o(ate)f(touches)g(no)g(other)f(v)n(erte) n(x)g(than)h(the)g(v)n(er)m(-)4249 5124 y(tices)46 b(of)f(the)g(g)o (ate,)j(these)e(tetrahedralizations)d(are)j(the)f Fk(only)g Fn(constrained)4249 5305 y(Delaunay)35 b(tetrahedralizations)e (possible.)44 b(A)35 b(tetrahedron)f(that)g(intersects)4249 5487 y(the)k(interiors)f(of)h(tw)o(o)f(dif)l(ferent)g(g)o(ates)i(is)f (not)g(constrained)f(Delaunay)-10 b(,)39 b(be-)4249 5669 y(cause)51 b(its)d(circumsphere)i(must)f(enclose)h(a)f(v)n(erte)n(x)g (of)g(the)g(bit)f(shared)i(by)4249 5851 y(the)h(tw)o(o)f(g)o(ates.)90 b(W)-12 b(e)51 b(conclude)g(that)g(in)g(an)n(y)g(CDT)g(of)g Fl(P)21 b Fn(,)55 b(e)l(v)n(ery)d(g)o(ate)f(is)4249 6033 y(tetrahedralized)34 b(by)g(one)g(of)g(the)g(con\002gurations)f (illustrated)f(in)i(Figures)g(3,)4249 6214 y(4,)k(and)f(7.)4403 6409 y(Observ)n(e)49 b(that)g(the)h(circumspheres)g(of)f(tw)o(o)g(g)o (ates)h(meeting)f(at)h(a)g(bit)f Fl(b)4249 6591 y Fn(determine)39 b(the)f(plane)g Fl(p)h Fn(in)f(which)g Fl(b)h Fn(lies,)g(because)g Fl(p)g Fn(contains)f(the)g(circle)4249 6773 y(where)53 b(the)f(circumspheres)h(intersect.)92 b(Hence,)58 b(the)52 b(choice)h(of)f(circum-)4249 6954 y(spheres)45 b(for)f(the)h(g)o(ates)g (uniquely)e(determines)i(the)f(positions)f(of)h(most)h(of)4249 7136 y(the)35 b(g)o(ate)g(v)n(ertices.)46 b(\(This)34 b(is)h(one)g(reason)g(wh)o(y)g(W)g(g)o(ates)h(with)e(anchors)h(are)4249 7318 y(easier)40 b(to)e(lay)h(out)f(than)h(the)g(six-v)n(erte)n(x)e(W)i (g)o(ates.\))52 b(Some)40 b(of)e(the)h(circum-)4249 7500 y(spheres)e(must)g(be)f(perturbed)g(slightly)e(so)i(the)n(y)g(are)i (not)d(perfectly)h(aligned)4249 7682 y(with)43 b(the)h(grid,)h(because) h(we)e(w)o(ant)g(e)l(v)n(ery)g(g)o(ate)g(v)n(erte)n(x)g(to)f(be)i(a)f (v)n(erte)n(x)g(of)4249 7864 y Fl(P)21 b Fn(.)51 b(Ho)l(we)l(v)n(er)-6 b(,)39 b(the)g(perturbation)d(must)i(satisfy)g(some)h(constraints:)46 b(wher)m(-)4249 8045 y(e)l(v)n(er)36 b(an)g(S)f(g)o(ate)h(or)f(G)h(g)o (ate)f(meets)i(wires,)f(there)f(are)h(some)g(v)n(ertices)f(where)4249 8227 y(three)i(or)g(four)g(circumspheres)g(must)g(meet.)4403 8422 y(Also)i(observ)n(e)h(that)f(g)o(ates)h(can)h(be)f(made)h (arbitrarily)d(small,)i(and)g(wires)4249 8604 y(can)50 b(be)f(made)h(arbitrarily)d(long)h(and)h(thin,)i(so)f(wires)f(can)g(ef) l(fecti)l(v)n(ely)g(be)4249 8785 y(treated)k(as)h(one-dimensional)e (objects)h(for)g(the)g(purpose)f(of)h(circuit)g(lay-)4249 8967 y(out.)f(Figure)38 b(8)h(illustrates)f(se)l(v)n(eral)h(long)f (wires.)52 b(Although)37 b(their)h(circum-)4249 9149 y(spheres)47 b(are)g(lar)m(ge)g(enough)e(to)h(enclose)h(other)e(g)o (ates,)50 b(here)d(is)f(where)g(the)4249 9331 y(\223constrained\224)58 b(part)g(of)g(constrained)g(Delaunay)g(comes)h(into)e(play:)88 b(no)4249 9513 y(v)n(erte)n(x)35 b(enclosed)i(in)e(a)i(g)o(ate')-8 b(s)36 b(circumsphere)g(is)g(visible)f(from)g(the)h(interior)4249 9695 y(of)44 b(the)h(g)o(ate,)i(so)d(an)n(y)g(v)l(alid)g (tetrahedralization)f(of)h(a)h(g)o(ate)g(is)f(constrained)4249 9876 y(Delaunay)-10 b(.)4403 10071 y(A)36 b(complete)g(formal)f(proof)g (of)h(the)f(reduction)g(of)g(satis\002ability)f(to)h(con-)4249 10253 y(strained)53 b(Delaunay)g(tetrahedralization)f(w)o(ould)f (include)i(a)h(precise)g(me-)4249 10435 y(chanical)45 b(procedure)f(for)f(laying)h(out)f(a)i(circuit)e(for)h(an)n(y)g (predicate.)68 b(As)45 b(a)4249 10616 y(start,)50 b(we)d(suggest)g (assigning)f(each)i(S)f(g)o(ate)h(and)f(G)g(g)o(ate)g(a)h(unique)e (posi-)4249 10798 y(ti)l(v)n(e)36 b(inde)n(x)f Fl(i)p Fn(,)i(and)f(positioning)e(the)i(g)o(ates)h(at)f(inte)n(gral)f (coordinates)g(on)h(the)4249 10980 y Fk(moment)41 b(curve)h Fi(\()p Fl(i;)25 b(i)5371 10917 y Fd(2)5439 10980 y Fl(;)h(i)5561 10917 y Fd(3)5629 10980 y Fi(\))p Fn(.)59 b(This)41 b(positioning)d (simpli\002es)i(the)h(routing)f(of)p eop %%Page: 4 4 4 3 bop -450 29 a Fn(wires)53 b(between)g(g)o(ates)h(because)g(an)n(y)f (tw)o(o)f(distinct)f(line)i(se)n(gments)g(with)-450 211 y(their)47 b(endpoints)f(on)i(the)g(moment)g(curv)n(e)g(do)f(not)h (intersect,)i(e)n(xcept)e(per)m(-)-450 393 y(haps)40 b(at)f(a)h(shared)g(endpoint.)51 b(Thus,)41 b(if)e(the)g(wires)g(are)h (made)h(thin)d(enough)-450 575 y(and)d(the)h(g)o(ates)g(small)f (enough,)g(routing)f(is)h(a)h(simple)f(matter)h(of)f(locally)f(at-)-450 757 y(taching)c(three)h(wires)f(to)g(each)i(S)f(g)o(ate)g(and)g(each)h (G)f(g)o(ate)g(so)g(the)f(three)h(wires)-450 939 y(do)i(not)f (interfere)h(with)f(each)i(other)-6 b(,)33 b(and)g(their)g(bits)f(are)i (correctly)e(oriented)-450 1120 y(where)49 b(a)g(wire)g(meets)g(a)g(g)o (ate.)82 b(These)50 b(local)e(connections)g(can)h(be)g(made)-450 1302 y(with)34 b(a)i(constant)f(number)g(of)g(W)h(g)o(ates,)h(so)e(a)h (predicate)f(of)h(comple)n(xity)d Fl(m)-450 1484 y Fn(can)39 b(be)h(represented)e(by)h(a)g(polyhedron)e Fl(P)60 b Fn(of)39 b(comple)n(xity)e Fj(O)t Fi(\()p Fl(m)p Fi(\))i Fn(whose)-450 1666 y(CDT)-11 b(,)32 b(if)f(one)h(e)n(xists,)h(is)f (also)f(of)h(comple)n(xity)e Fj(O)t Fi(\()p Fl(m)p Fi(\))p Fn(.)45 b(W)-12 b(e)32 b(hope)g(the)f(reader)-450 1848 y(is)41 b(con)-6 b(vinced)40 b(that)g(this)g(can)i(al)o(w)o(ays)e(be)h (accomplished,)h(because)g(a)f(fully)-450 2029 y(rigorous)f(treatment)h (w)o(ould)f(be)h(tedious)g(and)g(unenlightening)e(for)h(reader)-450 2211 y(and)d(authors)f(alik)o(e.)-296 2451 y(Because)52 b(the)f(g)o(ates)h(and)g(wires)f(are)h(so)g(poor)e(at)i(signal)e (propag)o(ation,)-450 2633 y(we)42 b(need)g(one)g(more)g(idea)g(to)f (embody)g(a)i(circuit)d(in)h(a)i(tetrahedralization.)-450 2815 y(Ev)n(ery)d(v)l(alue)h(that)f(must)h(be)f(kno)l(wn)g(or)h (computed)f(to)g(e)l(v)l(aluate)h(the)f(pred-)-450 2996 y(icate)g Fl(p)p Fn(,)g(including)d(e)l(v)n(ery)i(v)l(ariable)g(and)h (e)l(v)n(ery)f(sube)n(xpression,)g(is)g(repre-)-450 3178 y(sented)c(by)g(tw)o(o)e(dif)l(ferent)h(signals)h(in)f(the)h (polyhedron)e Fl(P)21 b Fn(.)46 b(Let)36 b Fl(s)e Fn(be)h(either)-450 3360 y(the)42 b(v)l(alue)g(of)g(a)h(v)l(ariable)f Fl(v)1008 3377 y Fh(i)1060 3360 y Fn(,)i(or)e(the)g(v)l(alue)g(of)g(some)h(sube)n (xpression)e(of)h Fl(p)-450 3542 y Fn(\(possibly)j Fl(p)h Fn(itself\).)73 b(Then)47 b Fl(s)1154 3478 y Fh(t)1256 3542 y Fn(is)f(a)h(signal)e(that)h(is)g(true)g(if)g Fl(s)g Fn(is)g(true,)j(and)-450 3724 y(is)c(indeterminate)g(\(can)h(be)f(f)o (alse,)j(b)m(ut)d(is)g(not)g(guaranteed)g(to)g(be)g(f)o(alse\))g(if) -450 3905 y Fl(s)53 b Fn(is)h(f)o(alse.)95 b(Lik)o(e)l(wise,)58 b Fl(s)952 3842 y Fh(f)1085 3905 y Fn(is)c(a)g(signal)e(that)h(is)h(f)o (alse)f(if)g Fl(s)h Fn(is)f(f)o(alse,)58 b(and)-450 4087 y(can)44 b(be)g(true)f(\(b)m(ut)g(is)h(not)e(guaranteed)i(to)f(be\))h (if)f Fl(s)g Fn(is)h(true.)65 b(The)45 b(signal)d Fl(s)3495 4024 y Fh(t)-450 4269 y Fn(is)i(propag)o(ated)f(to)h(an)n(y)g(sube)n (xpression)f(that)g(depends)h(on)g(it)f(via)h(W)g(g)o(ates)-450 4451 y(oriented)33 b(to)g(propag)o(ate)h(true)g(inputs.)44 b(Lik)o(e)l(wise,)34 b Fl(s)2248 4387 y Fh(f)2362 4451 y Fn(is)f(propag)o(ated)h(via)g(W)-450 4633 y(g)o(ates)40 b(oriented)f(to)h(propag)o(ate)f(f)o(alse)h(inputs.)53 b(Where)l(v)n(er)40 b(it)f(is)h(needed,)i(we)-450 4815 y(use)37 b(a)h(G)f(g)o(ate)h(as)f(a)h(splitter)e(to)g(duplicate)g(the)h (signal)f Fl(s)2463 4751 y Fh(t)2519 4815 y Fn(,)h(and)g(lik)o(e)l (wise)g(we)-450 4996 y(use)h(a)f(complementary)g(G)h(g)o(ate)f(to)g (duplicate)f Fl(s)2099 4933 y Fh(f)2178 4996 y Fn(.)-296 5236 y(The)h(predicate)f Fl(p)h Fn(is)f(embodied)g(in)g(a)h(polyhedron) e Fl(P)58 b Fn(as)37 b(follo)l(ws.)45 b(Each)-450 5418 y(input)31 b(v)l(ariable)h Fl(v)475 5435 y Fh(i)560 5418 y Fn(is)h(represented)f(by)g(a)h(bit)f Fl(b)1952 5435 y Fh(i)2037 5418 y Fn(some)l(where)i(in)d(the)i(interior)-450 5600 y(of)39 b Fl(P)21 b Fn(.)54 b(Out)39 b(of)g(each)h(bit)f Fl(b)929 5617 y Fh(i)981 5600 y Fn(,)i(we)f(run)f(tw)o(o)f (wires\227one)h(from)g(each)i(side)e(of)-450 5782 y(the)48 b(bit.)80 b(One)49 b(wire)f(propag)o(ates)h Fl(v)1445 5718 y Fh(t)1440 5809 y(i)1549 5782 y Fn(by)f(means)i(of)e(W)h(g)o (ates)g(oriented)e(to)-450 5963 y(propag)o(ate)35 b(true)g(inputs,)f (and)h(one)h(propag)o(ates)f Fl(v)2145 5893 y Fh(f)2140 6003 y(i)2260 5963 y Fn(by)g(complementary)g(W)-450 6145 y(g)o(ates.)-296 6385 y(T)-12 b(o)51 b(implement)g(a)h Fc(not)g Fn(g)o(ate,)j(pass)d(a)g(cop)o(y)f(of)g(a)h(signal)f Fl(s)2861 6321 y Fh(t)2968 6385 y Fn(through)e(a)-450 6567 y Fc(half-not)38 b Fn(g)o(ate)i(to)f(yield)p 879 6483 72 7 v 39 w Fl(s)950 6503 y Fh(f)1030 6567 y Fn(,)i(and)e(pass)h (a)g(cop)o(y)f(of)g Fl(s)2331 6503 y Fh(f)2450 6567 y Fn(through)f(a)i(comple-)-450 6749 y(mentary)d Fc(half-not)f Fn(g)o(ate)h(to)g(yield)p 1396 6665 V 36 w Fl(s)1468 6685 y Fh(t)1524 6749 y Fn(.)-296 6988 y(T)-12 b(o)37 b(implement)f(an)h Fc(and)g Fn(g)o(ate)g(that)f(computes)g Fl(x)43 b Fi(=)g Fl(y)38 b Fj(^)32 b Fl(z)6 b Fn(,)39 b(pass)e(copies)-450 7170 y(of)48 b Fl(y)-196 7107 y Fh(t)-91 7170 y Fn(and)h Fl(z)251 7107 y Fh(t)356 7170 y Fn(into)f(an)h(S)g(g)o(ate)g(to)f(yield)g Fl(x)1857 7107 y Fh(t)1913 7170 y Fn(,)k(so)d(that)f Fl(x)2544 7107 y Fh(t)2649 7170 y Fn(must)g(be)h(true)f(if)-450 7352 y(both)36 b Fl(y)42 b Fn(and)c Fl(z)44 b Fn(are)38 b(true,)f(and)g Fl(x)1207 7288 y Fh(t)1300 7352 y Fn(can)h(be)f(f)o (alse)g(otherwise.)46 b(P)n(ass)38 b(copies)f(of)-450 7534 y Fl(y)-369 7470 y Fh(f)-252 7534 y Fn(and)g Fl(z)78 7470 y Fh(f)196 7534 y Fn(into)f(a)i Fc(half-and)e Fn(g)o(ate)i (con\002gured)e(so)i(its)e(output)g Fl(x)2965 7470 y Fh(f)3082 7534 y Fn(must)h(be)-450 7715 y(f)o(alse)29 b(if)f(either)g Fl(y)34 b Fn(or)29 b Fl(z)35 b Fn(is)29 b(f)o(alse,)i(and)d Fl(x)1528 7652 y Fh(f)1637 7715 y Fn(can)h(be)g(true)g(otherwise.)43 b(Similarly)-10 b(,)-450 7897 y(an)35 b Fc(or)g Fn(g)o(ate)g(may)g(be)g(constructed)f(from)g(an) h(S)g(g)o(ate)g(and)f(a)i Fc(half-or)d Fn(g)o(ate,)j(or)-450 8079 y(equally)45 b(well)h(by)f(De)i(Mor)m(g)o(an')-8 b(s)45 b(la)n(w)h(from)g(an)g Fc(and)g Fn(g)o(ate)g(and)g(three)g Fc(not)-450 8261 y Fn(g)o(ates.)-296 8501 y(At)32 b(the)g(end)g(of)g (the)g(circuit,)h(the)f(signals)g Fl(p)1914 8437 y Fh(t)2002 8501 y Fn(and)h Fl(p)2328 8437 y Fh(f)2440 8501 y Fn(represent)f(the)g (pred-)-450 8682 y(icate)47 b Fl(p)p Fn(.)77 b(The)47 b(signal)f Fl(p)830 8619 y Fh(f)957 8682 y Fn(must)h(be)g(f)o(alse)g (if)g Fl(p)g Fn(is)g(f)o(alse,)j(so)d(we)g(attach)g Fl(p)3471 8619 y Fh(f)-450 8864 y Fn(to)53 b(one)g(\002nal)h(anchor)f(\(recall)g (Figure)g(5\))g(set)h(to)f(enforce)g(the)g(true)g(state.)-450 9046 y(Hence,)58 b(if)53 b Fl(p)248 8983 y Fh(f)381 9046 y Fn(is)g(f)o(alse,)58 b(the)52 b(tetrahedralization)g(cannot)g(be)i (completed.)-450 9228 y(In)43 b(an)n(y)h(CDT)g(of)f(the)h(polyhedron)e Fl(P)21 b Fn(,)46 b(the)e(bits)e Fl(b)2193 9245 y Fh(i)2290 9228 y Fn(correspond)h(to)g(a)h(truth)-450 9410 y(assignment)37 b(to)f(the)h(v)l(ariables)h Fl(v)1282 9427 y Fh(i)1371 9410 y Fn(for)f(which)f Fl(p)p Fi(\()p Fl(v)2197 9427 y Fd(1)2266 9410 y Fl(;)25 b(v)2409 9427 y Fd(2)2478 9410 y Fl(;)g(:)h(:)f(:)g(;)g(v)2894 9427 y Fh(n)2979 9410 y Fi(\))37 b Fn(is)g(true.)-296 9649 y(Con)-6 b(v)n(ersely)c(,)33 b(if)f Fl(p)i Fn(has)f(a)h(satisfying)e(assignment,)h(we)h(construct)e (a)i(CDT)-450 9831 y(of)49 b Fl(P)71 b Fn(as)51 b(follo)l(ws.)82 b(T)-5 b(riangulate)49 b(each)h(bit)f Fl(b)1964 9848 y Fh(i)2066 9831 y Fn(to)g(match)h(the)f(v)l(alue)h(of)f Fl(v)3498 9848 y Fh(i)-450 10013 y Fn(in)h(the)h(satisfying)f (assignment.)87 b(F)n(or)51 b(each)h(signal)e Fl(s)p Fn(,)k(triangulate)c(e)l(v)n(ery)-450 10195 y(bit)j(that)g(represents)h (either)f Fl(s)1166 10131 y Fh(t)1276 10195 y Fn(or)g Fl(s)1526 10131 y Fh(f)1659 10195 y Fn(to)h(match)g(the)g(v)l(alue)g (of)f Fl(s)p Fn(.)97 b(Then)-450 10377 y(tetrahedralize)37 b(each)h(g)o(ate)f(in)g(a)h(manner)f(conforming)f(to)g(its)h(bits.)-296 10616 y(W)-12 b(e)69 b(ha)m(v)n(e)f(thus)g(reduced)h(the)f(problem)g (of)g(circuit)g(satis\002ability)e(to)-450 10798 y(determining)49 b(whether)g(a)i(polyhedron)d Fl(P)72 b Fn(has)51 b(a)g(constrained)e (Delaunay)-450 10980 y(tetrahedralization.)3949 29 y Fm(4)183 b(Conclusion)3949 366 y Fn(One)36 b(unfortunate)d(property)h (of)i(our)f(construction)e(is)i(that)g Fl(P)57 b Fn(is)36 b(not)e(a)i(sim-)3949 548 y(ple)42 b(polyhedron;)h(rather)-6 b(,)43 b(it)f(has)h(a)g(lar)m(ge)f(genus.)62 b(Although)40 b(the)i(separate)3949 730 y(wires)52 b(play)f(an)i(essential)e(part)h (in)f(the)h(proof,)j(the)d(holes)f(between)h(them)3949 911 y(do)39 b(not.)53 b(Perhaps)39 b(we)h(could)f(augment)g Fl(P)61 b Fn(to)39 b(yield)f(a)i(simple)f(polyhedron)3949 1093 y(by)c(af)l(\002xing)f(additional)f(v)m(olume)h(to)h(the)f (triangular)f(f)o(aces)j(of)f(the)f(g)o(ates,)j(or)3949 1275 y(by)42 b(some)g(other)f(method,)i(b)m(ut)e(it)h(remains)g(an)g (open)g(problem.)60 b(Ne)l(v)n(erthe-)3949 1457 y(less,)39 b(our)e(construction)e(as)j(it)f(stands)h(is)f(suf)l(\002cient)g(to)g (end)h(an)n(y)f(hope)h(for)f(a)3949 1639 y(polynomial-time)f(algorithm) g(that)h(constructs)g(a)h(CDT)g(of)g(an)n(y)g(piece)l(wise)3949 1820 y(linear)f(comple)n(x)g(that)f(has)i(one.)4103 2002 y(It)60 b(is)h(interesting)e(to)i(speculate)g(on)g(whether)g(there)g (are)g(an)n(y)g(natural)3949 2184 y(problems)e(in)f(tw)o(o-dimensional) f(geometry)h(that)h(are)h(NP-hard)e(in)h(\223de-)3949 2366 y(generate\224)38 b(cases,)h(b)m(ut)d(solv)l(able)h(in)g (polynomial)e(time)i(otherwise.)3949 2783 y Fm(References)3949 3120 y Fn([1])76 b(Herbert)55 b(Edelsbrunner)f(and)h(Ernst)g(Peter)h(M) 6714 3119 y(\250)6702 3120 y(uck)o(e.)111 b Fk(Simulation)52 b(of)4200 3301 y(Simplicity:)43 b(A)36 b(T)-14 b(ec)n(hnique)35 b(to)g(Cope)g(with)f(De)-6 b(g)o(ener)n(ate)35 b(Cases)h(in)f(Ge-)4200 3483 y(ometric)44 b(Algorithms)p Fn(.)74 b(A)-6 b(CM)43 b(T)-5 b(ransactions)43 b(on)h(Graphics)f Fc(9)p Fn(\(1\):66\226)4200 3665 y(104,)37 b(1990.)3949 3980 y([2])76 b(V)-19 b(.)46 b(T)-11 b(.)46 b(Rajan.)80 b Fk(Optimality)43 b(of)i(the)g(Delaunay)g (T)-8 b(riangulation)42 b(in)i Fa(R)7840 3916 y Fh(d)7913 3980 y Fn(.)4200 4162 y(Proceedings)k(of)f(the)h(Se)l(v)n(enth)f (Annual)g(Symposium)g(on)g(Computa-)4200 4343 y(tional)36 b(Geometry)-10 b(,)38 b(pages)f(357\226363,)f(1991.)3949 4658 y([3])76 b(Jim)48 b(Ruppert)e(and)i(Raimund)e(Seidel.)87 b Fk(On)48 b(the)f(Dif)m(\002culty)f(of)h(T)-8 b(rian-)4200 4840 y(gulating)31 b(Thr)-6 b(ee-Dimensional)32 b(Noncon)-6 b(ve)m(x)34 b(P)-12 b(olyhedr)n(a)p Fn(.)45 b(Discrete)34 b(&)4200 5022 y(Computational)h(Geometry)i Fc(7)p Fn(\(3\):227\226253,) d(1992.)3949 5336 y([4])76 b(E.)46 b(Sch)4610 5335 y(\250)4598 5336 y(onhardt.)5210 5304 y Fk(\250)5172 5336 y(Uber)g(die)f(Zerle)-6 b(gung)45 b(von)g(Dr)-6 b(eiec)m(kspolyedern)47 b(in)4200 5518 y(Tetr)n(aeder)p Fn(.)55 b(Mathematische)37 b(Annalen)g Fc(98)p Fn(:309\226312,)d(1928.)3949 5833 y([5])76 b(Jonathan)53 b(Richard)g(She)l(wchuk.)105 b Fk(Mesh)55 b(Gener)n(ation)c(for)i (Domains)4200 6015 y(with)39 b(Small)f(Angles)p Fn(.)62 b(Proceedings)40 b(of)f(the)h(Sixteenth)e(Annual)h(Sym-)4200 6196 y(posium)28 b(on)g(Computational)e(Geometry)i(\(Hong)g(K)-5 b(ong\),)29 b(pages)g(1\22610.)4200 6378 y(Association)36 b(for)h(Computing)e(Machinery)-10 b(,)37 b(June)h(2000.)3949 6693 y([6])p 4200 6693 449 7 v 550 w(.)305 b Fk(Sweep)115 b(Algorithms)f(for)i(Constructing)d(Higher)m(-)4200 6875 y(Dimensional)44 b(Constr)n(ained)g(Delaunay)h(T)-8 b(riangulations)p Fn(.)78 b(Proceed-)4200 7056 y(ings)62 b(of)g(the)g(Sixteenth)f(Annual) g(Symposium)h(on)g(Computational)4200 7238 y(Geometry)33 b(\(Hong)g(K)-5 b(ong\),)33 b(pages)h(350\226359.)e(Association)g(for)h (Com-)4200 7420 y(puting)j(Machinery)-10 b(,)37 b(June)g(2000.)3949 7735 y([7])p 4200 7735 V 550 w(.)53 b Fk(What)36 b(Is)h(a)g(Good)f (Linear)g(Element?)46 b(Interpolation,)34 b(Con-)4200 7917 y(ditioning)o(,)e(and)h(Quality)f(Measur)-6 b(es)p Fn(.)49 b(Ele)l(v)n(enth)33 b(International)f(Mesh-)4200 8098 y(ing)62 b(Roundtable)f(\(Ithaca,)70 b(Ne)l(w)63 b(Y)-16 b(ork\),)69 b(pages)63 b(115\226126.)e(Sandia)4200 8280 y(National)36 b(Laboratories,)h(September)h(2002.)3949 8595 y([8])76 b(Shayne)66 b(W)-12 b(aldron.)142 b Fk(The)66 b(Err)-7 b(or)66 b(in)f(Linear)g(Interpolation)d(at)i(the)4200 8777 y(V)-17 b(ertices)53 b(of)e(a)g(Simple)m(x)p Fn(.)100 b(SIAM)51 b(Journal)f(on)i(Numerical)f(Analysis)4200 8959 y Fc(35)p Fn(\(3\):1191\2261200,)34 b(1998.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF