h3_bloom_filter.cc revision 14262
114262Sodanrc@yahoo.com.br/* 214262Sodanrc@yahoo.com.br * Copyright (c) 2019 Inria 314262Sodanrc@yahoo.com.br * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 414262Sodanrc@yahoo.com.br * All rights reserved. 514262Sodanrc@yahoo.com.br * 614262Sodanrc@yahoo.com.br * Redistribution and use in source and binary forms, with or without 714262Sodanrc@yahoo.com.br * modification, are permitted provided that the following conditions are 814262Sodanrc@yahoo.com.br * met: redistributions of source code must retain the above copyright 914262Sodanrc@yahoo.com.br * notice, this list of conditions and the following disclaimer; 1014262Sodanrc@yahoo.com.br * redistributions in binary form must reproduce the above copyright 1114262Sodanrc@yahoo.com.br * notice, this list of conditions and the following disclaimer in the 1214262Sodanrc@yahoo.com.br * documentation and/or other materials provided with the distribution; 1314262Sodanrc@yahoo.com.br * neither the name of the copyright holders nor the names of its 1414262Sodanrc@yahoo.com.br * contributors may be used to endorse or promote products derived from 1514262Sodanrc@yahoo.com.br * this software without specific prior written permission. 1614262Sodanrc@yahoo.com.br * 1714262Sodanrc@yahoo.com.br * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1814262Sodanrc@yahoo.com.br * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1914262Sodanrc@yahoo.com.br * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2014262Sodanrc@yahoo.com.br * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2114262Sodanrc@yahoo.com.br * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2214262Sodanrc@yahoo.com.br * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2314262Sodanrc@yahoo.com.br * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2414262Sodanrc@yahoo.com.br * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2514262Sodanrc@yahoo.com.br * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2614262Sodanrc@yahoo.com.br * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2714262Sodanrc@yahoo.com.br * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2814262Sodanrc@yahoo.com.br * 2914262Sodanrc@yahoo.com.br * Authors: Daniel Carvalho 3014262Sodanrc@yahoo.com.br */ 3114262Sodanrc@yahoo.com.br 3214262Sodanrc@yahoo.com.br#include "base/filters/h3_bloom_filter.hh" 3314262Sodanrc@yahoo.com.br 3414262Sodanrc@yahoo.com.br#include <limits> 3514262Sodanrc@yahoo.com.br 3614262Sodanrc@yahoo.com.br#include "base/bitfield.hh" 3714262Sodanrc@yahoo.com.br#include "base/logging.hh" 3814262Sodanrc@yahoo.com.br#include "params/BloomFilterH3.hh" 3914262Sodanrc@yahoo.com.br 4014262Sodanrc@yahoo.com.brnamespace BloomFilter { 4114262Sodanrc@yahoo.com.br 4214262Sodanrc@yahoo.com.brstatic int H3Matrix[64][16] = { 4314262Sodanrc@yahoo.com.br { 33268410, 395488709, 311024285, 456111753, 4414262Sodanrc@yahoo.com.br 181495008, 119997521, 220697869, 433891432, 4514262Sodanrc@yahoo.com.br 755927921, 515226970, 719448198, 349842774, 4614262Sodanrc@yahoo.com.br 269183649, 463275672, 429800228, 521598937, }, 4714262Sodanrc@yahoo.com.br 4814262Sodanrc@yahoo.com.br { 628677802, 820947732, 809435975, 1024657192, 4914262Sodanrc@yahoo.com.br 887631270, 412050215, 391365090, 324227279, 5014262Sodanrc@yahoo.com.br 318338329, 1038393087, 489807930, 387366128, 5114262Sodanrc@yahoo.com.br 518096428, 324184340, 429376066, 447109279, }, 5214262Sodanrc@yahoo.com.br 5314262Sodanrc@yahoo.com.br { 599747653, 404960623, 103933604, 946416030, 5414262Sodanrc@yahoo.com.br 656460913, 925957005, 1047665689, 163552053, 5514262Sodanrc@yahoo.com.br 88359290, 841315415, 899833584, 1067336680, 5614262Sodanrc@yahoo.com.br 348549994, 464045876, 270252128, 829897652, }, 5714262Sodanrc@yahoo.com.br 5814262Sodanrc@yahoo.com.br { 215495230, 966696438, 82589012, 750102795, 5914262Sodanrc@yahoo.com.br 909780866, 920285789, 769759214, 331966823, 6014262Sodanrc@yahoo.com.br 939936006, 439950703, 883794828, 1009277508, 6114262Sodanrc@yahoo.com.br 61634610, 741444350, 98689608, 524144422, }, 6214262Sodanrc@yahoo.com.br 6314262Sodanrc@yahoo.com.br { 93868534, 196958667, 774076619, 327921978, 6414262Sodanrc@yahoo.com.br 122538783, 879785030, 690748527, 3498564, 6514262Sodanrc@yahoo.com.br 83163077, 1027963025, 582088444, 466152216, 6614262Sodanrc@yahoo.com.br 312424878, 550064499, 646612667, 561099434, }, 6714262Sodanrc@yahoo.com.br 6814262Sodanrc@yahoo.com.br { 1002047931, 395477707, 821317480, 890482112, 6914262Sodanrc@yahoo.com.br 697094476, 263813044, 840275189, 469664185, 7014262Sodanrc@yahoo.com.br 795625845, 211504898, 99204277, 1004491153, 7114262Sodanrc@yahoo.com.br 725930417, 1064479221, 893834767, 839719181, }, 7214262Sodanrc@yahoo.com.br 7314262Sodanrc@yahoo.com.br { 278507126, 985111995, 706462983, 1042178726, 7414262Sodanrc@yahoo.com.br 123281719, 963778122, 500881056, 726291104, 7514262Sodanrc@yahoo.com.br 134293026, 568379664, 317050609, 533470307, 7614262Sodanrc@yahoo.com.br 1022365922, 197645211, 315125721, 634827678, }, 7714262Sodanrc@yahoo.com.br 7814262Sodanrc@yahoo.com.br { 219227366, 553960647, 870169525, 322232839, 7914262Sodanrc@yahoo.com.br 508322497, 648672696, 249405795, 883596102, 8014262Sodanrc@yahoo.com.br 476433133, 541372919, 646647793, 1042679515, 8114262Sodanrc@yahoo.com.br 43242483, 600187508, 499866821, 135713210, }, 8214262Sodanrc@yahoo.com.br 8314262Sodanrc@yahoo.com.br { 52837162, 96966684, 401840460, 1071661176, 8414262Sodanrc@yahoo.com.br 733560065, 150035417, 341319946, 811582750, 8514262Sodanrc@yahoo.com.br 636173904, 519054065, 196321433, 1028294565, 8614262Sodanrc@yahoo.com.br 882204070, 522965093, 48884074, 117810166, }, 8714262Sodanrc@yahoo.com.br 8814262Sodanrc@yahoo.com.br { 650860353, 789534698, 328813544, 473250022, 8914262Sodanrc@yahoo.com.br 143128306, 173196006, 846958825, 174632187, 9014262Sodanrc@yahoo.com.br 683273509, 405459497, 787235556, 773873501, 9114262Sodanrc@yahoo.com.br 240110267, 426797736, 92043842, 711789240, }, 9214262Sodanrc@yahoo.com.br 9314262Sodanrc@yahoo.com.br { 586637493, 5059646, 398035664, 6686087, 9414262Sodanrc@yahoo.com.br 498300175, 948278148, 681227731, 592751744, 9514262Sodanrc@yahoo.com.br 572019677, 558044722, 589368271, 695745538, 9614262Sodanrc@yahoo.com.br 1073416749, 529192035, 550984939, 1070620580, }, 9714262Sodanrc@yahoo.com.br 9814262Sodanrc@yahoo.com.br { 102904663, 647598516, 758863940, 313426443, 9914262Sodanrc@yahoo.com.br 76504114, 1050747783, 708436441, 563815069, 10014262Sodanrc@yahoo.com.br 224107668, 875925186, 167675944, 926209739, 10114262Sodanrc@yahoo.com.br 279737287, 1040288182, 768184312, 371708956, }, 10214262Sodanrc@yahoo.com.br 10314262Sodanrc@yahoo.com.br { 683968868, 1027427757, 180781926, 742898864, 10414262Sodanrc@yahoo.com.br 624078545, 645659833, 577225838, 987150210, 10514262Sodanrc@yahoo.com.br 723410002, 224013421, 993286634, 33188488, 10614262Sodanrc@yahoo.com.br 247264323, 888018697, 38048664, 189037096, }, 10714262Sodanrc@yahoo.com.br 10814262Sodanrc@yahoo.com.br { 475612146, 426739285, 873726278, 529192871, 10914262Sodanrc@yahoo.com.br 607715202, 388486246, 987001312, 474493980, 11014262Sodanrc@yahoo.com.br 259747270, 417465536, 217062395, 392858482, 11114262Sodanrc@yahoo.com.br 563810075, 137852805, 1051814153, 72895217, }, 11214262Sodanrc@yahoo.com.br 11314262Sodanrc@yahoo.com.br { 71277086, 785496675, 500608842, 89633426, 11414262Sodanrc@yahoo.com.br 274085706, 248467935, 838061983, 48106147, 11514262Sodanrc@yahoo.com.br 773662506, 49545328, 9071573, 100739031, 11614262Sodanrc@yahoo.com.br 602018002, 904371654, 534132064, 332211304, }, 11714262Sodanrc@yahoo.com.br 11814262Sodanrc@yahoo.com.br { 401893602, 735125342, 775548339, 210224843, 11914262Sodanrc@yahoo.com.br 256081130, 482894412, 350801633, 1035713633, 12014262Sodanrc@yahoo.com.br 429458128, 327281409, 739927752, 359327650, 12114262Sodanrc@yahoo.com.br 886942880, 847691759, 752417993, 359445596, }, 12214262Sodanrc@yahoo.com.br 12314262Sodanrc@yahoo.com.br { 267472014, 1050659620, 1068232362, 1049684368, 12414262Sodanrc@yahoo.com.br 17130239, 690524969, 793224378, 14455158, 12514262Sodanrc@yahoo.com.br 423092885, 873853424, 430535778, 7867877, 12614262Sodanrc@yahoo.com.br 309731959, 370260786, 862353083, 403906850, }, 12714262Sodanrc@yahoo.com.br 12814262Sodanrc@yahoo.com.br { 993077283, 218812656, 389234651, 393202875, 12914262Sodanrc@yahoo.com.br 413116501, 263300295, 470013158, 592730725, 13014262Sodanrc@yahoo.com.br 441847172, 732392823, 407574059, 875664777, 13114262Sodanrc@yahoo.com.br 271347307, 792954404, 554774761, 1022424300, }, 13214262Sodanrc@yahoo.com.br 13314262Sodanrc@yahoo.com.br { 675919719, 637054073, 784720745, 149714381, 13414262Sodanrc@yahoo.com.br 813144874, 502525801, 635436670, 1003196587, 13514262Sodanrc@yahoo.com.br 160786091, 947509775, 969788637, 26854073, 13614262Sodanrc@yahoo.com.br 257964369, 63898568, 539767732, 772364518, }, 13714262Sodanrc@yahoo.com.br 13814262Sodanrc@yahoo.com.br { 943076868, 1021732472, 697575075, 15843624, 13914262Sodanrc@yahoo.com.br 617573396, 534113303, 122953324, 964873912, 14014262Sodanrc@yahoo.com.br 942995378, 87830944, 1012914818, 455484661, 14114262Sodanrc@yahoo.com.br 592160054, 599844284, 810394353, 836812568, }, 14214262Sodanrc@yahoo.com.br 14314262Sodanrc@yahoo.com.br { 688992674, 279465370, 731582262, 687883235, 14414262Sodanrc@yahoo.com.br 438178468, 80493001, 342701501, 663561405, 14514262Sodanrc@yahoo.com.br 23360106, 531315007, 508931618, 36294623, 14614262Sodanrc@yahoo.com.br 231216223, 840438413, 255665680, 663205938, }, 14714262Sodanrc@yahoo.com.br 14814262Sodanrc@yahoo.com.br { 857265418, 552630887, 8173237, 792122963, 14914262Sodanrc@yahoo.com.br 210140052, 823124938, 667709953, 751538219, 15014262Sodanrc@yahoo.com.br 991957789, 462064153, 19070176, 726604748, 15114262Sodanrc@yahoo.com.br 714567823, 151147895, 1012619677, 697114353, }, 15214262Sodanrc@yahoo.com.br 15314262Sodanrc@yahoo.com.br { 467105652, 683256174, 702387467, 28730434, 15414262Sodanrc@yahoo.com.br 549942998, 48712701, 960519696, 1008345587, 15514262Sodanrc@yahoo.com.br 679267717, 370932249, 880419471, 352141567, 15614262Sodanrc@yahoo.com.br 331640403, 598772468, 95160685, 812053015, }, 15714262Sodanrc@yahoo.com.br 15814262Sodanrc@yahoo.com.br { 1053491323, 430526562, 1014938507, 109685515, 15914262Sodanrc@yahoo.com.br 765949103, 177288303, 1034642653, 485421658, 16014262Sodanrc@yahoo.com.br 71850281, 981034542, 61620389, 601367920, 16114262Sodanrc@yahoo.com.br 504420930, 220599168, 583051998, 158735752, }, 16214262Sodanrc@yahoo.com.br 16314262Sodanrc@yahoo.com.br { 103033901, 522494916, 658494760, 959206022, 16414262Sodanrc@yahoo.com.br 931348143, 834510661, 21542994, 189699884, 16514262Sodanrc@yahoo.com.br 679327018, 171983002, 96774168, 456133168, 16614262Sodanrc@yahoo.com.br 543103352, 923945936, 970074188, 643658485, }, 16714262Sodanrc@yahoo.com.br 16814262Sodanrc@yahoo.com.br { 566379913, 805798263, 840662512, 820206124, 16914262Sodanrc@yahoo.com.br 796507494, 223712542, 118811519, 662246595, 17014262Sodanrc@yahoo.com.br 809326534, 416471323, 748027186, 161169753, 17114262Sodanrc@yahoo.com.br 739149488, 276330378, 924837051, 964873733, }, 17214262Sodanrc@yahoo.com.br 17314262Sodanrc@yahoo.com.br { 585882743, 135502711, 3386031, 625631285, 17414262Sodanrc@yahoo.com.br 1068193307, 270342640, 432739484, 556606453, 17514262Sodanrc@yahoo.com.br 826419155, 1038540977, 158000202, 69109538, 17614262Sodanrc@yahoo.com.br 207087256, 298111218, 678046259, 184611498, }, 17714262Sodanrc@yahoo.com.br 17814262Sodanrc@yahoo.com.br { 305310710, 46237988, 855726974, 735975153, 17914262Sodanrc@yahoo.com.br 930663798, 425764232, 104362407, 391371443, 18014262Sodanrc@yahoo.com.br 867622101, 71645091, 61824734, 661902640, 18114262Sodanrc@yahoo.com.br 293738633, 309416189, 281710675, 879317360, }, 18214262Sodanrc@yahoo.com.br 18314262Sodanrc@yahoo.com.br { 398146324, 398293087, 689145387, 1038451703, 18414262Sodanrc@yahoo.com.br 521637478, 516134620, 314658937, 830334981, 18514262Sodanrc@yahoo.com.br 583400300, 340083705, 68029852, 675389876, 18614262Sodanrc@yahoo.com.br 994635780, 788959180, 406967042, 74403607, }, 18714262Sodanrc@yahoo.com.br 18814262Sodanrc@yahoo.com.br { 69463153, 744427484, 191639960, 590927798, 18914262Sodanrc@yahoo.com.br 969916795, 546846769, 728756758, 889355646, 19014262Sodanrc@yahoo.com.br 520855076, 136068426, 776132410, 189663815, 19114262Sodanrc@yahoo.com.br 252051082, 533662856, 362198652, 1026161384, }, 19214262Sodanrc@yahoo.com.br 19314262Sodanrc@yahoo.com.br { 584984279, 1004834381, 568439705, 834508761, 19414262Sodanrc@yahoo.com.br 21812513, 670870173, 1052043300, 341868768, 19514262Sodanrc@yahoo.com.br 473755574, 124339439, 36193947, 437997647, 19614262Sodanrc@yahoo.com.br 137419489, 58705193, 337793711, 340738909, }, 19714262Sodanrc@yahoo.com.br 19814262Sodanrc@yahoo.com.br { 898051466, 512792906, 234874060, 655358775, 19914262Sodanrc@yahoo.com.br 683745319, 671676404, 428888546, 639928192, 20014262Sodanrc@yahoo.com.br 672697722, 176477579, 747020991, 758211282, 20114262Sodanrc@yahoo.com.br 443045009, 205395173, 1016944273, 5584717, }, 20214262Sodanrc@yahoo.com.br 20314262Sodanrc@yahoo.com.br { 156038300, 138620174, 588466825, 1061494056, 20414262Sodanrc@yahoo.com.br 1013672100, 1064257198, 881417791, 839470738, 20514262Sodanrc@yahoo.com.br 83519030, 100875683, 237486447, 461483733, 20614262Sodanrc@yahoo.com.br 681527127, 777996147, 574635362, 815974538, }, 20714262Sodanrc@yahoo.com.br 20814262Sodanrc@yahoo.com.br { 184168473, 519509808, 62531892, 51821173, 20914262Sodanrc@yahoo.com.br 43787358, 385711644, 141325169, 36069511, 21014262Sodanrc@yahoo.com.br 584183031, 571372909, 671503175, 226486781, 21114262Sodanrc@yahoo.com.br 194932686, 1045460970, 753718579, 331442433, }, 21214262Sodanrc@yahoo.com.br 21314262Sodanrc@yahoo.com.br { 73065106, 1015327221, 630916840, 1058053470, 21414262Sodanrc@yahoo.com.br 306737587, 296343219, 907194989, 920172546, 21514262Sodanrc@yahoo.com.br 224516225, 818625553, 551143849, 634570650, 21614262Sodanrc@yahoo.com.br 432966225, 756438259, 939564853, 767999933, }, 21714262Sodanrc@yahoo.com.br 21814262Sodanrc@yahoo.com.br { 884775648, 394862257, 446787794, 219833788, 21914262Sodanrc@yahoo.com.br 727195727, 728122304, 249888353, 732947974, 22014262Sodanrc@yahoo.com.br 289908868, 448282580, 618161877, 898939716, 22114262Sodanrc@yahoo.com.br 739554163, 860631799, 1058977530, 86916736, }, 22214262Sodanrc@yahoo.com.br 22314262Sodanrc@yahoo.com.br { 143850006, 352708694, 200194048, 979764914, 22414262Sodanrc@yahoo.com.br 629404175, 546279766, 72106714, 860980514, 22514262Sodanrc@yahoo.com.br 313190585, 897143111, 308425797, 953791785, 22614262Sodanrc@yahoo.com.br 349924906, 221457005, 950588925, 908254505, }, 22714262Sodanrc@yahoo.com.br 22814262Sodanrc@yahoo.com.br { 950032043, 829868728, 68623614, 714624605, 22914262Sodanrc@yahoo.com.br 69760597, 297275854, 355894016, 985369737, 23014262Sodanrc@yahoo.com.br 882852618, 864071289, 958512902, 950910111, 23114262Sodanrc@yahoo.com.br 991368991, 829645051, 434698210, 771350575, }, 23214262Sodanrc@yahoo.com.br 23314262Sodanrc@yahoo.com.br { 552695074, 319195551, 80297396, 496413831, 23414262Sodanrc@yahoo.com.br 944046531, 621525571, 617653363, 416729825, 23514262Sodanrc@yahoo.com.br 441842808, 9847464, 99420657, 1033914550, 23614262Sodanrc@yahoo.com.br 812966458, 937053011, 673390195, 934577365, }, 23714262Sodanrc@yahoo.com.br 23814262Sodanrc@yahoo.com.br { 1034695843, 190969665, 332900185, 51897434, 23914262Sodanrc@yahoo.com.br 523888639, 883512843, 146908572, 506785674, 24014262Sodanrc@yahoo.com.br 565814307, 692255649, 314052926, 826386588, 24114262Sodanrc@yahoo.com.br 430691325, 866927620, 413880214, 936474339, }, 24214262Sodanrc@yahoo.com.br 24314262Sodanrc@yahoo.com.br { 129380164, 741739952, 1013703462, 494392795, 24414262Sodanrc@yahoo.com.br 957214600, 1010879043, 931790677, 94551922, 24514262Sodanrc@yahoo.com.br 988065869, 120637871, 882506912, 395075379, 24614262Sodanrc@yahoo.com.br 210570485, 812422692, 910383687, 817722285, }, 24714262Sodanrc@yahoo.com.br 24814262Sodanrc@yahoo.com.br { 51850866, 283408630, 1053047202, 858940389, 24914262Sodanrc@yahoo.com.br 818507731, 477082181, 353546901, 993324368, 25014262Sodanrc@yahoo.com.br 407093779, 231608253, 1067319867, 73159811, 25114262Sodanrc@yahoo.com.br 429792535, 971320614, 565699344, 718823399, }, 25214262Sodanrc@yahoo.com.br 25314262Sodanrc@yahoo.com.br { 408185106, 491493570, 596050720, 310776444, 25414262Sodanrc@yahoo.com.br 703628192, 454438809, 523988035, 728512200, 25514262Sodanrc@yahoo.com.br 686012353, 976339656, 72816924, 116926720, 25614262Sodanrc@yahoo.com.br 165866591, 452043792, 866943072, 968545481, }, 25714262Sodanrc@yahoo.com.br 25814262Sodanrc@yahoo.com.br { 443231195, 905907843, 1061421320, 746360489, 25914262Sodanrc@yahoo.com.br 1043120338, 1069659155, 463359031, 688303227, 26014262Sodanrc@yahoo.com.br 186550710, 155347339, 1044842421, 1005904570, 26114262Sodanrc@yahoo.com.br 69332909, 706951903, 422513657, 882038450, }, 26214262Sodanrc@yahoo.com.br 26314262Sodanrc@yahoo.com.br { 430990623, 946501980, 742556791, 278398643, 26414262Sodanrc@yahoo.com.br 183759217, 659404315, 279754382, 1069347846, 26514262Sodanrc@yahoo.com.br 843746517, 222777670, 990835599, 548741637, 26614262Sodanrc@yahoo.com.br 129220580, 1392170, 1032654091, 894058935, }, 26714262Sodanrc@yahoo.com.br 26814262Sodanrc@yahoo.com.br { 452042227, 751640705, 259481376, 765824585, 26914262Sodanrc@yahoo.com.br 145991469, 1013683228, 1055491225, 536379588, 27014262Sodanrc@yahoo.com.br 392593350, 913368594, 1029429776, 226857786, 27114262Sodanrc@yahoo.com.br 31505342, 1054416381, 32341741, 687106649, }, 27214262Sodanrc@yahoo.com.br 27314262Sodanrc@yahoo.com.br { 404750944, 811417027, 869530820, 773491060, 27414262Sodanrc@yahoo.com.br 810901282, 979340397, 1036910290, 461764404, 27514262Sodanrc@yahoo.com.br 834235095, 765695033, 604692390, 452158120, 27614262Sodanrc@yahoo.com.br 928988098, 442719218, 1024059719, 167723114, }, 27714262Sodanrc@yahoo.com.br 27814262Sodanrc@yahoo.com.br { 974245177, 1046377300, 1003424287, 787349855, 27914262Sodanrc@yahoo.com.br 336314155, 875074696, 1018462718, 890313003, 28014262Sodanrc@yahoo.com.br 367376809, 86355556, 1020618772, 890710345, 28114262Sodanrc@yahoo.com.br 444741481, 373230261, 767064947, 840920177, }, 28214262Sodanrc@yahoo.com.br 28314262Sodanrc@yahoo.com.br { 719581124, 431808156, 138301690, 668222575, 28414262Sodanrc@yahoo.com.br 497413494, 740492013, 485033226, 125301442, 28514262Sodanrc@yahoo.com.br 831265111, 879071459, 341690480, 152975256, 28614262Sodanrc@yahoo.com.br 850330086, 717444507, 694225877, 785340566, }, 28714262Sodanrc@yahoo.com.br 28814262Sodanrc@yahoo.com.br { 1032766252, 140959364, 737474726, 1062767538, 28914262Sodanrc@yahoo.com.br 364464647, 331414723, 356152634, 642832379, 29014262Sodanrc@yahoo.com.br 158733632, 374691640, 285504811, 345349905, 29114262Sodanrc@yahoo.com.br 876599880, 476392727, 479589210, 606376325, }, 29214262Sodanrc@yahoo.com.br 29314262Sodanrc@yahoo.com.br { 174997730, 778177086, 319164313, 163614456, 29414262Sodanrc@yahoo.com.br 10331364, 599358958, 8331663, 237538058, 29514262Sodanrc@yahoo.com.br 159173957, 174533880, 65588684, 878222844, 29614262Sodanrc@yahoo.com.br 424467599, 901803515, 187504218, 776690353, }, 29714262Sodanrc@yahoo.com.br 29814262Sodanrc@yahoo.com.br { 803856182, 965850321, 694948067, 218315960, 29914262Sodanrc@yahoo.com.br 358416571, 683713254, 178069303, 428076035, 30014262Sodanrc@yahoo.com.br 686176454, 579553217, 357306738, 315018080, 30114262Sodanrc@yahoo.com.br 886852373, 568563910, 896839725, 257416821, }, 30214262Sodanrc@yahoo.com.br 30314262Sodanrc@yahoo.com.br { 401650013, 183289141, 497957228, 879734476, 30414262Sodanrc@yahoo.com.br 265024455, 825794561, 889237440, 323359863, 30514262Sodanrc@yahoo.com.br 100258491, 991414783, 313986632, 85847250, 30614262Sodanrc@yahoo.com.br 362520248, 276103512, 1041630342, 525981595, }, 30714262Sodanrc@yahoo.com.br 30814262Sodanrc@yahoo.com.br { 487732740, 46201705, 990837834, 62744493, 30914262Sodanrc@yahoo.com.br 1067364756, 58015363, 690846283, 680262648, 31014262Sodanrc@yahoo.com.br 997278956, 469357861, 432164624, 996763915, 31114262Sodanrc@yahoo.com.br 211907847, 167824295, 144928194, 454839915, }, 31214262Sodanrc@yahoo.com.br 31314262Sodanrc@yahoo.com.br { 41404232, 514493300, 259546924, 578217256, 31414262Sodanrc@yahoo.com.br 972345130, 123299213, 346040332, 1014668104, 31514262Sodanrc@yahoo.com.br 520910639, 579955198, 36627803, 179072921, 31614262Sodanrc@yahoo.com.br 547684341, 598950511, 269497394, 854352266, }, 31714262Sodanrc@yahoo.com.br 31814262Sodanrc@yahoo.com.br { 603906768, 100863318, 708837659, 204175569, 31914262Sodanrc@yahoo.com.br 375560904, 908375384, 28314106, 6303733, 32014262Sodanrc@yahoo.com.br 175283124, 749851198, 308667367, 415293931, 32114262Sodanrc@yahoo.com.br 225365403, 1032188331, 977112710, 819705229, }, 32214262Sodanrc@yahoo.com.br 32314262Sodanrc@yahoo.com.br { 399767123, 697985692, 356790426, 643687584, 32414262Sodanrc@yahoo.com.br 298624218, 185095167, 381653926, 876816342, 32514262Sodanrc@yahoo.com.br 296720023, 2205879, 235816616, 521850105, 32614262Sodanrc@yahoo.com.br 622753786, 1021421218, 726349744, 256504902, }, 32714262Sodanrc@yahoo.com.br 32814262Sodanrc@yahoo.com.br { 851245024, 1022500222, 511909628, 313809625, 32914262Sodanrc@yahoo.com.br 99776025, 39710175, 798739932, 741832408, 33014262Sodanrc@yahoo.com.br 140631966, 898295927, 607660421, 870669312, 33114262Sodanrc@yahoo.com.br 1051422478, 789055529, 669113756, 681943450, }, 33214262Sodanrc@yahoo.com.br 33314262Sodanrc@yahoo.com.br { 853872755, 491465269, 503341472, 98019440, 33414262Sodanrc@yahoo.com.br 258267420, 335602837, 320687824, 1053324395, 33514262Sodanrc@yahoo.com.br 24932389, 955011453, 934255131, 435625663, 33614262Sodanrc@yahoo.com.br 501568768, 238967025, 549987406, 248619780, }, 33714262Sodanrc@yahoo.com.br 33814262Sodanrc@yahoo.com.br { 411151284, 576471205, 757985419, 544137226, 33914262Sodanrc@yahoo.com.br 968135693, 877548443, 194586894, 74882373, 34014262Sodanrc@yahoo.com.br 248353663, 21207540, 273789651, 853653916, 34114262Sodanrc@yahoo.com.br 861267970, 533253322, 3739570, 661358586, }, 34214262Sodanrc@yahoo.com.br 34314262Sodanrc@yahoo.com.br { 271430986, 71390029, 257643671, 949329860, 34414262Sodanrc@yahoo.com.br 348156406, 251939238, 445808698, 48269799, 34514262Sodanrc@yahoo.com.br 907589462, 105677619, 635451508, 20805932, 34614262Sodanrc@yahoo.com.br 464874661, 7542147, 243619464, 288304568, }, 34714262Sodanrc@yahoo.com.br 34814262Sodanrc@yahoo.com.br { 368215982, 530288964, 770090421, 660961164, 34914262Sodanrc@yahoo.com.br 614935537, 630760399, 931299233, 794519275, 35014262Sodanrc@yahoo.com.br 779918979, 401746493, 561237006, 1027202224, 35114262Sodanrc@yahoo.com.br 258968003, 339508073, 1050610516, 1064307013, }, 35214262Sodanrc@yahoo.com.br 35314262Sodanrc@yahoo.com.br { 1039172162, 448331205, 928997884, 49813151, 35414262Sodanrc@yahoo.com.br 198712120, 992335354, 671024050, 879525220, 35514262Sodanrc@yahoo.com.br 745915336, 1038822580, 138669665, 917958819, 35614262Sodanrc@yahoo.com.br 681422342, 792868818, 924762727, 816386174, }, 35714262Sodanrc@yahoo.com.br 35814262Sodanrc@yahoo.com.br { 515190336, 313808618, 441296783, 1022120897, 35914262Sodanrc@yahoo.com.br 792325033, 354387581, 59273006, 280075434, 36014262Sodanrc@yahoo.com.br 411357221, 665274694, 4054464, 1059046246, 36114262Sodanrc@yahoo.com.br 394261773, 848616745, 15446017, 517723271, }, 36214262Sodanrc@yahoo.com.br}; 36314262Sodanrc@yahoo.com.br 36414262Sodanrc@yahoo.com.brH3::H3(const BloomFilterH3Params* p) 36514262Sodanrc@yahoo.com.br : MultiBitSel(p) 36614262Sodanrc@yahoo.com.br{ 36714262Sodanrc@yahoo.com.br fatal_if(numHashes > 16, "There are only 16 H3 functions implemented."); 36814262Sodanrc@yahoo.com.br} 36914262Sodanrc@yahoo.com.br 37014262Sodanrc@yahoo.com.brH3::~H3() 37114262Sodanrc@yahoo.com.br{ 37214262Sodanrc@yahoo.com.br} 37314262Sodanrc@yahoo.com.br 37414262Sodanrc@yahoo.com.brint 37514262Sodanrc@yahoo.com.brH3::hash(Addr addr, int hash_number) const 37614262Sodanrc@yahoo.com.br{ 37714262Sodanrc@yahoo.com.br uint64_t val = 37814262Sodanrc@yahoo.com.br bits(addr, std::numeric_limits<Addr>::digits - 1, offsetBits); 37914262Sodanrc@yahoo.com.br int result = 0; 38014262Sodanrc@yahoo.com.br 38114262Sodanrc@yahoo.com.br for (int i = 0; (i < 64) && val; i++, val >>= 1) { 38214262Sodanrc@yahoo.com.br if (val & 1) { 38314262Sodanrc@yahoo.com.br result ^= H3Matrix[i][hash_number]; 38414262Sodanrc@yahoo.com.br } 38514262Sodanrc@yahoo.com.br } 38614262Sodanrc@yahoo.com.br 38714262Sodanrc@yahoo.com.br if (isParallel) { 38814262Sodanrc@yahoo.com.br return (result % parFilterSize) + hash_number * parFilterSize; 38914262Sodanrc@yahoo.com.br } else { 39014262Sodanrc@yahoo.com.br return result % filter.size(); 39114262Sodanrc@yahoo.com.br } 39214262Sodanrc@yahoo.com.br} 39314262Sodanrc@yahoo.com.br 39414262Sodanrc@yahoo.com.br} // namespace BloomFilter 39514262Sodanrc@yahoo.com.br 39614262Sodanrc@yahoo.com.brBloomFilter::H3* 39714262Sodanrc@yahoo.com.brBloomFilterH3Params::create() 39814262Sodanrc@yahoo.com.br{ 39914262Sodanrc@yahoo.com.br return new BloomFilter::H3(this); 40014262Sodanrc@yahoo.com.br} 40114262Sodanrc@yahoo.com.br 402