v0.15.0
Loading...
Searching...
No Matches
Christof_constructor.hpp
Go to the documentation of this file.
1/* A helper class that allows simple initialization of the Christof,
2 but only if it has the correct number of elements. */
3
4#pragma once
5
6namespace FTensor
7{
8 template <class T, int Tensor_Dim0, int Tensor_Dim12>
10
11 template <class T> class Christof_constructor<T, 2, 2>
12 {
13 public:
14 Christof_constructor(T data[2][3], T d000, T d100, T d001, T d101, T d011,
15 T d111)
16 {
17 data[0][0] = d000;
18 data[1][0] = d100;
19 data[0][1] = d001;
20 data[1][1] = d101;
21 data[0][2] = d011;
22 data[1][2] = d111;
23 }
24 };
25
26 template <class T> class Christof_constructor<T, 3, 3>
27 {
28 public:
29 Christof_constructor(T data[3][6], T d000, T d100, T d200, T d001, T d101,
30 T d201, T d002, T d102, T d202, T d011, T d111,
31 T d211, T d012, T d112, T d212, T d022, T d122,
32 T d222)
33 {
34 data[0][0] = d000;
35 data[0][1] = d001;
36 data[0][2] = d002;
37 data[0][3] = d011;
38 data[0][4] = d012;
39 data[0][5] = d022;
40
41 data[1][0] = d100;
42 data[1][1] = d101;
43 data[1][2] = d102;
44 data[1][3] = d111;
45 data[1][4] = d112;
46 data[1][5] = d122;
47
48 data[2][0] = d200;
49 data[2][1] = d201;
50 data[2][2] = d202;
51 data[2][3] = d211;
52 data[2][4] = d212;
53 data[2][5] = d222;
54 }
55 };
56
57 template <class T> class Christof_constructor<T, 4, 4>
58 {
59 public:
60 Christof_constructor(T data[4][10], T d000, T d100, T d200, T d300, T d001,
61 T d101, T d201, T d301, T d002, T d102, T d202,
62 T d302, T d003, T d103, T d203, T d303, T d011,
63 T d111, T d211, T d311, T d012, T d112, T d212,
64 T d312, T d013, T d113, T d213, T d313, T d022,
65 T d122, T d222, T d322, T d023, T d123, T d223,
66 T d323, T d033, T d133, T d233, T d333)
67 {
68 data[0][0] = d000;
69 data[0][1] = d001;
70 data[0][2] = d002;
71 data[0][3] = d003;
72 data[0][4] = d011;
73 data[0][5] = d012;
74 data[0][6] = d013;
75 data[0][7] = d022;
76 data[0][8] = d023;
77 data[0][9] = d033;
78
79 data[1][0] = d100;
80 data[1][1] = d101;
81 data[1][2] = d102;
82 data[1][3] = d103;
83 data[1][4] = d111;
84 data[1][5] = d112;
85 data[1][6] = d113;
86 data[1][7] = d122;
87 data[1][8] = d123;
88 data[1][9] = d133;
89
90 data[2][0] = d200;
91 data[2][1] = d201;
92 data[2][2] = d202;
93 data[2][3] = d203;
94 data[2][4] = d211;
95 data[2][5] = d212;
96 data[2][6] = d213;
97 data[2][7] = d222;
98 data[2][8] = d223;
99 data[2][9] = d233;
100
101 data[3][0] = d300;
102 data[3][1] = d301;
103 data[3][2] = d302;
104 data[3][3] = d303;
105 data[3][4] = d311;
106 data[3][5] = d312;
107 data[3][6] = d313;
108 data[3][7] = d322;
109 data[3][8] = d323;
110 data[3][9] = d333;
111 }
112 };
113
114 template <class T> class Christof_constructor<T, 3, 4>
115 {
116 public:
117 Christof_constructor(T data[3][10], T d000, T d100, T d200, T d001, T d101,
118 T d201, T d002, T d102, T d202, T d003, T d103,
119 T d203, T d011, T d111, T d211, T d012, T d112,
120 T d212, T d013, T d113, T d213, T d022, T d122,
121 T d222, T d023, T d123, T d223, T d033, T d133,
122 T d233)
123 {
124 data[0][0] = d000;
125 data[0][1] = d001;
126 data[0][2] = d002;
127 data[0][3] = d003;
128 data[0][4] = d011;
129 data[0][5] = d012;
130 data[0][6] = d013;
131 data[0][7] = d022;
132 data[0][8] = d023;
133 data[0][9] = d033;
134
135 data[1][0] = d100;
136 data[1][1] = d101;
137 data[1][2] = d102;
138 data[1][3] = d103;
139 data[1][4] = d111;
140 data[1][5] = d112;
141 data[1][6] = d113;
142 data[1][7] = d122;
143 data[1][8] = d123;
144 data[1][9] = d133;
145
146 data[2][0] = d200;
147 data[2][1] = d201;
148 data[2][2] = d202;
149 data[2][3] = d203;
150 data[2][4] = d211;
151 data[2][5] = d212;
152 data[2][6] = d213;
153 data[2][7] = d222;
154 data[2][8] = d223;
155 data[2][9] = d233;
156 }
157 };
158}
Christof_constructor(T data[2][3], T d000, T d100, T d001, T d101, T d011, T d111)
Christof_constructor(T data[3][6], T d000, T d100, T d200, T d001, T d101, T d201, T d002, T d102, T d202, T d011, T d111, T d211, T d012, T d112, T d212, T d022, T d122, T d222)
Christof_constructor(T data[3][10], T d000, T d100, T d200, T d001, T d101, T d201, T d002, T d102, T d202, T d003, T d103, T d203, T d011, T d111, T d211, T d012, T d112, T d212, T d013, T d113, T d213, T d022, T d122, T d222, T d023, T d123, T d223, T d033, T d133, T d233)
Christof_constructor(T data[4][10], T d000, T d100, T d200, T d300, T d001, T d101, T d201, T d301, T d002, T d102, T d202, T d302, T d003, T d103, T d203, T d303, T d011, T d111, T d211, T d311, T d012, T d112, T d212, T d312, T d013, T d113, T d213, T d313, T d022, T d122, T d222, T d322, T d023, T d123, T d223, T d323, T d033, T d133, T d233, T d333)
Tensors class implemented by Walter Landry.
Definition FTensor.hpp:51