﻿:: { T:i8[*,*], Ts:i8[*,*]*, QT:i8[*,*]?, QTs:i8[*,*]?*, U:i4[*,*], V:s[*,*], W:u4[*,*], R:{A:i4}, i4:i4 }

// Tensor conversion.
T if true else U
U if true else W
U if true else V

T + T
T + Ts
T + QT
T + QTs
T + U
T + V
T + R
T + i4

Ts + T
Ts + Ts
Ts + QT
Ts + QTs
Ts + U
Ts + V
Ts + R
Ts + i4
U + W

QT + T
QT + Ts
QT + QT
QT + QTs
QT + U
QT + V
QT + R
QT + i4

T - T
T - Ts
T - QT
T - QTs
T - U
T - V
T - R
T - i4

Ts - T
Ts - Ts
Ts - QT
Ts - QTs
Ts - U
Ts - V
Ts - R
Ts - i4

QT - T
QT - Ts
QT - QT
QT - QTs
QT - U
QT - V
QT - R
QT - i4

T * T
T * Ts
T * QT
T * QTs
T * U
T * V
T * R
T * i4

Ts * T
Ts * Ts
Ts * QT
Ts * QTs
Ts * U
Ts * V
Ts * R
Ts * i4

QT * T
QT * Ts
QT * QT
QT * QTs
QT * U
QT * V
QT * R
QT * i4

T min T
T min Ts
T min QT
T min QTs
T min U
T min V
T min R
T min i4

Ts min T
Ts min Ts
Ts min QT
Ts min QTs
Ts min U
Ts min V
Ts min R
Ts min i4

QT min T
QT min Ts
QT min QT
QT min QTs
QT min U
QT min V
QT min R
QT min i4

T max T
T max Ts
T max QT
T max QTs
T max U
T max V
T max R
T max i4

Ts max T
Ts max Ts
Ts max QT
Ts max QTs
Ts max U
Ts max V
Ts max R
Ts max i4

QT max T
QT max Ts
QT max QT
QT max QTs
QT max U
QT max V
QT max R
QT max i4

T div T
T div Ts
T div QT
T div QTs
T div U
T div V
T div R
T div i4

Ts div T
Ts div Ts
Ts div QT
Ts div QTs
Ts div U
Ts div V
Ts div R
Ts div i4

QT div T
QT div Ts
QT div QT
QT div QTs
QT div U
QT div V
QT div R
QT div i4

i4 + T
i4 + T
i4 + T

:: { T:r8[*,3], Ts:r8[*,3]*, QT:r8[*,3]?, QTs:r8[*,3]?*, U:r4[*,3], V:s[*,3], R:{A:i4}, i4:i4, r4:r4 }

T / T
T / Ts
T / QT
T / QTs
T / U
T / V
T / R
T / r4
T / i4

Ts / T
Ts / Ts
Ts / QT
Ts / QTs
Ts / U
Ts / V
Ts / R
Ts / r4
Ts / i4

QT / T
QT / Ts
QT / QT
QT / QTs
QT / U
QT / V
QT / R
QT / r4
QT / i4

:: { Ti1:i1[4,2], Ti2:i2[4,2], Ti4:i4[4,2], Ti8:i8[4,2], Tu1:u1[4,2], Tu2:u2[4,2], Tu4:u4[4,2], Tu8:u8[4,2], Tr4:r4[4,2], Tr8:r8[4,2] }
Ti1 div Ti1
Ti2 div Ti2
Ti4 div Ti4
Ti8 div Ti8
Tu1 div Tu1
Tu2 div Tu2
Tu4 div Tu4
Tu8 div Tu8
Tr4 div Tr4
Tr8 div Tr8

Ti1 / Ti1
Ti2 / Ti2
Ti4 / Ti4
Ti8 / Ti8
Tu1 / Tu1
Tu2 / Tu2
Tu4 / Tu4
Tu8 / Tu8
Tr4 / Tr4
Tr8 / Tr8

:: { T1:i8[4,2], T2:i8[4,2], T3:i8[4,2] }
T1 + T2 + T3
T1 - T2 - T3
T1 * T2 * T3

:: { T:i8[4,2], U:i8[4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:r4[4,2], U:r4[4,2] }
T / U
U / T

:: { T:i4[3,4,2], U:i4[3,4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:r4[3,4,2], U:r4[3,4,2] }
T / U
U / T

:: { T:i8[4,2], U:i4[4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:r8[4,2], U:r4[4,2] }
T / U
U / T

:: { T:i8[2], U:i8[4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[2], U:i8[2,4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[1,2], U:i8[2,4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[4,3], U:i8[4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[4,3], U:i8[2,3] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[4,0], U:i8[1,0] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[4,0], U:i8[2,3] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[0,4,3], U:i8[4,3] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[*,3], U:i8[4,2,3] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[1,*], U:i8[2,4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[1,*], U:i8[2,*,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[*], U:i8[*,*] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T

:: { T:i8[], U:i8[4,2] }
T + U
U + T
T - U
U - T
T * U
U * T
T min U
U min T
T max U
U max T
T div U
U div T
