Geant4_10
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
source
source
processes
hadronic
models
inclxx
utils
include
G4INCLHashing.hh
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// INCL++ intra-nuclear cascade model
27
// Pekka Kaitaniemi, CEA and Helsinki Institute of Physics
28
// Davide Mancusi, CEA
29
// Alain Boudard, CEA
30
// Sylvie Leray, CEA
31
// Joseph Cugnon, University of Liege
32
//
33
#define INCLXX_IN_GEANT4_MODE 1
34
35
#include "
globals.hh
"
36
44
#ifndef G4INCLHASHING_HH_
45
#define G4INCLHASHING_HH_
46
47
#ifdef INCLXX_IN_GEANT4_MODE
48
#define INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_Set 1
49
#endif // INCLXX_IN_GEANT4_MODE
50
51
#ifdef INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_HashMask
52
53
#include <algorithm>
54
#include <numeric>
55
#include <climits>
56
// #include <cassert>
57
58
namespace
G4INCL {
59
60
namespace
Hashing {
61
62
typedef
G4int
NucleonItem;
63
64
// the C++ standard guarantees that unsigned long is at least 32-bit long
65
typedef
unsigned
long
HashType;
66
67
/* Depending on the size of the HashType type, we use 32-bit or 64-bit
68
* binary masks. 64-bit masks guarantee lower collision rates (about a
69
* factor of 3). Checks are done using compile-time constants defined in
70
* the standard <climits> header.
71
*/
72
73
namespace
{
74
const
G4int
maskTableSize = 500;
75
HashType mask[maskTableSize] = {
76
#if ULONG_MAX >= 18446744073709551615UL // 2^64-1
77
// unsigned longs have at least 64 bits here
78
4702504706864814267UL,
79
15867743096752998125UL,
80
1925133831785711339UL,
81
3063678697824149615UL,
82
3234475698548538313UL,
83
7917662962824220875UL,
84
9924018995951912525UL,
85
4682901166658838314UL,
86
981361508296534881UL,
87
18376824469534567556UL,
88
5343971687892173674UL,
89
10169451505660710328UL,
90
7865786236744900341UL,
91
10279352445822536091UL,
92
7089630702066408548UL,
93
4808534960882600398UL,
94
12538238618753707399UL,
95
16091508301730012097UL,
96
14073498192850855514UL,
97
9966250765115558375UL,
98
5718582854016674314UL,
99
5837057680281951483UL,
100
1596870119086046964UL,
101
15866877264435719977UL,
102
12743659579234384899UL,
103
13589152059793213451UL,
104
3364441792317801205UL,
105
17190534087980602002UL,
106
2252844317879582875UL,
107
16883577324406774376UL,
108
15985239218161130895UL,
109
3661288085782215193UL,
110
17294313791381397188UL,
111
9405115097872546015UL,
112
2834208340246893214UL,
113
15589349083551097162UL,
114
7475687940900359446UL,
115
2706367355862311522UL,
116
17987211229193808759UL,
117
6863833750504706813UL,
118
3685392250678121047UL,
119
11759380240055300923UL,
120
13403449794574083242UL,
121
1985973959990096358UL,
122
15223952677867744295UL,
123
6118509595165778043UL,
124
815155895778500187UL,
125
18185573450595916074UL,
126
5501350898920817482UL,
127
382043392356382894UL,
128
7212372096396984419UL,
129
17216082813533838272UL,
130
11664929762302443627UL,
131
12742534429666211769UL,
132
10885936672907243422UL,
133
7408809357861601856UL,
134
7235809803254354851UL,
135
10923449527984005964UL,
136
11846584293234382222UL,
137
10656509822128626836UL,
138
2129734486054336774UL,
139
4595091378435214061UL,
140
9874818728883580365UL,
141
5946304945334907747UL,
142
10039693308935676801UL,
143
13281974385330546238UL,
144
18100260506304059768UL,
145
2874169620796400411UL,
146
7108218580097801290UL,
147
1609767302727070556UL,
148
11296708194993589343UL,
149
13937355006285948174UL,
150
4714440178991372538UL,
151
16551309706022489963UL,
152
10000176812340548792UL,
153
11878058786115320873UL,
154
17227685596830233118UL,
155
6913194524255335692UL,
156
8581157771211862326UL,
157
7692516248830269819UL,
158
4834805303668841320UL,
159
17683695285788382628UL,
160
3163270552620053128UL,
161
7501354178009882428UL,
162
18032292064795682158UL,
163
14903091228667847945UL,
164
12658813769564311973UL,
165
11071671991853641692UL,
166
1898680911275368123UL,
167
11850012838739454071UL,
168
11605340059702017433UL,
169
1993475538032240150UL,
170
14225643076178260981UL,
171
6073746146812460969UL,
172
10427646200541715974UL,
173
8534830515125041658UL,
174
12137748989343460832UL,
175
401619354176178507UL,
176
10566842722928406433UL,
177
2726007197202736953UL,
178
12070986965363522186UL,
179
14306741808513945796UL,
180
9411600548893210409UL,
181
10677814577847517837UL,
182
2524629524427176799UL,
183
13769537677295179355UL,
184
2202164469715649820UL,
185
18048299992904550974UL,
186
11620367199819191275UL,
187
12863789957300408274UL,
188
9470331939464407385UL,
189
1530202837192022943UL,
190
8835064955139736011UL,
191
8145200231008682998UL,
192
7839809942742909916UL,
193
9138434136821323472UL,
194
14559393378324131957UL,
195
17365140272468484867UL,
196
12986052322695094991UL,
197
15032117076709947810UL,
198
3710476151324188272UL,
199
1301282554894996635UL,
200
10667152340954078766UL,
201
6983777770664759713UL,
202
16611664140947488647UL,
203
12136122930610106551UL,
204
15900825787656229127UL,
205
10248132639811024681UL,
206
11698219706208598358UL,
207
12307261434875431124UL,
208
14365082098869236341UL,
209
7765033571440697089UL,
210
14810290195054154855UL,
211
9618298383970391972UL,
212
5541541247731255102UL,
213
16567733959804019203UL,
214
17600930129818672877UL,
215
5232016726685772558UL,
216
226023602797856284UL,
217
3268675878373668427UL,
218
15412168229420758040UL,
219
9483353024934253554UL,
220
12957711733854877641UL,
221
13202855362863795860UL,
222
14659098127488639325UL,
223
5642266569510167780UL,
224
8405185641276686415UL,
225
12567678120796482638UL,
226
5572663458795121052UL,
227
11292924459778654315UL,
228
12907130784326268258UL,
229
2781503111506861655UL,
230
14052031913630628463UL,
231
7662091316495917798UL,
232
12388345726433231307UL,
233
2855096782092770172UL,
234
143760647337486211UL,
235
5268378935483038729UL,
236
14347085534022186031UL,
237
8226804542313416051UL,
238
503042565036387930UL,
239
13277939264481364629UL,
240
4807934385534294767UL,
241
6554792055682376182UL,
242
3505789456125861647UL,
243
17485983928210687457UL,
244
6551825177685364660UL,
245
6530399878351375719UL,
246
11618616536378075323UL,
247
8710939588645435621UL,
248
15913776342681996234UL,
249
12975832615100357766UL,
250
11385194348110364656UL,
251
7334273726237402463UL,
252
18215307287507846020UL,
253
108052987233117093UL,
254
14819872198639686030UL,
255
7651108032227837181UL,
256
7326148382022660565UL,
257
15520843621422491193UL,
258
14890169031248899249UL,
259
3302880341533628710UL,
260
17509231796729795392UL,
261
6938974810266312299UL,
262
9904104728819873047UL,
263
10277854813228565819UL,
264
8062859346560164933UL,
265
11953220042241400520UL,
266
8905905195342696566UL,
267
8620925171331846539UL,
268
15354008279539346333UL,
269
16255477929425666651UL,
270
15625465014312179739UL,
271
6560194503171884780UL,
272
458508474659358201UL,
273
11178141379033004711UL,
274
7025589002713530514UL,
275
6196040542056180472UL,
276
1771599404396005753UL,
277
490848885681539136UL,
278
15438702070227423706UL,
279
8790555204480314499UL,
280
6572556090639551862UL,
281
3282457245646221158UL,
282
4239195535437592000UL,
283
16001734625059485025UL,
284
14396081511655033925UL,
285
10261432601192522025UL,
286
9247260218125952769UL,
287
16080570631414044686UL,
288
15656989589485934942UL,
289
10761254633620277391UL,
290
1363122333823743651UL,
291
14847079675279608117UL,
292
6077849015756077442UL,
293
15290828636077500470UL,
294
220281240092237795UL,
295
15760968530563963031UL,
296
1364939791854189821UL,
297
5997510653682588941UL,
298
2006088633984038082UL,
299
1383498232486134285UL,
300
17859041093815211104UL,
301
15894184107946313879UL,
302
18173079296415961736UL,
303
3443997055549483358UL,
304
5294019672823936930UL,
305
1341830676613088487UL,
306
581727297735446503UL,
307
18219577357392561487UL,
308
17639313299012264080UL,
309
14222133713791167321UL,
310
5879505043799386532UL,
311
7557129766625449226UL,
312
13360075610958017985UL,
313
12724115904336527780UL,
314
16753075547920915484UL,
315
4116411708112171871UL,
316
16025692682808517910UL,
317
4003328942103420939UL,
318
9811320057930109787UL,
319
3576072849789367484UL,
320
17075748046009610792UL,
321
12833406223291392866UL,
322
9648248336540660688UL,
323
17476583957989300837UL,
324
16827359136787046510UL,
325
4345039153564047180UL,
326
1224716260729000059UL,
327
13959598322342824445UL,
328
10743140873520517726UL,
329
13340880620026565045UL,
330
9192556363923792986UL,
331
3841907957831078749UL,
332
246438482871824834UL,
333
4260787342534664069UL,
334
17100720253388227686UL,
335
11544966922599678750UL,
336
9293075407897592921UL,
337
1610905992411273162UL,
338
2239787421847352995UL,
339
15182496755963432304UL,
340
1823665993529743824UL,
341
7263153004799849282UL,
342
11497980475724160945UL,
343
1274355111868335897UL,
344
15057972526005432563UL,
345
11823052640709049475UL,
346
15927429045819933119UL,
347
14618154733049321749UL,
348
16861991482751749049UL,
349
5936874228331837512UL,
350
15290754097890487720UL,
351
9191375772889979508UL,
352
6816129633576113785UL,
353
12923817606396645484UL,
354
8875993281327238816UL,
355
123714282527043508UL,
356
7179882084825590703UL,
357
3925024599322075567UL,
358
2426048646574757412UL,
359
10665962527629258587UL,
360
12646312850531314143UL,
361
528129165734836933UL,
362
3701120955488573646UL,
363
15861534485058814280UL,
364
14022467189115595098UL,
365
9502851142036471883UL,
366
12432213096681522867UL,
367
751500370320404802UL,
368
1606345595406828785UL,
369
10313713517508959984UL,
370
6565609239876268324UL,
371
8654149379457545096UL,
372
6548830896464452248UL,
373
1464368532414012445UL,
374
4302937696445584032UL,
375
17063664947863781419UL,
376
8038577586991861682UL,
377
10951259595021013980UL,
378
7709630466255725074UL,
379
609806407111517279UL,
380
13860208046684354033UL,
381
15140303568956907423UL,
382
4803057729274452412UL,
383
4367455766719288283UL,
384
320027280359511727UL,
385
16020877306388137190UL,
386
3764882323315346488UL,
387
11972546313392727283UL,
388
7977601566213555124UL,
389
15148378244947865280UL,
390
4483722253329626321UL,
391
16560836625841776840UL,
392
14666077208671482135UL,
393
9298193298119711211UL,
394
12015014023744623893UL,
395
10191703760489555596UL,
396
1316913070589847725UL,
397
15881746492947991011UL,
398
13665807677473998048UL,
399
14390309917106480591UL,
400
17231567872468478469UL,
401
4562957401728953232UL,
402
11501454621029854493UL,
403
10252134323451005656UL,
404
12021948387925309670UL,
405
3525149157835967069UL,
406
10292558937206299109UL,
407
13725724605985217856UL,
408
175033751151696127UL,
409
14720951489402332470UL,
410
11927624343611332814UL,
411
567437266624809204UL,
412
14161392585443694227UL,
413
8725463779420655722UL,
414
12063468735510140344UL,
415
12026523736635889408UL,
416
16565599419781878456UL,
417
7086470817660744490UL,
418
14809513609573064984UL,
419
10898762682820885052UL,
420
13982083571459739493UL,
421
15656618354974864372UL,
422
4239583100143107224UL,
423
4322769551545487304UL,
424
13825585217369415084UL,
425
5136324433139686016UL,
426
8179080547263771206UL,
427
8279259187088296150UL,
428
6381371846375303738UL,
429
3142014871877744388UL,
430
3417815453103862427UL,
431
5556557018553548625UL,
432
7788492627093668219UL,
433
2446537327809742760UL,
434
7165731799178534002UL,
435
10969060298437286606UL,
436
16392640790529049402UL,
437
4905600830298563047UL,
438
12442106640046578583UL,
439
7139041375816724964UL,
440
18098103947732186633UL,
441
2078238351823174321UL,
442
9929562085097862277UL,
443
14231090695955652612UL,
444
16914810114016502414UL,
445
9172887937989634160UL,
446
10057184693043820912UL,
447
8739867056556181319UL,
448
1879322488574672564UL,
449
6706469496298082633UL,
450
17962793280504692541UL,
451
2796622365685518391UL,
452
14206454203780509608UL,
453
11911505185092294091UL,
454
13188421404411005493UL,
455
1002631262698104372UL,
456
16116424222649594941UL,
457
731059841323644991UL,
458
16630196285890835221UL,
459
6275370517569960592UL,
460
2762335813606797964UL,
461
1550415195017045798UL,
462
8084777285994689863UL,
463
4858045103923411134UL,
464
13517076072140006105UL,
465
16656029182431041189UL,
466
6076064496187725305UL,
467
15281271591975529160UL,
468
2275428871306187428UL,
469
15396744606475751109UL,
470
15460778948302864604UL,
471
6107847787338713474UL,
472
9357621545767658217UL,
473
4805014239018879550UL,
474
17869119773972988965UL,
475
17868495682315323441UL,
476
10660808254721474616UL,
477
7308276872489783138UL,
478
4234856545479982050UL,
479
1223334879029033304UL,
480
10995800624761949288UL,
481
16283797325974965665UL,
482
12410167362078398820UL,
483
12918484557456873081UL,
484
14423314551522087679UL,
485
4967867692111402622UL,
486
16197846038770304940UL,
487
11809884480603742831UL,
488
16802686488973843640UL,
489
2354077987008574056UL,
490
9978003576519895777UL,
491
5506048811554826358UL,
492
18433781523380564149UL,
493
4302137793340917657UL,
494
978195094879846769UL,
495
2377823329880292548UL,
496
3464291122006072777UL,
497
18046845603455616162UL,
498
13944776942598500463UL,
499
4000590694056817931UL,
500
496833875371241644UL,
501
16247695245933522501UL,
502
1505779951058046438UL,
503
11430822963532124358UL,
504
4729903064888922231UL,
505
8864507718425611027UL,
506
14643598183997536338UL,
507
4480511581250357378UL,
508
11133239898726463704UL,
509
17471052555928421508UL,
510
15541989708583753235UL,
511
7461560065837635158UL,
512
13956421526574063689UL,
513
3743280538841219763UL,
514
12020611143801404565UL,
515
6618703997501212010UL,
516
3729371474666129836UL,
517
17869245751809494685UL,
518
1833331385744685838UL,
519
1506104207003999508UL,
520
8158509169843256229UL,
521
10212507222875597491UL,
522
7211593336579637715UL,
523
14341253648497092530UL,
524
4511202703905924031UL,
525
8043833010361144102UL,
526
2512875450160943286UL,
527
18235665817864664213UL,
528
8317446467730476132UL,
529
11182884000969346056UL,
530
548357546399462395UL,
531
1960628024952592835UL,
532
4650095513901192085UL,
533
12679676177772217157UL,
534
3487733703240934135UL,
535
6446640077094538365UL,
536
1114715573562175630UL,
537
16622874083185883281UL,
538
17081932748524927392UL,
539
17192402071367355968UL,
540
15013800339030843048UL,
541
3718961432784285989UL,
542
14953817216655866296UL,
543
11410118254031919487UL,
544
17718071771819733200UL,
545
6970769915355275987UL,
546
14244261541942962860UL,
547
295778071941084510UL,
548
553041658124347434UL,
549
571128341496031343UL,
550
6867891970504820807UL,
551
16515587447694198371UL,
552
3932569386063656416UL,
553
15542525920467376967UL,
554
4513384432419818675UL,
555
7336705434792969335UL,
556
1342984449178439078UL,
557
10672151960711459277UL,
558
11668091039787926587UL,
559
15308742994910314323UL,
560
8337161158579684228UL,
561
5390473811288298369UL,
562
444117188512458090UL,
563
8602531868090961223UL,
564
1632809043568697774UL,
565
11829254858211213981UL,
566
4634227867572760505UL,
567
16086237486731074061UL,
568
4844172753138751369UL,
569
4992022238300904271UL,
570
11132360655811360102UL,
571
11660714643785469458UL,
572
2468480999090126185UL,
573
10912054708474512716UL,
574
12659667168896228555UL,
575
11988368921832936489UL,
576
5116996783249524791UL,
577
253818271896405507UL
578
#else // ULONG_MAX >= 18446744073709551615
579
// unsigned longs have less than 64 bits here
580
4218046471UL,
581
1917139952UL,
582
2103556369UL,
583
1588695878UL,
584
4215491346UL,
585
216507845UL,
586
2296134958UL,
587
1868314761UL,
588
3228779327UL,
589
1785085484UL,
590
4228225705UL,
591
1165369009UL,
592
3142089765UL,
593
431503981UL,
594
3369606777UL,
595
745480828UL,
596
2744780773UL,
597
689045082UL,
598
1900506313UL,
599
2497498204UL,
600
368683604UL,
601
2225005389UL,
602
781333974UL,
603
4132002528UL,
604
2847677322UL,
605
343783736UL,
606
2901322050UL,
607
3337243677UL,
608
1665993590UL,
609
233599841UL,
610
1022462535UL,
611
1680112766UL,
612
500144658UL,
613
3013714463UL,
614
1102944137UL,
615
424404167UL,
616
1616048503UL,
617
3058072676UL,
618
2626558419UL,
619
2270217197UL,
620
1042360030UL,
621
1406615072UL,
622
2817651072UL,
623
3066388841UL,
624
3595996753UL,
625
2530300747UL,
626
1068533293UL,
627
3850615434UL,
628
2000952241UL,
629
500251219UL,
630
2785863467UL,
631
116749905UL,
632
2534901578UL,
633
2762569636UL,
634
441176494UL,
635
3611264136UL,
636
708254627UL,
637
3107133154UL,
638
3498823450UL,
639
3710248321UL,
640
3408201403UL,
641
2483680087UL,
642
1593406496UL,
643
2358632005UL,
644
1113775647UL,
645
1296788200UL,
646
866750108UL,
647
1511795181UL,
648
2007682240UL,
649
1383572622UL,
650
2747177348UL,
651
751086457UL,
652
3862498228UL,
653
1330825518UL,
654
1893848486UL,
655
3716728436UL,
656
257714096UL,
657
1129572537UL,
658
3411765329UL,
659
1445308638UL,
660
1675128925UL,
661
1177771214UL,
662
610662193UL,
663
308703855UL,
664
3766028156UL,
665
2406778266UL,
666
1614133721UL,
667
3094138658UL,
668
644181699UL,
669
3585820756UL,
670
228354647UL,
671
3895845225UL,
672
837654579UL,
673
2423338235UL,
674
3626844735UL,
675
4004795529UL,
676
1966777404UL,
677
4099992662UL,
678
561993057UL,
679
478026097UL,
680
2726060916UL,
681
160900471UL,
682
4067242522UL,
683
2107667107UL,
684
2291883857UL,
685
3366222014UL,
686
804030225UL,
687
815232690UL,
688
4173469665UL,
689
3680594736UL,
690
1812916838UL,
691
953829049UL,
692
645064420UL,
693
893103776UL,
694
1484445384UL,
695
1704310224UL,
696
3169988691UL,
697
994674462UL,
698
3348302238UL,
699
420911742UL,
700
3997852732UL,
701
3006569532UL,
702
244288857UL,
703
3012303255UL,
704
3091414730UL,
705
3919806716UL,
706
815658776UL,
707
396540369UL,
708
2296675021UL,
709
3199014033UL,
710
2569108436UL,
711
3862344457UL,
712
4058338881UL,
713
1161706542UL,
714
2972997031UL,
715
2099532487UL,
716
160888949UL,
717
427549488UL,
718
3061518659UL,
719
66373532UL,
720
3444886884UL,
721
2530414305UL,
722
3380064368UL,
723
937051782UL,
724
1302891919UL,
725
2463653477UL,
726
3547879633UL,
727
2260320717UL,
728
832678359UL,
729
2453616965UL,
730
2193052461UL,
731
799622604UL,
732
3629014225UL,
733
1522933084UL,
734
2498150583UL,
735
1976833008UL,
736
1725662928UL,
737
1733324678UL,
738
3374380020UL,
739
818903650UL,
740
718472891UL,
741
411252729UL,
742
3187730653UL,
743
798673927UL,
744
1222802842UL,
745
1985038219UL,
746
1623995355UL,
747
2603784033UL,
748
4261727525UL,
749
3939193905UL,
750
2256923068UL,
751
507372076UL,
752
229897092UL,
753
3447212333UL,
754
1015331998UL,
755
1624914646UL,
756
3270616777UL,
757
1922996004UL,
758
2303929294UL,
759
3083527264UL,
760
3511924852UL,
761
651582997UL,
762
2830297570UL,
763
2541981492UL,
764
3229134142UL,
765
535111766UL,
766
2531439891UL,
767
1176474835UL,
768
1746643607UL,
769
196953906UL,
770
190859135UL,
771
1471944757UL,
772
3764050027UL,
773
2300961517UL,
774
1200836119UL,
775
1934885757UL,
776
1017153529UL,
777
864626426UL,
778
65215191UL,
779
3649915955UL,
780
2649000649UL,
781
3056185941UL,
782
2895789221UL,
783
2705123786UL,
784
3486894128UL,
785
1764275188UL,
786
800856520UL,
787
1121637219UL,
788
3470689154UL,
789
2031015368UL,
790
1799564405UL,
791
412027838UL,
792
3505785501UL,
793
819633830UL,
794
2841515279UL,
795
397789381UL,
796
3850545068UL,
797
4038096561UL,
798
702453020UL,
799
298184560UL,
800
1331143206UL,
801
3832472400UL,
802
483752162UL,
803
3365506546UL,
804
2403178818UL,
805
2588604760UL,
806
3630868707UL,
807
2672754775UL,
808
3834743541UL,
809
625254315UL,
810
3404805826UL,
811
2758773926UL,
812
3539158313UL,
813
1304746437UL,
814
4228336097UL,
815
1790470857UL,
816
2017211747UL,
817
2823780770UL,
818
1361022238UL,
819
2442638132UL,
820
3465700788UL,
821
2602256049UL,
822
61072285UL,
823
1290754848UL,
824
1365538365UL,
825
2885926246UL,
826
3366937675UL,
827
1976271220UL,
828
4274857987UL,
829
2846551234UL,
830
3730952612UL,
831
785655762UL,
832
2640747064UL,
833
2479569674UL,
834
2988213501UL,
835
238402214UL,
836
2736968438UL,
837
1273211556UL,
838
2993298676UL,
839
2076907296UL,
840
169664466UL,
841
3590743418UL,
842
2853715414UL,
843
1494116982UL,
844
3408636076UL,
845
1354085945UL,
846
2121174096UL,
847
557203192UL,
848
2005947221UL,
849
2790204730UL,
850
3673048078UL,
851
2710286579UL,
852
2759941695UL,
853
2554805430UL,
854
1565053908UL,
855
1516728908UL,
856
457211737UL,
857
4053842378UL,
858
1926452932UL,
859
121166907UL,
860
1884552326UL,
861
2050083102UL,
862
783329973UL,
863
1002934724UL,
864
2916755028UL,
865
1574390275UL,
866
4246041184UL,
867
112940213UL,
868
4213344814UL,
869
3831377539UL,
870
3593710048UL,
871
184196123UL,
872
62388243UL,
873
1824724968UL,
874
1553056630UL,
875
2471314862UL,
876
1580248726UL,
877
1641907471UL,
878
4182117804UL,
879
244827601UL,
880
2673787044UL,
881
1245428424UL,
882
1254024234UL,
883
1944146503UL,
884
2068525708UL,
885
1452126855UL,
886
1368763640UL,
887
2063660828UL,
888
306042674UL,
889
668216774UL,
890
2002594576UL,
891
3192370193UL,
892
4189750176UL,
893
1815590529UL,
894
2838559664UL,
895
3322933511UL,
896
708460425UL,
897
3093499804UL,
898
219970021UL,
899
2136064297UL,
900
1281979964UL,
901
3437613761UL,
902
544003806UL,
903
2998811936UL,
904
1481470929UL,
905
2880899873UL,
906
3617899122UL,
907
2269535287UL,
908
2964733041UL,
909
1437018425UL,
910
4136436935UL,
911
2892386937UL,
912
2312588208UL,
913
3470825412UL,
914
3048839250UL,
915
3124535567UL,
916
74106735UL,
917
740534715UL,
918
780483498UL,
919
1703009387UL,
920
3908417545UL,
921
2925498568UL,
922
570244170UL,
923
768611579UL,
924
2561901277UL,
925
3369289022UL,
926
298430172UL,
927
3399976658UL,
928
2781253163UL,
929
2203229433UL,
930
4083764265UL,
931
1813739940UL,
932
2495956219UL,
933
1733876904UL,
934
2961522297UL,
935
2806638528UL,
936
210215678UL,
937
3179651913UL,
938
3488143624UL,
939
2162063032UL,
940
2230441611UL,
941
3104777333UL,
942
1901009578UL,
943
2357529595UL,
944
1661659881UL,
945
2275001257UL,
946
1089779619UL,
947
1019581619UL,
948
3676689000UL,
949
2363224232UL,
950
3087179246UL,
951
2521585396UL,
952
1172580989UL,
953
3363959227UL,
954
1379171244UL,
955
2568664929UL,
956
2716951910UL,
957
634711458UL,
958
1881366407UL,
959
2339310622UL,
960
1437137856UL,
961
775517573UL,
962
2403816337UL,
963
3643691625UL,
964
2796142813UL,
965
2636271743UL,
966
3548645335UL,
967
2401818065UL,
968
1430955355UL,
969
1529261488UL,
970
2672050975UL,
971
1824816344UL,
972
437321422UL,
973
1010469737UL,
974
975873927UL,
975
3808619211UL,
976
1306922849UL,
977
2306306586UL,
978
3492263153UL,
979
915764428UL,
980
4049080639UL,
981
2584666827UL,
982
2248503228UL,
983
1156685342UL,
984
3545089377UL,
985
2927987815UL,
986
1188340469UL,
987
1983809416UL,
988
2359080396UL,
989
3026745995UL,
990
1020085481UL,
991
2455748822UL,
992
2973731428UL,
993
1685598150UL,
994
2459914554UL,
995
222412187UL,
996
1550326895UL,
997
3808681066UL,
998
910364646UL,
999
4011483211UL,
1000
3449464402UL,
1001
3094973082UL,
1002
3370230650UL,
1003
1693151952UL,
1004
3574854040UL,
1005
3557103099UL,
1006
4108399894UL,
1007
3762036621UL,
1008
2337346271UL,
1009
1005455572UL,
1010
3860207735UL,
1011
1771002576UL,
1012
199004943UL,
1013
1578846676UL,
1014
2676995104UL,
1015
4076948954UL,
1016
830057378UL,
1017
459065499UL,
1018
3804368733UL,
1019
3499868406UL,
1020
852696530UL,
1021
514613423UL,
1022
1584281952UL,
1023
985799155UL,
1024
1895009366UL,
1025
3825253357UL,
1026
1782693174UL,
1027
2196979238UL,
1028
1308429445UL,
1029
2960767408UL,
1030
2285337396UL,
1031
2065293874UL,
1032
1306724979UL,
1033
4056398081UL,
1034
4047112430UL,
1035
3606840914UL,
1036
3117829644UL,
1037
3877872838UL,
1038
3297977849UL,
1039
336255855UL,
1040
3794593369UL,
1041
2534532716UL,
1042
3726226824UL,
1043
2067902083UL,
1044
1289138711UL,
1045
615241845UL,
1046
3711156810UL,
1047
4069284324UL,
1048
3829237942UL,
1049
3615667378UL,
1050
750506440UL,
1051
3851304132UL,
1052
1159089146UL,
1053
2459260597UL,
1054
2955574874UL,
1055
1775846339UL,
1056
1872505027UL,
1057
3021810567UL,
1058
2498812392UL,
1059
2388439890UL,
1060
3509540924UL,
1061
4132084900UL,
1062
1762358900UL,
1063
3005639020UL,
1064
961559514UL,
1065
5499771UL,
1066
2114442568UL,
1067
2725996306UL,
1068
2213448586UL,
1069
3041192141UL,
1070
2318358424UL,
1071
4199956637UL,
1072
508024672UL,
1073
2898231491UL,
1074
985807031UL,
1075
3712119117UL,
1076
487464412UL,
1077
1443950379UL,
1078
2897942828UL,
1079
2942321529UL
1080
#endif
1081
};
1082
1084
inline
HashType xorrer(HashType
const
&l, NucleonItem
const
&
r
) {
1085
return
l^mask[
r
];
1086
}
1087
1088
}
1089
1112
inline
HashType hashConfig(NucleonItem *
config
,
G4int
n
) {
1113
// assert(n<maskTableSize);
1114
return
std::accumulate(config, config+n, ((HashType)0), xorrer);
1115
}
1116
1117
}
1118
}
1119
1120
#endif // INCL_CACHING_CLUSTERING_MODEL_INTERCOMPARISON_HashMask
1121
1122
#endif // G4INCLHASHING_HH_
config_s
Definition:
deflate.cc:117
G4int
int G4int
Definition:
G4Types.hh:78
n
Char_t n[5]
Definition:
comparison_ascii.C:55
globals.hh
r
jump r
Definition:
plot.C:36
Generated on Sat Dec 14 2013 14:34:54 for Geant4_10 by
1.8.5