Skip to content

Commit

Permalink
Remove dead code in fwht (#275)
Browse files Browse the repository at this point in the history
* fwht() doesn't need length of data parameter
* Remove dead code in fwht

as we're always working on an array of size `order`
  • Loading branch information
AndersTrier committed Mar 11, 2024
1 parent fd7f7a5 commit 85a5e93
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 26 deletions.
18 changes: 5 additions & 13 deletions leopard.go
Original file line number Diff line number Diff line change
Expand Up @@ -451,13 +451,13 @@ func (r *leopardFF16) reconstruct(shards [][]byte, recoverAll bool) error {
}

// Evaluate error locator polynomial
fwht(&errLocs, order, m+r.dataShards)
fwht(&errLocs, m+r.dataShards)

for i := 0; i < order; i++ {
errLocs[i] = ffe((uint(errLocs[i]) * uint(logWalsh[i])) % modulus)
}

fwht(&errLocs, order, order)
fwht(&errLocs, order)

var work [][]byte
if w, ok := r.workPool.Get().([][]byte); ok {
Expand Down Expand Up @@ -863,11 +863,11 @@ func ceilPow2(n int) int {
// Decimation in time (DIT) Fast Walsh-Hadamard Transform
// Unrolls pairs of layers to perform cross-layer operations in registers
// mtrunc: Number of elements that are non-zero at the front of data
func fwht(data *[order]ffe, m, mtrunc int) {
func fwht(data *[order]ffe, mtrunc int) {
// Decimation in time: Unroll 2 layers at a time
dist := 1
dist4 := 4
for dist4 <= m {
for dist4 <= order {
// For each set of dist*4 elements:
for r := 0; r < mtrunc; r += dist4 {
// For each set of dist elements:
Expand Down Expand Up @@ -898,14 +898,6 @@ func fwht(data *[order]ffe, m, mtrunc int) {
dist = dist4
dist4 <<= 2
}

// If there is one layer left:
if dist < m {
dist := uint16(dist)
for i := uint16(0); i < dist; i++ {
fwht2(&data[i], &data[i+dist])
}
}
}

func fwht4(data []ffe, s int) {
Expand Down Expand Up @@ -1036,7 +1028,7 @@ func initFFTSkew() {
}
logWalsh[0] = 0

fwht(logWalsh, order, order)
fwht(logWalsh, order)
}

func initMul16LUT() {
Expand Down
18 changes: 5 additions & 13 deletions leopard8.go
Original file line number Diff line number Diff line change
Expand Up @@ -509,13 +509,13 @@ func (r *leopardFF8) reconstruct(shards [][]byte, recoverAll bool) error {
}

// Evaluate error locator polynomial8
fwht8(&errLocs, order8, m+r.dataShards)
fwht8(&errLocs, m+r.dataShards)

for i := 0; i < order8; i++ {
errLocs[i] = ffe8((uint(errLocs[i]) * uint(logWalsh8[i])) % modulus8)
}

fwht8(&errLocs, order8, order8)
fwht8(&errLocs, order8)

if r.inversion != nil {
c := leopardGF8cache{
Expand Down Expand Up @@ -943,11 +943,11 @@ func subMod8(a, b ffe8) ffe8 {
// Decimation in time (DIT) Fast Walsh-Hadamard Transform
// Unrolls pairs of layers to perform cross-layer operations in registers
// mtrunc: Number of elements that are non-zero at the front of data
func fwht8(data *[order8]ffe8, m, mtrunc int) {
func fwht8(data *[order8]ffe8, mtrunc int) {
// Decimation in time: Unroll 2 layers at a time
dist := 1
dist4 := 4
for dist4 <= m {
for dist4 <= order8 {
// For each set of dist*4 elements:
for r := 0; r < mtrunc; r += dist4 {
// For each set of dist elements:
Expand Down Expand Up @@ -978,14 +978,6 @@ func fwht8(data *[order8]ffe8, m, mtrunc int) {
dist = dist4
dist4 <<= 2
}

// If there is one layer left:
if dist < m {
dist := uint16(dist)
for i := uint16(0); i < dist; i++ {
fwht28(&data[i], &data[i+dist])
}
}
}

func fwht48(data []ffe8, s int) {
Expand Down Expand Up @@ -1113,7 +1105,7 @@ func initFFTSkew8() {
}
logWalsh8[0] = 0

fwht8(logWalsh8, order8, order8)
fwht8(logWalsh8, order8)
}

func initMul8LUT() {
Expand Down

0 comments on commit 85a5e93

Please sign in to comment.