Inversion

Submission Date: 2024/9/22 22:20:19
Status: Accepted
Author: monman53
Lines: 68

VSM

imm i"131" $s300v # 128 + 3
#================================
# Index calculation
#================================
llsl $l2bid $aluf $lr0v
lor $l1bid $aluf $lr0v
#================================
# Max set
#================================
lpassa $lls300 $llm128v
lpassa $lls300 $llm144v
lpassa $lls300 $llm160v
lpassa $lls300 $llm176v
lpassa $lls300 $llm192v
lpassa $lls300 $llm208v
lpassa $lls300 $llm224v
lpassa $lls300 $llm240v
nop
# lpassa $llr0 $llm256v
#================================
# 64 position value
#================================
lpackbit $lr0 $ls100 $t
#================================
# 4 chunk x 16
#================================
lpassa $llm0v $lln0v
lpassa $llm16v $lln16v
lpassa $llm32v $lln32v
lpassa $llm48v $lln48v
lpassa $llm64v $lln64v
lpassa $llm80v $lln80v
lpassa $llm96v $lln96v
lpassa $llm112v $lln112v
nop
# $lr200v, $ls200v: counter
imm f"1.0" $lr250v $ls250v
isub $lmt2v $ln0v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt10v $ln8v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt18v $ln16v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt26v $ln24v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt34v $ln32v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt42v $ln40v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt50v $ln48v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt58v $ln56v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt66v $ln64v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt74v $ln72v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt82v $ln80v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt90v $ln88v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt98v $ln96v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt106v $ln104v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1; isub $lmt114v $ln112v $omr1
fvadd $lr200v $ls250v $lr200v/$imr1; isub $lmt122v $ln120v $omr1
fvadd $ls200v $lr250v $ls200v/$imr1
nop
fvadd $lr200v $ls200v $lr200v
fftoi $mauf $nowrite
#================================
# concat PE -> L1BM (lb0 - lb256)
#================================
l1bmd $aluf $lb0
nop/2
#================================
# reduction L1BM [lb0, lb64) -> L2BM [lc0, lc64)
#================================
l2bmriiadd $lb0 $lc0
l2bmriiadd $lb64 $lc64
l2bmriiadd $lb128 $lc128
l2bmriiadd $lb192 $lc192
nop/2
#================================
# reduction L2BM [lc0, lc256) -> PDM [p0, p256)
#================================
mvriiadd/n256 $lc0 $p0@0
nop/2
#================================
# broadcast PDM [p0, p256) -> L2BM [lc0, lc256)
#================================
mvb/n256 $p0@0 $lc0
#================================
# broadcast L2BM [lc0, lc64) -> L1BM [lb0, lb64)
#================================
l2bmb $lc0 $lb0
l2bmb $lc64 $lb64
l2bmb $lc128 $lb128
l2bmb $lc192 $lb192
nop/2
#================================
# distribute L1BM (lb0 - lb256) -> PE
#================================
l1bmd $lb0 $lr0v $ls0v
# zero $ls0v
imm i"4096" $lr100v
iadd $ls0 $lr2 $nowrite
iadd $aluf $lr4 $nowrite
iadd $aluf $lr6 $nowrite
isub $lr100v $aluf $ln0v
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Output

ACCEPTED!! score=68 j=66 m=2 bytes=1960
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Standard Error

------------------- vsm --------------------
# ======= In(0): ((16_MAB:1, 4_PE:1, 2_W:1), (64:1))@LM0 / UInt =======
d set $lm0m0p0 1 0000003000000055 # values=[48, 85] / UInt @[0,0],[1,0]
d set $lm2m0p0 1 000000100000000D # values=[16, 13] / UInt @[0,1],[1,1]
d set $lm4m0p0 1 0000006100000059 # values=[97, 89] / UInt @[0,2],[1,2]
d set $lm6m0p0 1 000000450000001B # values=[69, 27] / UInt @[0,3],[1,3]
d set $lm8m0p0 1 0000004500000056 # values=[69, 86] / UInt @[0,4],[1,4]
d set $lm10m0p0 1 000000610000004D # values=[97, 77] / UInt @[0,5],[1,5]
d set $lm12m0p0 1 0000004000000057 # values=[64, 87] / UInt @[0,6],[1,6]
d set $lm14m0p0 1 0000004900000001 # values=[73, 1] / UInt @[0,7],[1,7]
d set $lm16m0p0 1 0000005400000019 # values=[84, 25] / UInt @[0,8],[1,8]
d set $lm18m0p0 1 000000040000000D # values=[4, 13] / UInt @[0,9],[1,9]
d set $lm20m0p0 1 000000010000003A # values=[1, 58] / UInt @[0,10],[1,10]
d set $lm22m0p0 1 0000001500000037 # values=[21, 55] / UInt @[0,11],[1,11]
d set $lm24m0p0 1 0000003800000006 # values=[56, 6] / UInt @[0,12],[1,12]
d set $lm26m0p0 1 0000004100000002 # values=[65, 2] / UInt @[0,13],[1,13]
d set $lm28m0p0 1 0000004900000016 # values=[73, 22] / UInt @[0,14],[1,14]
d set $lm30m0p0 1 0000006100000011 # values=[97, 17] / UInt @[0,15],[1,15]
d set $lm32m0p0 1 0000000F00000025 # values=[15, 37] / UInt @[0,16],[1,16]
d set $lm34m0p0 1 0000003200000062 # values=[50, 98] / UInt @[0,17],[1,17]
d set $lm36m0p0 1 000000260000000E # values=[38, 14] / UInt @[0,18],[1,18]
d set $lm38m0p0 1 000000550000003F # values=[85, 63] / UInt @[0,19],[1,19]
d set $lm40m0p0 1 0000004B00000058 # values=[75, 88] / UInt @[0,20],[1,20]
d set $lm42m0p0 1 000000570000001B # values=[87, 27] / UInt @[0,21],[1,21]
d set $lm44m0p0 1 0000002700000049 # values=[39, 73] / UInt @[0,22],[1,22]
d set $lm46m0p0 1 0000002500000026 # values=[37, 38] / UInt @[0,23],[1,23]
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX