CMS 3D CMS Logo

TensorIndex.h
Go to the documentation of this file.
1 #ifndef TensorIndex_h
2 #define TensorIndex_h
3 template <int d1,int d2=1,int d3=1,int d4=1>
16 class TensorIndex {
17  public:
18  enum {SIZE = d1*d2*d3*d4 };
19  enum {LEN1 = d1 };
20  enum {LEN2 = d2 };
21  enum {LEN3 = d3 };
22  enum {LEN4 = d4 };
23 
24  static int indexOf(const int i) {
25  return i;
26  }
27  static int indexOf(const int i,const int j) {
28  return j*d1 + i;
29  }
30  static int indexOf(const int i,const int j, const int k) {
31  return (k*d2 + j)*d1 + i;
32  }
33  static int indexOf(const int i,const int j, const int k,const int l) {
34  return ((l*d3 + k)*d2 + j)*d1 + i;
35  }
36 };
37 
38 template <int d1,int d2=1,int d3=1,int d4=1>
40  public:
41  enum {SIZE = d1*d2*d3*d4 };
42  enum {LEN1 = d1 };
43  enum {LEN2 = d2 };
44  enum {LEN3 = d3 };
45  enum {LEN4 = d4 };
46 
47  static int indexOf(const int i) {
48  return i -1;
49  }
50  static int indexOf(const int i,const int j) {
51  return j*d1 + i -1 -d1;
52  }
53  static int indexOf(const int i,const int j, const int k) {
54  return (k*d2 + j)*d1 + i -1 -d1 -d1*d2;
55  }
56  static int indexOf(const int i,const int j, const int k,const int l) {
57  return ((l*d3 + k)*d2 + j)*d1 + i -1 -d1 -d1*d2 - d1*d2*d3;
58  }
59 };
60 #endif
static int indexOf(const int i, const int j, const int k, const int l)
Definition: TensorIndex.h:33
static int indexOf(const int i, const int j, const int k)
Definition: TensorIndex.h:53
static int indexOf(const int i, const int j)
Definition: TensorIndex.h:27
static int indexOf(const int i, const int j)
Definition: TensorIndex.h:50
static int indexOf(const int i, const int j, const int k, const int l)
Definition: TensorIndex.h:56
static int indexOf(const int i)
Definition: TensorIndex.h:47
int k[5][pyjets_maxn]
static int indexOf(const int i, const int j, const int k)
Definition: TensorIndex.h:30
static int indexOf(const int i)
Definition: TensorIndex.h:24