36 static constexpr u32 num_component
41 static constexpr u32 offset_t0 = 0;
42 static constexpr u32 offset_t1 = 1;
89 auto A5 =
SymTensor3d_5<T>{A4.v_0000 * A1.v_0, A4.v_0001 * A1.v_0, A4.v_0002 * A1.v_0,
90 A4.v_0011 * A1.v_0, A4.v_0012 * A1.v_0, A4.v_0022 * A1.v_0,
91 A4.v_0111 * A1.v_0, A4.v_0112 * A1.v_0, A4.v_0122 * A1.v_0,
92 A4.v_0222 * A1.v_0, A4.v_1111 * A1.v_0, A4.v_1112 * A1.v_0,
93 A4.v_1122 * A1.v_0, A4.v_1222 * A1.v_0, A4.v_2222 * A1.v_0,
94 A4.v_1111 * A1.v_1, A4.v_1112 * A1.v_1, A4.v_1122 * A1.v_1,
95 A4.v_1222 * A1.v_1, A4.v_2222 * A1.v_1, A4.v_2222 * A1.v_2};
97 return {1, A1, A2, A3, A4, A5};
114 auto A4 =
SymTensor3d_4<T>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
117 =
SymTensor3d_5<T>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
119 return {0, A1, A2, A3, A4};
123 inline void store(Tacc &&acc,
u32 offset)
const {
124 acc[offset + offset_t0] = t0;
125 t1.store(acc, offset + offset_t1);
126 t2.store(acc, offset + offset_t2);
127 t3.store(acc, offset + offset_t3);
128 t4.store(acc, offset + offset_t4);
129 t5.store(acc, offset + offset_t5);
135 acc[offset + offset_t0],
187 static constexpr u32 num_component
191 static constexpr u32 offset_t0 = 0;
192 static constexpr u32 offset_t1 = 1;
238 return {1, A1, A2, A3, A4};
255 auto A4 =
SymTensor3d_4<T>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
257 return {0, A1, A2, A3, A4};
261 inline void store(Tacc &&acc,
u32 offset)
const {
262 acc[offset + offset_t0] = t0;
263 t1.store(acc, offset + offset_t1);
264 t2.store(acc, offset + offset_t2);
265 t3.store(acc, offset + offset_t3);
266 t4.store(acc, offset + offset_t4);
272 acc[offset + offset_t0],
303 return {t0 - other.t0, t1 - other.t1, t2 - other.t2, t3 - other.t3, t4 - other.t4};
318 static constexpr u32 offset_t0 = 0;
319 static constexpr u32 offset_t1 = 1;
347 return {1, A1, A2, A3};
364 return {0, A1, A2, A3};
368 inline void store(Tacc &&acc,
u32 offset)
const {
369 acc[offset + offset_t0] = t0;
370 t1.store(acc, offset + offset_t1);
371 t2.store(acc, offset + offset_t2);
372 t3.store(acc, offset + offset_t3);
378 acc[offset + offset_t0],
406 return {t0 - other.t0, t1 - other.t1, t2 - other.t2, t3 - other.t3};
416 static constexpr u32 num_component
419 static constexpr u32 offset_t0 = 0;
420 static constexpr u32 offset_t1 = 1;
454 inline void store(Tacc &&acc,
u32 offset)
const {
455 acc[offset + offset_t0] = t0;
456 t1.store(acc, offset + offset_t1);
457 t2.store(acc, offset + offset_t2);
463 acc[offset + offset_t0],
488 return {t0 - other.t0, t1 - other.t1, t2 - other.t2};
597 static constexpr u32 num_component
602 static constexpr u32 offset_t1 = 0;
649 auto A5 =
SymTensor3d_5<T>{A4.v_0000 * A1.v_0, A4.v_0001 * A1.v_0, A4.v_0002 * A1.v_0,
650 A4.v_0011 * A1.v_0, A4.v_0012 * A1.v_0, A4.v_0022 * A1.v_0,
651 A4.v_0111 * A1.v_0, A4.v_0112 * A1.v_0, A4.v_0122 * A1.v_0,
652 A4.v_0222 * A1.v_0, A4.v_1111 * A1.v_0, A4.v_1112 * A1.v_0,
653 A4.v_1122 * A1.v_0, A4.v_1222 * A1.v_0, A4.v_2222 * A1.v_0,
654 A4.v_1111 * A1.v_1, A4.v_1112 * A1.v_1, A4.v_1122 * A1.v_1,
655 A4.v_1222 * A1.v_1, A4.v_2222 * A1.v_1, A4.v_2222 * A1.v_2};
657 return {A1, A2, A3, A4, A5};
674 auto A4 =
SymTensor3d_4<T>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
677 =
SymTensor3d_5<T>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
679 return {A1, A2, A3, A4};
683 inline void store(Tacc &&acc,
u32 offset)
const {
685 t1.store(acc, offset + offset_t1);
686 t2.store(acc, offset + offset_t2);
687 t3.store(acc, offset + offset_t3);
688 t4.store(acc, offset + offset_t4);
689 t5.store(acc, offset + offset_t5);
726 return {t1 - other.t1, t2 - other.t2, t3 - other.t3, t4 - other.t4, t5 - other.t5};
738 static constexpr u32 num_component
742 static constexpr u32 offset_t1 = 0;
788 return {A1, A2, A3, A4};
805 auto A4 =
SymTensor3d_4<T>{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
807 return {A1, A2, A3, A4};
811 inline void store(Tacc &&acc,
u32 offset)
const {
813 t1.store(acc, offset + offset_t1);
814 t2.store(acc, offset + offset_t2);
815 t3.store(acc, offset + offset_t3);
816 t4.store(acc, offset + offset_t4);
850 return {t1 - other.t1, t2 - other.t2, t3 - other.t3, t4 - other.t4};
865 static constexpr u32 offset_t1 = 0;
914 inline void store(Tacc &&acc,
u32 offset)
const {
916 t1.store(acc, offset + offset_t1);
917 t2.store(acc, offset + offset_t2);
918 t3.store(acc, offset + offset_t3);
949 return {t1 - other.t1, t2 - other.t2, t3 - other.t3};