bns.avm 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #
  2. # This module contains some fast operations on subsets of a finite
  3. # universe represented as the type %bN of boolean random access
  4. # trees. E.g., a universe {`a,`b,`c,`d} could have a subset {`b,`d}
  5. # which would be represented by the tree [2:1: true,2:3: true].
  6. #
  7. # Copyright (C) 2006 Dennis Furey
  8. #
  9. # addresses (262)
  10. # cardinality (109)
  11. # contains (61)
  12. # contains_element (83)
  13. # contains_set (377)
  14. # dot_l (45)
  15. # dot_r (45)
  16. # intersecting (73)
  17. # intersection (80)
  18. # intersection_with (613)
  19. # leaves (280)
  20. # remover_of (487)
  21. # representation (1966)
  22. # rtree (335)
  23. # semantics (545)
  24. # subtraction (70)
  25. # subtractor_of (776)
  26. # union (53)
  27. # union_with (562)
  28. #
  29. #
  30. # This program is free software; you can redistribute it and/or modify
  31. # it under the terms of the GNU General Public License as published by
  32. # the Free Software Foundation; either version 2, or (at your option)
  33. # any later version.
  34. #
  35. # This program is distributed in the hope that it will be useful,
  36. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  37. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  38. # GNU General Public License for more details.
  39. #
  40. # You should have received a copy of the GNU General Public License
  41. # along with this program; if not, write to the Free Software Foundation,
  42. # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  43. #
  44. # compressed with granularity 53
  45. #
  46. {iwiwWKwNnoZpJjwZnvkjh{jGfYONwGzzjgeOPvon{jrodvN`IKfnzsh{NINnwiNnof[zqjwHgLnXke
  47. @nGHhSgOkdphp`dNV{JiGD\axppkv]=DjcFpvzrAODzFiGwZ\GnngLpgxKjGmz`fipsZgEi=`pGOf{K
  48. dA=x^RyTnoZnXdF\y?PiJoxhmW^uuWnhsdngKfOLPIHpv\BVhgIpkGJozi<gHn\`pA?P^gFqIGflEpw
  49. OZdF`Fz\`pD>hf_kLjgOvkkfd]Hov>h_IpX^RgGYGGnowfe?HzfiCEeQOGkRFRRhqvfn=?HffNadHnk
  50. FZRhgNscZnd\LfFlHrfH^oYFPqgiS{Znf>f@ayfLqNvnunQJA{[YwNff@y@fFJy?OQwwQcyU[[YWJfg
  51. KtFipX_GXGEzJ\M{aU[C{{zlfffoQ>enVOGYah{UNlSsLUXt[pSi{ZpffegDfeV??_vZqQPt]cyX_c\
  52. @[tcyc{sZqFflvff?GJcA?F\dwL=CwQ\=Bd[p`[cLScyysgFfhvxfNHjaElpYBJCxuvM<SvdAlvcrCz
  53. [ssZiFrkGNN\n{iJDXa<@S][xDayTU{uhR@C{>Su{[YwIRkp`=hh_p?_FeRe[YqZCcrX]Cpp<EDav^a
  54. {hSu{[Y{Phpfe@oxiLzWdScctndrh<h[WDus^NBSfNSklE[wAz[s{RlIGPoLpoGQ?yFe`L>=ZXfhn<E
  55. qc<@wltu{Guzxou{S<a{^Su{[[TqIQQ=PnDFxmmMVUyUKfxtqX=Nn<<=zL<\[Of<>M[gccxxe[tayEy
  56. {zIAPoQQKowxOY^mXLOH=T@uZt<EZ?A_l_ct_l>M[f]EZ{FSpLQE{{[PqQQQOH_SIhPnP<aIBCyXCcj
  57. [<bp<BCwH?ctoKcwOeE[FpT[a{{ZPqQQQNDgAaIpW`n@cyiMQWDGAzA<Mz?\T[e<<\[riGu{]n@Cz[c
  58. y{YqFqPqQ<FrNOQ@kv^[p]@dg<>L<fEZz=Ct?AuXv<>={tT^S\Mzm[N[ssNfhpiPzp_QE<Ch<=jwNPX
  59. zJ[CN^S\cyLS?AzstUZdS\ay=az[szgOHno@o`aICp={a?<Xxn>mVp?cs\zuP<cx{RrJ[`a{cx\asbS
  60. u{SpqQQFiBmTl{j>ErCp<U\EplGA\@[iJZ?{WJoy\<[act>M[a_klEYtcyCyHoGPn@\YGwqN]y[EOJ\
  61. F<a@S`i<@[BNoyjopEZdMZJ[z_@pwTwx\Sp={FnoIQFwFyKTNhVkxYF=xfcx`rCnLOP?NozJS\tx=]y
  62. i]I?P_@pvU{ucwFpsIH?yLsa[H<MGoQX<OG\`[iF=ADJf@@{N>at@R=CoyFOLApIDB[ylBSf<oPo>KD
  63. qqGyptHrvW]b<fCrFJ^o<KHnRKNNEYhvF>\OL?Aw?<UznqPfIOMRNWSzS<{KKKoDMAo\KHfppF@RnJE
  64. GKmt\\cwj=CuAGHAN_P_o{GSOguLPJ_zi>`Pa?eHf]E><u=GuH{\SaCJCpoL\]GISWsyUKK<AFglxy<
  65. =tFI<xln@\oNLoDEySTBC`NbJIaCIVqlQa\s[zXGwv<DBk\>@wn=>hSFk\MgP`mXqs[ROgqOkyPoJly
  66. xyEPSDRk@>BS\=O_NEPQuMOY=RRk^x{SADP>no[QIePYV[Kl?YI<<L@uSGGOgqLymVyJmN\>sKv_@ph
  67. {a@p`q@vHrxmSJkhk^uuL@biNf{?E[qDfe?xXejSToxJXjHu?ESGasAkYoNf?[oH>yV_A`sF^SBRBS<
  68. xcKhxwo_PaXZP=F^cV@R@qH><dp^hpNHuEIHp_PnKX<pxjH\x<{YoOSYtNF@>GA\^LCQOhjqFLeLfZg
  69. nMOxder\NeiH^<np\XfcLcL><kMyl?PTOSIYs]EwL]R?d=XanT^hfPFaZz]FbqN>N@?DpFLeNJ>kMwX
  70. c@]Ev]VDFp><x\^hpp^RlEEC\<<NDtJGlxbas@Xa=Mck_lnNJUHRYlg<MQMMXHnMbcNh<APypajK[LA
  71. q_khqOSX>WrvILudZXqO_rlQtwmDsssqAOps{@{xeR[RP{?rdcmNoOjs<^of><ENnzyPgvXBo^zCIJh
  72. ?[XVY]KoHc_FdNeMreIQH>Xq@RFxeHf>@@fd@\^nd<A<d_\<>X`^L<