CWRS clean-ups and optimizations.
authorTimothy B. Terriberry <tterribe@xiph.org>
Tue, 26 May 2009 13:09:27 +0000 (09:09 -0400)
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Tue, 26 May 2009 23:07:41 +0000 (19:07 -0400)
commitd98d8ae087844c616c1f187265ae9d20dea54207
tree14ab3940384d72f11946558d750603e15c0377b1
parent1cca151671509a2c0f7383fe98a1298c37d4fdbd
CWRS clean-ups and optimizations.

Adds specialized O(N*log(K)) versions of cwrsi() and O(N) versions of icwrs()
 for N={3,4,5}, which allows them to operate all the way up to the theoretical
 pulse limit without serious performance degredation.
Also substantially reduces the computation time and stack usage of
 get_required_bits().
On x86-64, this gives a 2% speed-up for 256 sample frames, and almost a 16%
 speed-up for 64 sample frames.
libcelt/cwrs.c
libcelt/cwrs.h
tests/cwrs32-test.c
tests/cwrs64-test.c [deleted file]