def double_round
bend-collections-laws-math@1.0.0.0 · spec/math/random/chacha8rand.bend:71
import bend-collections-laws-math@1.0.0.0/spec/math/random/chacha8rand.bend as Chacha8rand
import Base
71
72def double_round(x: List<&2, U32>) -> List<&2, U32>:
73 match x:
74 case [x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15]:
75 y1 = quarter([x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15], 0n, 4n, 8n, 12n)
76 y2 = quarter(y1, 1n, 5n, 9n, 13n)
77 y3 = quarter(y2, 2n, 6n, 10n, 14n)
78 y4 = quarter(y3, 3n, 7n, 11n, 15n)
79 y5 = quarter(y4, 0n, 5n, 10n, 15n)
80 y6 = quarter(y5, 1n, 6n, 11n, 12n)
81 y7 = quarter(y6, 2n, 7n, 8n, 13n)
82 quarter(y7, 3n, 4n, 9n, 14n)
83 case _:
84 x