v0.14.0
Loading...
Searching...
No Matches
Tensor3_constructor.hpp
Go to the documentation of this file.
1/* A helper class that allows simple initialization of the Tensor3,
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_Dim1, int Tensor_Dim2>
10
11 template <class T> class Tensor3_constructor<T, 2, 2, 2>
12 {
13 public:
14 Tensor3_constructor(T data[2][2][2], T d000, T d001, T d010, T d011,
15 T d100, T d101, T d110, T d111)
16 {
17 data[0][0][0] = d000;
18 data[0][0][1] = d001;
19 data[0][1][0] = d010;
20 data[0][1][1] = d011;
21 data[1][0][0] = d100;
22 data[1][0][1] = d101;
23 data[1][1][0] = d110;
24 data[1][1][1] = d111;
25 }
26 };
27
28 template <class T> class Tensor3_constructor<T, 3, 3, 3>
29 {
30 public:
31 Tensor3_constructor(T data[3][3][3], T d000, T d001, T d002, T d010,
32 T d011, T d012, T d020, T d021, T d022, T d100, T d101,
33 T d102, T d110, T d111, T d112, T d120, T d121, T d122,
34 T d200, T d201, T d202, T d210, T d211, T d212, T d220,
35 T d221, T d222)
36 {
37 data[0][0][0] = d000;
38 data[0][0][1] = d001;
39 data[0][0][2] = d002;
40
41 data[0][1][0] = d010;
42 data[0][1][1] = d011;
43 data[0][1][2] = d012;
44
45 data[0][2][0] = d020;
46 data[0][2][1] = d021;
47 data[0][2][2] = d022;
48
49 data[1][0][0] = d100;
50 data[1][0][1] = d101;
51 data[1][0][2] = d102;
52
53 data[1][1][0] = d110;
54 data[1][1][1] = d111;
55 data[1][1][2] = d112;
56
57 data[1][2][0] = d120;
58 data[1][2][1] = d121;
59 data[1][2][2] = d122;
60
61 data[2][0][0] = d200;
62 data[2][0][1] = d201;
63 data[2][0][2] = d202;
64
65 data[2][1][0] = d210;
66 data[2][1][1] = d211;
67 data[2][1][2] = d212;
68
69 data[2][2][0] = d220;
70 data[2][2][1] = d221;
71 data[2][2][2] = d222;
72 }
73 };
74
75 template <class T> class Tensor3_constructor<T, 4, 4, 4>
76 {
77 public:
79 T data[4][4][4], T d000, T d001, T d002, T d003, T d010, T d011, T d012,
80 T d013, T d020, T d021, T d022, T d023, T d030, T d031, T d032, T d033,
81
82 T d100, T d101, T d102, T d103, T d110, T d111, T d112, T d113, T d120,
83 T d121, T d122, T d123, T d130, T d131, T d132, T d133,
84
85 T d200, T d201, T d202, T d203, T d210, T d211, T d212, T d213, T d220,
86 T d221, T d222, T d223, T d230, T d231, T d232, T d233,
87
88 T d300, T d301, T d302, T d303, T d310, T d311, T d312, T d313, T d320,
89 T d321, T d322, T d323, T d330, T d331, T d332, T d333)
90 {
91 data[0][0][0] = d000;
92 data[0][0][1] = d001;
93 data[0][0][2] = d002;
94 data[0][0][3] = d003;
95
96 data[0][1][0] = d010;
97 data[0][1][1] = d011;
98 data[0][1][2] = d012;
99 data[0][1][3] = d013;
100
101 data[0][2][0] = d020;
102 data[0][2][1] = d021;
103 data[0][2][2] = d022;
104 data[0][2][3] = d023;
105
106 data[0][3][0] = d030;
107 data[0][3][1] = d031;
108 data[0][3][2] = d032;
109 data[0][3][3] = d033;
110
111 data[1][0][0] = d100;
112 data[1][0][1] = d101;
113 data[1][0][2] = d102;
114 data[1][0][3] = d103;
115
116 data[1][1][0] = d110;
117 data[1][1][1] = d111;
118 data[1][1][2] = d112;
119 data[1][1][3] = d113;
120
121 data[1][2][0] = d120;
122 data[1][2][1] = d121;
123 data[1][2][2] = d122;
124 data[1][2][3] = d123;
125
126 data[1][3][0] = d130;
127 data[1][3][1] = d131;
128 data[1][3][2] = d132;
129 data[1][3][3] = d133;
130
131 data[2][0][0] = d200;
132 data[2][0][1] = d201;
133 data[2][0][2] = d202;
134 data[2][0][3] = d203;
135
136 data[2][1][0] = d210;
137 data[2][1][1] = d211;
138 data[2][1][2] = d212;
139 data[2][1][3] = d213;
140
141 data[2][2][0] = d220;
142 data[2][2][1] = d221;
143 data[2][2][2] = d222;
144 data[2][2][3] = d223;
145
146 data[2][3][0] = d230;
147 data[2][3][1] = d231;
148 data[2][3][2] = d232;
149 data[2][3][3] = d233;
150
151 data[3][0][0] = d300;
152 data[3][0][1] = d301;
153 data[3][0][2] = d302;
154 data[3][0][3] = d303;
155
156 data[3][1][0] = d310;
157 data[3][1][1] = d311;
158 data[3][1][2] = d312;
159 data[3][1][3] = d313;
160
161 data[3][2][0] = d320;
162 data[3][2][1] = d321;
163 data[3][2][2] = d322;
164 data[3][2][3] = d323;
165
166 data[3][3][0] = d330;
167 data[3][3][1] = d331;
168 data[3][3][2] = d332;
169 data[3][3][3] = d333;
170 }
171 };
172}
Tensor3_constructor(T data[2][2][2], T d000, T d001, T d010, T d011, T d100, T d101, T d110, T d111)
Tensor3_constructor(T data[3][3][3], T d000, T d001, T d002, T d010, T d011, T d012, T d020, T d021, T d022, T d100, T d101, T d102, T d110, T d111, T d112, T d120, T d121, T d122, T d200, T d201, T d202, T d210, T d211, T d212, T d220, T d221, T d222)
Tensor3_constructor(T data[4][4][4], T d000, T d001, T d002, T d003, T d010, T d011, T d012, T d013, T d020, T d021, T d022, T d023, T d030, T d031, T d032, T d033, T d100, T d101, T d102, T d103, T d110, T d111, T d112, T d113, T d120, T d121, T d122, T d123, T d130, T d131, T d132, T d133, T d200, T d201, T d202, T d203, T d210, T d211, T d212, T d213, T d220, T d221, T d222, T d223, T d230, T d231, T d232, T d233, T d300, T d301, T d302, T d303, T d310, T d311, T d312, T d313, T d320, T d321, T d322, T d323, T d330, T d331, T d332, T d333)
const double T
Tensors class implemented by Walter Landry.
Definition: FTensor.hpp:51