Matrix Square

Submission Date: 2024/9/18 21:25:52
Status: Accepted
Author: clotz_sugar
Lines: 72

VSM

gmwrite $lm[0,4,16,20] $lx0
gmwrite $lm[32,36,48,52] $lx4
gmread $lx0 $ls[0,4,16,20]
gmread $lx4 $ls[32,36,48,52]
gmwrite $lm[8,12,24,28] $lx0
gmwrite $lm[40,44,56,60] $lx4
gmread $lx0 $ls[8,12,24,28]
gmread $lx4 $ls[40,44,56,60]
gmwrite $lm[2,6,18,22] $lx0
gmwrite $lm[34,38,50,54] $lx4
gmread $lx0 $ls[2,6,18,22]
gmread $lx4 $ls[34,38,50,54]
gmwrite $lm[10,14,26,30] $lx0
gmwrite $lm[42,46,58,62] $lx4
gmread $lx0 $ls[10,14,26,30]
gmread $lx4 $ls[42,46,58,62]
gbfn $ls0v $ls0v
gbfn $ls8v $ls8v
gbfn $ls16v $ls16v
gbfn $ls24v $ls24v
gbfn $ls32v $ls32v
gbfn $ls40v $ls40v
gbfn $ls48v $ls48v
gbfn $ls56v $ls56v
gbfn $lm0v $lr0v
gbfn $lm8v $lr8v
gbfn $lm16v $lr16v
gbfn $lm24v $lr24v
gbfn $lm32v $lr32v
gbfn $lm40v $lr40v
gbfn $lm48v $lr48v
gbfn $lm56v $lr56v
#A = AA * BC
#A [0,4,16,20] [32,36,48,52]
#B [8,12,24,28] [40,44,56,60]
#C [2,6,18,22] [34,38,50,54]
#D [10,14,26,30] [42,46,58,62]
gmwrite $lr[0,4,16,20] $lx0 #right=A0
gmwrite $lr[32,36,48,52] $lx4 #right=A1
gmmul $lx $ls[0,4,16,20] $ln[0,4,16,20] #left=A0 #dest=A0
gmmul $lx $ls[32,36,48,52] $ln[32,36,48,52] #left=A1 #dest=A1
gmwrite $lr[2,6,18,22] $lx0 #right=C0
gmwrite $lr[34,38,50,54] $lx4 #right=C1
gmfma $lx $ls[8,12,24,28] $ln[0,4,16,20] $ln[0,4,16,20] #left=B0 #dest=A0A0
nop
nop
gmfma $lx $ls[40,44,56,60] $ln[32,36,48,52] $ln[32,36,48,52] #left=B1 #dest=A1A1
#C = AB * BD
#A [0,4,16,20] [32,36,48,52]
#B [8,12,24,28] [40,44,56,60]
#C [2,6,18,22] [34,38,50,54]
#D [10,14,26,30] [42,46,58,62]
gmwrite $lr[8,12,24,28] $lx0 #right=B0
gmwrite $lr[40,44,56,60] $lx4 #right=B1
gmmul $lx $ls[0,4,16,20] $ln[2,6,18,22] #left=A0 #dest=C0
gmmul $lx $ls[32,36,48,52] $ln[34,38,50,54] #left=A1 #dest=C1
gmwrite $lr[10,14,26,30] $lx0 #right=D0
gmwrite $lr[42,46,58,62] $lx4 #right=D1
gmfma $lx $ls[8,12,24,28] $ln[2,6,18,22] $ln[2,6,18,22] #left=B0 #dest=C0C0
nop
nop
gmfma $lx $ls[40,44,56,60] $ln[34,38,50,54] $ln[34,38,50,54] #left=B1 #dest=C1C1
#B = CA * DC
#A [0,4,16,20] [32,36,48,52]
#B [8,12,24,28] [40,44,56,60]
#C [2,6,18,22] [34,38,50,54]
#D [10,14,26,30] [42,46,58,62]
gmwrite $lr[0,4,16,20] $lx0 #right=A0
gmwrite $lr[32,36,48,52] $lx4 #right=A1
gmmul $lx $ls[2,6,18,22] $ln[8,12,24,28] #left=C0 #dest=B0
gmmul $lx $ls[34,38,50,54] $ln[40,44,56,60] #left=C1 #dest=B1
gmwrite $lr[2,6,18,22] $lx0 #right=C0
gmwrite $lr[34,38,50,54] $lx4 #right=C1
gmfma $lx $ls[10,14,26,30] $ln[8,12,24,28] $ln[8,12,24,28] #left=D0 #dest=B0B0
nop
nop
gmfma $lx $ls[42,46,58,62] $ln[40,44,56,60] $ln[40,44,56,60] #left=D1 #dest=B1B1
#D = CB * DD
#A [0,4,16,20] [32,36,48,52]
#B [8,12,24,28] [40,44,56,60]
#C [2,6,18,22] [34,38,50,54]
#D [10,14,26,30] [42,46,58,62]
gmwrite $lr[8,12,24,28] $lx0 #right=B0
gmwrite $lr[40,44,56,60] $lx4 #right=B1
gmmul $lx $ls[2,6,18,22] $ln[10,14,26,30] #left=C0 #dest=D0
gmmul $lx $ls[34,38,50,54] $ln[42,46,58,62] #left=C1 #dest=D1
gmwrite $lr[10,14,26,30] $lx0 #right=D0
gmwrite $lr[42,46,58,62] $lx4 #right=D1
gmfma $lx $ls[10,14,26,30] $ln[10,14,26,30] $ln[10,14,26,30] #left=D0 #dest=D0D0
nop
nop
gmfma $lx $ls[42,46,58,62] $ln[42,46,58,62] $ln[42,46,58,62] #left=D1 #dest=D1D1
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Output

