Argon2.final_go: def of bend-collections@1.0.0.0 Import: import bend-collections@1.0.0.0/src/crypto/argon2/argon2.bend as Argon2 Lines 317-324 of bend-collections@1.0.0.0/src/crypto/argon2/argon2.bend: https://jend.leeeet.dev/read.txt?path=bend-collections@1.0.0.0/src/crypto/argon2/argon2.bend&start_line=317&end_line=324 import Base import bend-collections@1.0.0.0/src/crypto/argon2/types.bend as A import bend-collections@1.0.0.0/src/crypto/argon2/blamka.bend as G import bend-collections@1.0.0.0/src/crypto/argon2/memory.bend as M # C = B[0][q-1] XOR .. XOR B[p-1][q-1]: pair holds the memory and B[l][q-1], # n more lanes follow. def final_go(n: Nat, +l: Nat, +q: Nat, c: A.Block, pair: Array & A.Block) -> A.Block: match n pair: case 0n Tuple{a, b}: G.xor(c, b) case 1n+rest Tuple{a, b}: final_go(rest, Nat.add(l, 1n), q, G.xor(c, b), M.get(Nat.add(Nat.mul(Nat.add(l, 1n), q), Nat.sub(q, 1n)), a)) Uses (11): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.sub https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/argon2/blamka.bend&name=xor https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/argon2/memory.bend&name=get https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/argon2/types.bend&name=Block