# # This module contains some operations on lattices. Most depend on the # assumption that the lattice has a single root. # # Copyright (C) 2007-2010 Dennis Furey # # bwi (1045) # edges (273) # fswi (2623) # fwi (2447) # grid (8385) # ldis (576) # ldiz (372) # levels (360) # lfold (595) # lmap (535) # lnodes (369) # lzip (686) # sever (1058) # swi (2682) # # compressed with granularity 91 # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA # {iwiwNiwwhsizpgKwqQghooZhbQEoJaxsiaZEWKFnwyVRcnkjhEXppjzp\QFcWnvxiksVsgh\tIG>R\ vsIxgNkseMgG>wP{OckQeFfpkqjVERahoDlwCIgQRPkoVowMNAkOfvOwAiEJXhg[GOKkzfIWWKr^Wsa Vj_Kp^kQdp>N{IwogpxgKMKZfQQ`eML[nfriPvhgRw[FIENIoV{\fKnkI\_b>[p^p`ukOgKvxgzfEti J@oIPNxl^FkKM[gYFlnh[KowOQdoOJTvvxfmUNnDo]DdawGI@InOgnS`ki[{Hc^fQOEhwG`sL<]vMZauCwC{[HvNDhgnXuOHdL[gMpmaTP`^XsYOQiL=Bj[FSnAqcy[yxn NpnAEoDPiE]IQN={mNH]Nv?KFbRoug_^=B=iJ[aecjeyNS{y[yQQILPOQ<]zkIKAI@pDKP=cEN AMdBn@CTL[pqGIQD=DvSHzCWs`cyLy_gAaKRjoQXiwQrXnZo^UqSMIQIQqQOOQQm GMqiYXFWdE{TaiP^i`y]Ou?mtrARWPas]xaQKcPiIIOIPqNQGNuLcz>oSN=SqXyGqqCrU wab?RpQPdiogm{dSQJVwRiCAPiQQWNrJNELAuacyQMDP^ NHiQGOGQPkHT[zo\yPP>gu\oMZs>YNSNyWmS^KpJrIKfcWqRqjTg`qQQHpnpCPSQ<][fWqU`_{Qk<@f {UtvnjSgFWzSZ`ndmShfxmINQQPOj=ZGjpaIaZ?LhVP JXwMqM]E@qPqOOJ\cYFH[q>`xsRqvLfhYIn_=O`TXIA]XAjQR=WA{iRUPCWjAH@pVbKl{QRfsHeNMJ]_KsGeYJADO= NQRYoINfxclB[\B`uJu[qQ`jSTkPkCoA{T`zvQNbHKqVE^EMSDQ@=d{WOsOoaMYphgOnTn\MzHwgQkQ rbQDSO=EUHl{VXbWyozs[cN=HzXIS^PZ^PcUuEMka?O_yXnoGNXxg]zJ`v{PVaYES_PPbrARJ>oStF{kq?bSsDlQN yEbps>JOmKiV@qPqSS\pKOPq@eIroG]NUMYwYb pDug`pqNmQaFQ=ckMGAycujqto{ZzvSkJ{coDa{Pi[p@tQL=EL\zNPtsGPNaNYLSIqiNxG\@wyY@pG ebhoPBE^[adSqcvy=[qkRkwxyXrs[PaxNezvlmYJRYFW`cVdQI\<NCwluQJvHSiwM]PcRqg{{KO_Xtpfll=PwlOgmXFLo=IojV< aw\HCpnfuS?qEUSOMOLGzwFxoyIA[qOc>SnLmxI=yHK[AywWJ]YbolpJoQsS[wzPcHwqIOSDztpmGSQ bl>lSQH]cmMHZuQbftqaPqQ?PHkiwwlikZA?AqjLy[FSl\MTIbL\=Z`pZD_aYaZg^fO@ELAm[wQMPpdCOh^OQiMMeUTN^L@VlhyogkaGkaHp[U[F qkmOTjMu?qjLjMtd@wuOM`u[`\mz]zPp@E?ct_=z\x{`= CrLUZEOxhbRMqQNPuUEpx@dJ`V>a=wPwH_dP^qpWSNQtqQPwLKkqeH\pMaUDl[vDhE[LnCx]OFjMNY] kLDy[NioquxnxM{Loj=AtlatZP{P^[FJ[zkNNsI`yJM]gmo]MePa>D__eMh@inGVPIOf[HTIOyLJOhA FSE>agqDhcuOM{FkG{a{s?t`E{X{?l^@SBNCu{a U{LJjXygpqLWNWOCyzYAP=MYAO`]APqH=zuqVq=Ar<@A_n>HxSKnuNq=RPwNvAoKhqfdbrytqgIQFptDCj<tEwesQ_ht@\UzkuylhttfLjxH`Cn`QI]ZGOU@[zCvUy\LHZtDD?\PsQWqudb_KAdegNE`z?RqANNDhS]yn[qOSKLGkCvDEz@Lqcy@I >mxSAyPTSJ^C_zCDlS{G= @K^@S\zSdTmZqFcn\SQE^Wz^?A{d^DU\=@[HsBMkLQAOj@Eo\Na =\]>zyHSFTdUx>>S_\OqH?P^Phr^=MSYa`EM@`Wv?zaNELS]Xnal Nd\DLJ]^y`jElRQSSAOKtcY>]`<`S`DPHETQJqSqQEUCZ?Ogzq=CkHD@eI>NHRTEuyOcnaDFN?PnQVYzF`mJH\h]>WR?SQ>CwfR =HSFHMZTMA_wPlEnMHrKv?T[D@cXDLNdQpesLP?v^eLA=`vTIDLK\GlRK`nL_t^pgxN\_twlxn[ect=AvctD[^ctHS\cv]ZF[^] ZnS]ezA=z`atB[]]ZB[_=ZJ[^LSaau@c`GxFx