25 inline auto compute_inv_33(std::array<sycl::vec<T, 3>, 3> mat)
26 -> std::array<sycl::vec<T, 3>, 3> {
28 using vec = sycl::vec<T, 3>;
43 = (-a02 * a11 * a20 + a01 * a12 * a20 + a02 * a10 * a21 - a00 * a12 * a21
44 - a01 * a10 * a22 + a00 * a11 * a22);
47 (vec{-a12 * a21 + a11 * a22, a02 * a21 - a01 * a22, -a02 * a11 + a01 * a12} / det),
48 (vec{a12 * a20 - a10 * a22, -a02 * a20 + a00 * a22, a02 * a10 - a00 * a12} / det),
49 (vec{-a11 * a20 + a10 * a21, a01 * a20 - a00 * a21, -a01 * a10 + a00 * a11} / det)};
53 inline auto mat_prod_33(
54 std::array<sycl::vec<T, 3>, 3> mat_a, std::array<sycl::vec<T, 3>, 3> mat_b)
55 -> std::array<sycl::vec<T, 3>, 3> {
57 using vec = sycl::vec<T, 3>;
84 vec{a00 * b00 + a01 * b10 + a02 * b20,
85 a00 * b01 + a01 * b11 + a02 * b21,
86 a00 * b02 + a01 * b12 + a02 * b22},
87 vec{a10 * b00 + a11 * b10 + a12 * b20,
88 a10 * b01 + a11 * b11 + a12 * b21,
89 a10 * b02 + a11 * b12 + a12 * b22},
90 vec{a20 * b00 + a21 * b10 + a22 * b20,
91 a20 * b01 + a21 * b11 + a22 * b21,
92 a20 * b02 + a21 * b12 + a22 * b22}};
namespace for math utility