11 template <
class A,
class B,
char i,
char j,
char k,
char l>
15 return a(1, 0, 0, 1) * b(1, 0, 0, 1) +
a(2, 0, 0, 1) * b(2, 0, 0, 1)
16 +
a(0, 1, 0, 1) * b(0, 1, 0, 1) +
a(2, 1, 0, 1) * b(2, 1, 0, 1)
17 +
a(0, 2, 0, 1) * b(0, 2, 0, 1) +
a(1, 2, 0, 1) * b(1, 2, 0, 1)
18 +
a(1, 0, 0, 2) * b(1, 0, 0, 2) +
a(2, 0, 0, 2) * b(2, 0, 0, 2)
19 +
a(0, 1, 0, 2) * b(0, 1, 0, 2) +
a(2, 1, 0, 2) * b(2, 1, 0, 2)
20 +
a(0, 2, 0, 2) * b(0, 2, 0, 2) +
a(1, 2, 0, 2) * b(1, 2, 0, 2)
21 +
a(1, 0, 1, 0) * b(1, 0, 1, 0) +
a(2, 0, 1, 0) * b(2, 0, 1, 0)
22 +
a(0, 1, 1, 0) * b(0, 1, 1, 0) +
a(2, 1, 1, 0) * b(2, 1, 1, 0)
23 +
a(0, 2, 1, 0) * b(0, 2, 1, 0) +
a(1, 2, 1, 0) * b(1, 2, 1, 0)
24 +
a(1, 0, 1, 2) * b(1, 0, 1, 2) +
a(2, 0, 1, 2) * b(2, 0, 1, 2)
25 +
a(0, 1, 1, 2) * b(0, 1, 1, 2) +
a(2, 1, 1, 2) * b(2, 1, 1, 2)
26 +
a(0, 2, 1, 2) * b(0, 2, 1, 2) +
a(1, 2, 1, 2) * b(1, 2, 1, 2)
27 +
a(1, 0, 2, 0) * b(1, 0, 2, 0) +
a(2, 0, 2, 0) * b(2, 0, 2, 0)
28 +
a(0, 1, 2, 0) * b(0, 1, 2, 0) +
a(2, 1, 2, 0) * b(2, 1, 2, 0)
29 +
a(0, 2, 2, 0) * b(0, 2, 2, 0) +
a(1, 2, 2, 0) * b(1, 2, 2, 0)
30 +
a(1, 0, 2, 1) * b(1, 0, 2, 1) +
a(2, 0, 2, 1) * b(2, 0, 2, 1)
31 +
a(0, 1, 2, 1) * b(0, 1, 2, 1) +
a(2, 1, 2, 1) * b(2, 1, 2, 1)
32 +
a(0, 2, 2, 1) * b(0, 2, 2, 1) +
a(1, 2, 2, 1) * b(1, 2, 2, 1);
90 template <
class A,
class B,
char i,
char j,
char k,
char l>