The craplet page (assorted broken Wavelet code)

The DWT has a particularly simple structure1, nevertheless many implementations are not functional...

J. R. Parker: Algorithms for Image Processing and Computer Vision

Wiley Computer Publishing, 1996
ISBN 0-471-14056-2

on page 269 (Fig. 7.9) the line

    } while (i <= nover2);
should read
    } while (i < nover2)

the code on the accompaigning CDROM is also wrong: CH7/FWT2D.C and CH7/FWT1D.C need to be fixed

M. V. Wickerhauser: Adapted Wavelet Analysis from Theory to Software

A. K. Peters, 1993
ISBN 1-56881-041-5

on page 206, the code for cdpo2() is broken; the third inner for loop should read:

    For J = BEGIN to F.OMEGA
      OUT[I*STEP] += FILTER[J] * IN[2*I-J+Q]

on page 207, the wrong index variable is used in acdpo(); all three for loops should use j to reference the OUT[] array:

    For I = 0 to JO2-Q2
      OUT[J*STEP] += FILTER[Q+2*I-J]*IN[I]
    For I = max(0,JA2) to min(Q2-1,JO2)
      OUT[J*STEP] += FILTER[2*I-J]*IN[I]
    For I = JA2+Q2 to Q2-1
      OUT[J*STEP] += FILTER[2*I-J-Q]*IN[I]
link to Errata page

Daniel Lemire: FastSymmlet8.C

had a buffer overrun, has been fixed already! Daniel's updated code (in C++ and Java) is available at

1 M. V. Wickerhauser, Adapted Wavelet Analysis from Theory to Software, 1993; section 6.2, p. 218, Peter Meerwald