Skip to content

Commit 85a5e93

Browse files
authored
Remove dead code in fwht (#275)
* fwht() doesn't need length of data parameter * Remove dead code in fwht as we're always working on an array of size `order`
1 parent fd7f7a5 commit 85a5e93

File tree

2 files changed

+10
-26
lines changed

2 files changed

+10
-26
lines changed

leopard.go

+5-13
Original file line numberDiff line numberDiff line change
@@ -451,13 +451,13 @@ func (r *leopardFF16) reconstruct(shards [][]byte, recoverAll bool) error {
451451
}
452452

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

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

460-
fwht(&errLocs, order, order)
460+
fwht(&errLocs, order)
461461

462462
var work [][]byte
463463
if w, ok := r.workPool.Get().([][]byte); ok {
@@ -863,11 +863,11 @@ func ceilPow2(n int) int {
863863
// Decimation in time (DIT) Fast Walsh-Hadamard Transform
864864
// Unrolls pairs of layers to perform cross-layer operations in registers
865865
// mtrunc: Number of elements that are non-zero at the front of data
866-
func fwht(data *[order]ffe, m, mtrunc int) {
866+
func fwht(data *[order]ffe, mtrunc int) {
867867
// Decimation in time: Unroll 2 layers at a time
868868
dist := 1
869869
dist4 := 4
870-
for dist4 <= m {
870+
for dist4 <= order {
871871
// For each set of dist*4 elements:
872872
for r := 0; r < mtrunc; r += dist4 {
873873
// For each set of dist elements:
@@ -898,14 +898,6 @@ func fwht(data *[order]ffe, m, mtrunc int) {
898898
dist = dist4
899899
dist4 <<= 2
900900
}
901-
902-
// If there is one layer left:
903-
if dist < m {
904-
dist := uint16(dist)
905-
for i := uint16(0); i < dist; i++ {
906-
fwht2(&data[i], &data[i+dist])
907-
}
908-
}
909901
}
910902

911903
func fwht4(data []ffe, s int) {
@@ -1036,7 +1028,7 @@ func initFFTSkew() {
10361028
}
10371029
logWalsh[0] = 0
10381030

1039-
fwht(logWalsh, order, order)
1031+
fwht(logWalsh, order)
10401032
}
10411033

10421034
func initMul16LUT() {

leopard8.go

+5-13
Original file line numberDiff line numberDiff line change
@@ -509,13 +509,13 @@ func (r *leopardFF8) reconstruct(shards [][]byte, recoverAll bool) error {
509509
}
510510

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

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

518-
fwht8(&errLocs, order8, order8)
518+
fwht8(&errLocs, order8)
519519

520520
if r.inversion != nil {
521521
c := leopardGF8cache{
@@ -943,11 +943,11 @@ func subMod8(a, b ffe8) ffe8 {
943943
// Decimation in time (DIT) Fast Walsh-Hadamard Transform
944944
// Unrolls pairs of layers to perform cross-layer operations in registers
945945
// mtrunc: Number of elements that are non-zero at the front of data
946-
func fwht8(data *[order8]ffe8, m, mtrunc int) {
946+
func fwht8(data *[order8]ffe8, mtrunc int) {
947947
// Decimation in time: Unroll 2 layers at a time
948948
dist := 1
949949
dist4 := 4
950-
for dist4 <= m {
950+
for dist4 <= order8 {
951951
// For each set of dist*4 elements:
952952
for r := 0; r < mtrunc; r += dist4 {
953953
// For each set of dist elements:
@@ -978,14 +978,6 @@ func fwht8(data *[order8]ffe8, m, mtrunc int) {
978978
dist = dist4
979979
dist4 <<= 2
980980
}
981-
982-
// If there is one layer left:
983-
if dist < m {
984-
dist := uint16(dist)
985-
for i := uint16(0); i < dist; i++ {
986-
fwht28(&data[i], &data[i+dist])
987-
}
988-
}
989981
}
990982

991983
func fwht48(data []ffe8, s int) {
@@ -1113,7 +1105,7 @@ func initFFTSkew8() {
11131105
}
11141106
logWalsh8[0] = 0
11151107

1116-
fwht8(logWalsh8, order8, order8)
1108+
fwht8(logWalsh8, order8)
11171109
}
11181110

11191111
func initMul8LUT() {

0 commit comments

Comments
 (0)