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