# # This module contains some fast operations on subsets of a finite # universe represented as the type %bN of boolean random access # trees. E.g., a universe {`a,`b,`c,`d} could have a subset {`b,`d} # which would be represented by the tree [2:1: true,2:3: true]. # # Copyright (C) 2006 Dennis Furey # # addresses (262) # cardinality (109) # contains (61) # contains_element (83) # contains_set (377) # dot_l (45) # dot_r (45) # intersecting (73) # intersection (80) # intersection_with (613) # leaves (280) # remover_of (487) # representation (1966) # rtree (335) # semantics (545) # subtraction (70) # subtractor_of (776) # union (53) # union_with (562) # # # 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; either version 2, or (at your option) # any later version. # # 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 # # compressed with granularity 53 # {iwiwWKwNnoZpJjwZnvkjh{jGfYONwGzzjgeOPvon{jrodvN`IKfnzsh{NINnwiNnof[zqjwHgLnXke @nGHhSgOkdphp`dNV{JiGD\axppkv]=DjcFpvzrAODzFiGwZ\GnngLpgxKjGmz`fipsZgEi=`pGOf{K dA=x^RyTnoZnXdF\y?PiJoxhmW^uuWnhsdngKfOLPIHpv\BVhgIpkGJozihf_kLjgOvkkfd]Hov>h_IpX^RgGYGGnowfe?HzfiCEeQOGkRFRRhqvfn=?HffNadHnk FZRhgNscZnd\LfFlHrfH^oYFPqgiS{Znf>f@ayfLqNvnunQJA{[YwNff@y@fFJy?OQwwQcyU[[YWJfg KtFipX_GXGEzJ\M{aU[C{{zlfffoQ>enVOGYah{UNlSsLUXt[pSi{ZpffegDfeV??_vZqQPt]cyX_c\ @[tcyc{sZqFflvff?GJcA?F\dwL=CwQ\=Bd[p`[cLScyysgFfhvxfNHjaElpYBJCxuvMSu{[YwIRkp`=hh_p?_FeRe[YqZCcrX]Cpp=ZXfhnM[gccxxe[tayEy {zIAPoQQKowxOY^mXLOH=T@uZtM[f]EZ{FSpLQE{{[PqQQQOH_SIhPnPL={tT^S\Mzm[N[ssNfhpiPzp_QEmVp?cs\zuPErCpM[a_klEYtcyCyHoGPn@\YGwqN]y[EOJ\ Fat@R=CoyFOLApIDB[ylBSfKD qqGyptHrvW]b\OL?Aw?`Pa?eHf]E>@wn=>hSFk\MgP`mXqs[ROgqOkyPoJly xyEPSDRk@>BS\=O_NEPQuMOY=RRk^x{SADP>no[QIePYV[Kl?YI<sKv_@ph {a@p`q@vHrxmSJkhk^uuL@biNf{?E[qDfe?xXejSToxJXjHu?ESGasAkYoNf?[oH>yV_A`sF^SBRBS< xcKhxwo_PaXZP=F^cV@R@qH>GA\^LCQOhjqFLeLfZg nMOxder\NeiH^N@?DpFLeNJ>kMwX c@]Ev]VDFp>WrvILudZXqO_rlQtwmDsssqAOps{@{xeR[RP{?rdcmNoOjs<^of>Xq@RFxeHf>@@fd@\^ndX`^L<