ACCEPTED!! score=72 j=72 m=0 bytes=2074
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Error

------------------- vsm --------------------
# ======= In(0): ((8_L2B:1), (4_PE:1, 2:1, 2_W:1), (16:2))@LM0 / Float =======
d set $lm0n0c0p0 1 422C000042140000 # values=[43.0, 37.0] / Float @[0,0,0],[0,1,0]
d set $lm4n0c0p0 1 42BE000042640000 # values=[95.0, 57.0] / Float @[0,0,1],[0,1,1]
d set $lm8n0c0p0 1 4296000042400000 # values=[75.0, 48.0] / Float @[0,0,2],[0,1,2]
d set $lm12n0c0p0 1 427C000042100000 # values=[63.0, 36.0] / Float @[0,0,3],[0,1,3]
d set $lm16n0c0p0 1 41C0000042820000 # values=[24.0, 65.0] / Float @[0,0,4],[0,1,4]
d set $lm20n0c0p0 1 41C0000041B00000 # values=[24.0, 22.0] / Float @[0,0,5],[0,1,5]
d set $lm24n0c0p0 1 4170000042100000 # values=[15.0, 36.0] / Float @[0,0,6],[0,1,6]
d set $lm28n0c0p0 1 42AE000042280000 # values=[87.0, 42.0] / Float @[0,0,7],[0,1,7]
d set $lm32n0c0p0 1 42800000424C0000 # values=[64.0, 51.0] / Float @[0,0,8],[0,1,8]
d set $lm36n0c0p0 1 4292000042A00000 # values=[73.0, 80.0] / Float @[0,0,9],[0,1,9]
d set $lm40n0c0p0 1 4130000041D80000 # values=[11.0, 27.0] / Float @[0,0,10],[0,1,10]
d set $lm44n0c0p0 1 42C2000042600000 # values=[97.0, 56.0] / Float @[0,0,11],[0,1,11]
d set $lm48n0c0p0 1 42A80000427C0000 # values=[84.0, 63.0] / Float @[0,0,12],[0,1,12]
d set $lm52n0c0p0 1 41E8000041600000 # values=[29.0, 14.0] / Float @[0,0,13],[0,1,13]
d set $lm56n0c0p0 1 41D0000042800000 # values=[26.0, 64.0] / Float @[0,0,14],[0,1,14]
d set $lm60n0c0p0 1 41D0000041C80000 # values=[26.0, 25.0] / Float @[0,0,15],[0,1,15]
d set $lm2n0c0p0 1 41700000426C0000 # values=[15.0, 59.0] / Float @[0,2,0],[0,3,0]
d set $lm6n0c0p0 1 42BE000041D00000 # values=[95.0, 26.0] / Float @[0,2,1],[0,3,1]
d set $lm10n0c0p0 1 42C0000042C20000 # values=[96.0, 97.0] / Float @[0,2,2],[0,3,2]
d set $lm14n0c0p0 1 42A40000429E0000 # values=[82.0, 79.0] / Float @[0,2,3],[0,3,3]
d set $lm18n0c0p0 1 4214000042BC0000 # values=[37.0, 94.0] / Float @[0,2,4],[0,3,4]
d set $lm22n0c0p0 1 4190000042B40000 # values=[18.0, 90.0] / Float @[0,2,5],[0,3,5]
d set $lm26n0c0p0 1 428E0000427C0000 # values=[71.0, 63.0] / Float @[0,2,6],[0,3,6]
d set $lm30n0c0p0 1 4244000042B80000 # values=[49.0, 92.0] / Float @[0,2,7],[0,3,7]
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX