diff --git a/LeopardFF8.cpp b/LeopardFF8.cpp index 08dcd3f..15c82ea 100644 --- a/LeopardFF8.cpp +++ b/LeopardFF8.cpp @@ -845,7 +845,7 @@ void Encode( unsigned original_count, unsigned recovery_count, unsigned m, - void* const * const data, + void* const * data, void** work) { // work <- data @@ -890,6 +890,7 @@ void Encode( { // temp <- data + i + data += m; void** temp = work + m; // FIXME: Unroll first loop to eliminate this @@ -930,6 +931,7 @@ void Encode( // temp <- data + i + data += m; void** temp = work + m; for (unsigned j = 0; j < last_count; ++j) @@ -971,9 +973,10 @@ void Encode( temp); } - // work <- FFT(work, m, 0) skip_body: + // work <- FFT(work, m, 0) + for (unsigned width = (m >> 1); width > 0; width >>= 1) { const ffe_t* skewLUT = FFTSkew + width - 1; @@ -1201,7 +1204,7 @@ void Decode( width, work + j, work + j + width, - FFTSkew[j]); + skewLUT[j]); } } diff --git a/tests/benchmark.cpp b/tests/benchmark.cpp index 5fcc1c1..0e1c5c5 100644 --- a/tests/benchmark.cpp +++ b/tests/benchmark.cpp @@ -389,7 +389,7 @@ struct TestParameters unsigned original_count = 1000; // under 65536 unsigned recovery_count = 100; // under 65536 - original_count #else - unsigned original_count = 200; // under 65536 + unsigned original_count = 100; // under 65536 unsigned recovery_count = 10; // under 65536 - original_count #endif unsigned buffer_bytes = 64000; // multiple of 64 bytes @@ -511,7 +511,6 @@ static void BasicTest(const TestParameters& params) { if (!original_data[i]) { - cout << "Checking " << i << endl; if (!CheckPacket(decode_work_data[i], params.buffer_bytes)) { cout << "Error: Data was corrupted" << endl; diff --git a/tests/experiments.cpp b/tests/experiments.cpp index 1f3c8e1..e085bea 100644 --- a/tests/experiments.cpp +++ b/tests/experiments.cpp @@ -554,6 +554,7 @@ void test(unsigned original_count, unsigned recovery_count, unsigned seed) for (unsigned i = m; i < m + recovery_count; ++i) erasure[i] = true; +#if 0 // permuting the erasure array for (unsigned i = m + original_count - 1; i > 0; --i) { @@ -566,6 +567,7 @@ void test(unsigned original_count, unsigned recovery_count, unsigned seed) erasure[pos] = tmp; } } +#endif //---------main processing---------- @@ -604,8 +606,8 @@ int main(int argc, char **argv) for (;;) { #ifdef LEO_SHORT_FIELD - const unsigned input_count = 100; - const unsigned recovery_count = 10; + const unsigned input_count = 128; + const unsigned recovery_count = 128; #else // LEO_SHORT_FIELD const unsigned input_count = 10000; const unsigned recovery_count = 2000;