Belle II Software  release-05-02-19
golem.h
1 
2 /*
3  * cache.h - golem-mode header
4  *
5  * this file is part of PJFry library
6  * Copyright 2011 Valery Yundin
7  */
8 
9 #ifndef QUL_GOLEM_H
10 #define QUL_GOLEM_H
11 
12 #include "common.h"
13 
14 class Golem {
15 public:
16  static void initgolem95(int n);
17  static void setmat(int i, int j, double val);
18  static void preparesmatrix();
19  static double getmat(int i, int j);
20 
21  // 5 point base
22  static ncomplex ga50(int s, int ep);
23  static ncomplex ga51(int i, int s, int ep);
24  static ncomplex ga52(int i, int j, int s, int ep);
25  static ncomplex gb52(int s, int ep);
26  static ncomplex ga53(int i, int j, int k, int s, int ep);
27  static ncomplex gb53(int i, int s, int ep);
28  static ncomplex ga54(int i, int j, int k, int l, int s, int ep);
29  static ncomplex gb54(int i, int j, int s, int ep);
30  static ncomplex gc54(int s, int ep);
31  static ncomplex ga55(int i, int j, int k, int l, int m, int s, int ep);
32  static ncomplex gb55(int i, int j, int k, int s, int ep);
33  static ncomplex gc55(int i, int s, int ep);
34 
35  static ncomplex ga40(int s, int ep);
36  static ncomplex ga41(int i, int s, int ep);
37  static ncomplex ga42(int i, int j, int s, int ep);
38  static ncomplex gb42(int s, int ep);
39  static ncomplex ga43(int i, int j, int k, int s, int ep);
40  static ncomplex gb43(int i, int s, int ep);
41  static ncomplex ga44(int i, int j, int k, int l, int s, int ep);
42  static ncomplex gb44(int i, int j, int s, int ep);
43  static ncomplex gc44(int s, int ep);
44 
45  static ncomplex ga30(int s, int ep);
46  static ncomplex ga31(int i, int s, int ep);
47  static ncomplex ga32(int i, int j, int s, int ep);
48  static ncomplex gb32(int s, int ep);
49  static ncomplex ga33(int i, int j, int k, int s, int ep);
50  static ncomplex gb33(int i, int s, int ep);
51 
52  static ncomplex ga20(int s, int ep);
53  static ncomplex ga21(int i, int s, int ep);
54  static ncomplex ga22(int i, int j, int s, int ep);
55  static ncomplex gb22(int s, int ep);
56 
57 private:
58  static void prepare6();
59  static void prepare5();
60  static void prepare4();
61 
62  static int N;
63  static int caylen;
64 
65  static MinorBase* minortbl[128];
66  static Minor5::Ptr minors5[6];
67  static Minor4::Ptr minors4[15];
68  static Minor3::Ptr minors3[20];
69  static Minor2::Ptr minors2[15];
70 
71  static double Cay[6 * (6 + 1) / 2]; // upto rank 6
72  static unsigned int bitfield;
73  static unsigned int bitmask;
74 };
75 
76 #endif /* QUL_GOLEM_H */
77