Core.window_rounds: def of bend-collections@1.0.0.0 Import: import bend-collections@1.0.0.0/src/crypto/sha512/core.bend as Core Lines 83-93 of bend-collections@1.0.0.0/src/crypto/sha512/core.bend: https://jend.leeeet.dev/read.txt?path=bend-collections@1.0.0.0/src/crypto/sha512/core.bend&start_line=83&end_line=93 import Base import bend-collections@1.0.0.0/src/crypto/sha512/types.bend as T # The remaining q rounds (64 after the block's own sixteen): each derives its # schedule word from the window, then drops the oldest word. def window_rounds(q: Nat, win: Sched, ks: List<&2, T.Lane>, s: T.State) -> T.State: match q win ks: case 0n _ _: s case 1n+r _ Nil{}: s case 1n+r Win{a, +b, c, d, e, f, +g, h, i, j, k, l, m, n, +o, +p} x <> xt: +w = next(b, g, o, p) window_rounds(r, Win{w, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o}, xt, step(s, x, w)) Uses (7): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/sha512/core.bend&name=Sched https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/sha512/core.bend&name=next https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/sha512/core.bend&name=step https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/sha512/types.bend&name=Lane https://jend.leeeet.dev/definition.txt?path=bend-collections@1.0.0.0/src/crypto/sha512/types.bend&name=State