﻿:: { Ti1:i1[4,4], Ti2:i2[4,4], Ti4:i4[4,4], Ti8:i8[4,4], Tia:ia[4,4], Tu1:u1[4,4], Tu2:u2[4,4], Tu4:u4[4,4], Tu8:u8[4,4], Tr4:r4[4,4], Tr8:r8[4,4], Ts:s[4,4] }
Ti1->Dot(Ti1)
Ti2->Dot(Ti2)
Ti4->Dot(Ti4)
Ti8->Dot(Ti8)
Tia->Dot(Tia)
Tu1->Dot(Tu1)
Tu2->Dot(Tu2)
Tu4->Dot(Tu4)
Tu8->Dot(Tu8)
Tr4->Dot(Tr4)
Tr8->Dot(Tr8)

Ti2->Dot(Ti8)
Ti8->Dot(Ti2)
Ti8->Dot(Tr8)
Tr8->Dot(Ti8)

Ts ->Dot(Ts)
Ts ->Dot(Ti8)
Ti8->Dot(Ts)

:: { T:i8[12], U:i8[12] }
T->Dot(U)

:: { T:i8[3,4], U:i8[4,3] }
T->Dot(U)

:: { T:i8[1,3,2], U:i8[4,3,5] }
T->Dot(U)

:: { T:i8[2,3,4], U:i8[5,6,7] }
T->Dot(U)
U->Dot(T)

:: { T:i8[0], U:i8[12] }
T->Dot(U)
U->Dot(T)

:: { T:i8[1,3,0], U:i8[2,0,4] }
T->Dot(U)

:: { T:i8[], U:i8[12] }
T->Dot(U)
U->Dot(T)

:: { T:i8[1,3,2], U:i8[4,*,*] }
T->Dot(U)
U->Dot(T)