diff --git a/LeopardFF8.cpp b/LeopardFF8.cpp index d29f6b4..dd36778 100644 --- a/LeopardFF8.cpp +++ b/LeopardFF8.cpp @@ -846,14 +846,18 @@ void Encode( // work <- data // FIXME: Unroll first loop to eliminate this - for (unsigned i = 0; i < original_count; ++i) + unsigned first_end = m; + if (original_count < m) + { + first_end = original_count; + for (unsigned i = original_count; i < m; ++i) + memset(work[i], 0, buffer_bytes); + } + for (unsigned i = 0; i < first_end; ++i) memcpy(work[i], data[i], buffer_bytes); - for (unsigned i = original_count; i < m; ++i) - memset(work[i], 0, buffer_bytes); // work <- IFFT(data, m, m) - const unsigned first_end = (original_count < m) ? original_count : m; for (unsigned width = 1; width < m; width <<= 1) { const unsigned range = width << 1; diff --git a/tests/benchmark.cpp b/tests/benchmark.cpp index dc04e6e..2f42b66 100644 --- a/tests/benchmark.cpp +++ b/tests/benchmark.cpp @@ -389,11 +389,11 @@ struct TestParameters unsigned original_count = 1000; // under 65536 unsigned recovery_count = 100; // under 65536 - original_count #else - unsigned original_count = 128; // under 65536 - unsigned recovery_count = 128; // under 65536 - original_count + unsigned original_count = 200; // under 65536 + unsigned recovery_count = 20; // under 65536 - original_count #endif unsigned buffer_bytes = 64000; // multiple of 64 bytes - unsigned loss_count = 128; // some fraction of original_count + unsigned loss_count = 20; // some fraction of original_count unsigned seed = 0; bool multithreaded = true; };