gen: use short declarations for c and d vars

master
magical 2024-10-05 21:02:12 -07:00
parent 055806bbad
commit b5d2ed36ca
2 changed files with 12 additions and 16 deletions

6
gen.go
View File

@ -85,15 +85,13 @@ func roundGo(a *[25]uint64) {
{{ end }} {{ end }}
// Theta // Theta
var c0, c1, c2, c3, c4 uint64
{{ range $x := count 5 -}} {{ range $x := count 5 -}}
c{{$x}} = {{a $x 0}} ^ {{a $x 1}} ^ {{a $x 2}} ^ {{a $x 3}} ^ {{a $x 4}} c{{$x}} := {{a $x 0}} ^ {{a $x 1}} ^ {{a $x 2}} ^ {{a $x 3}} ^ {{a $x 4}}
{{ end }} {{ end }}
var d0, d1, d2, d3, d4 uint64
{{ range $x := count 5 -}} {{ range $x := count 5 -}}
{{ $x4 := add $x 4 | mod -}} {{ $x4 := add $x 4 | mod -}}
{{ $x1 := add $x 1 | mod -}} {{ $x1 := add $x 1 | mod -}}
d{{$x}} = c{{$x4}} ^ (c{{$x1}}<<1 | c{{$x1}}>>63) d{{$x}} := c{{$x4}} ^ (c{{$x1}}<<1 | c{{$x1}}>>63)
{{ range $y := count 5 -}} {{ range $y := count 5 -}}
{{b $x $y}} = {{a $x $y}} ^ d{{$x}} {{b $x $y}} = {{a $x $y}} ^ d{{$x}}
{{ end }} {{ end }}

View File

@ -12,43 +12,41 @@ func roundGo(a *[25]uint64) {
var b40, b41, b42, b43, b44 uint64 var b40, b41, b42, b43, b44 uint64
// Theta // Theta
var c0, c1, c2, c3, c4 uint64 c0 := a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20]
c0 = a[0] ^ a[5] ^ a[10] ^ a[15] ^ a[20] c1 := a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21]
c1 = a[1] ^ a[6] ^ a[11] ^ a[16] ^ a[21] c2 := a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22]
c2 = a[2] ^ a[7] ^ a[12] ^ a[17] ^ a[22] c3 := a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23]
c3 = a[3] ^ a[8] ^ a[13] ^ a[18] ^ a[23] c4 := a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
c4 = a[4] ^ a[9] ^ a[14] ^ a[19] ^ a[24]
var d0, d1, d2, d3, d4 uint64 d0 := c4 ^ (c1<<1 | c1>>63)
d0 = c4 ^ (c1<<1 | c1>>63)
b00 = a[0] ^ d0 b00 = a[0] ^ d0
b01 = a[5] ^ d0 b01 = a[5] ^ d0
b02 = a[10] ^ d0 b02 = a[10] ^ d0
b03 = a[15] ^ d0 b03 = a[15] ^ d0
b04 = a[20] ^ d0 b04 = a[20] ^ d0
d1 = c0 ^ (c2<<1 | c2>>63) d1 := c0 ^ (c2<<1 | c2>>63)
b10 = a[1] ^ d1 b10 = a[1] ^ d1
b11 = a[6] ^ d1 b11 = a[6] ^ d1
b12 = a[11] ^ d1 b12 = a[11] ^ d1
b13 = a[16] ^ d1 b13 = a[16] ^ d1
b14 = a[21] ^ d1 b14 = a[21] ^ d1
d2 = c1 ^ (c3<<1 | c3>>63) d2 := c1 ^ (c3<<1 | c3>>63)
b20 = a[2] ^ d2 b20 = a[2] ^ d2
b21 = a[7] ^ d2 b21 = a[7] ^ d2
b22 = a[12] ^ d2 b22 = a[12] ^ d2
b23 = a[17] ^ d2 b23 = a[17] ^ d2
b24 = a[22] ^ d2 b24 = a[22] ^ d2
d3 = c2 ^ (c4<<1 | c4>>63) d3 := c2 ^ (c4<<1 | c4>>63)
b30 = a[3] ^ d3 b30 = a[3] ^ d3
b31 = a[8] ^ d3 b31 = a[8] ^ d3
b32 = a[13] ^ d3 b32 = a[13] ^ d3
b33 = a[18] ^ d3 b33 = a[18] ^ d3
b34 = a[23] ^ d3 b34 = a[23] ^ d3
d4 = c3 ^ (c0<<1 | c0>>63) d4 := c3 ^ (c0<<1 | c0>>63)
b40 = a[4] ^ d4 b40 = a[4] ^ d4
b41 = a[9] ^ d4 b41 = a[9] ^ d4
b42 = a[14] ^ d4 b42 = a[14] ^ d4