WALSH
Walsh and Haar Transforms
WALSH
is a FORTRAN77 library which
implements versions of the Walsh and Haar transforms.
Note that the programs, as printed in the reference, had a few typographical
errors. Several programs, in particular FHT and FRT, could not be made to
perform as described in the text, and hence have been omitted.
Licensing:
The computer code and data files described and made available on this
web page are distributed under
the GNU LGPL license.
Languages:
WALSH is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
FFTPACK5
is a FORTRAN77 library which
implements the Fast Fourier Transform.
HAAR,
is a FORTRAN77 library which
computes the Haar transform of data.
SFTPACK
a FORTRAN77 library which
implements the "slow" Fourier transform, intended as a teaching
tool and comparison with the fast Fourier transform.
WAVELET,
a FORTRAN77 library which
does some simple calculations with wavelet transforms;
Reference:

Ken Beauchamp,
Walsh functions and their applications,
Academic Press, 1975,
ISBN: 0120840502,
LC: QA404.5.B33.
Source Code:

walsh.f, the source code.

walsh.sh,
BASH commands to compile the source code.
Examples and Tests:
List of Routines:

FFWT performs an inplace fast Walsh transform.

FWT performs a fast Walsh transform.

HAAR performs a Haar transform.

HAARIN inverts a Haar transform.

HNORM computes the normalization factors for a forward or inverse Haar transform.

I4_LOG_2 returns the integer part of the logarithm base 2 of an I4.

I4_MODP returns the nonnegative remainder of integer division.

I4_WRAP forces an I4 to lie between given limits by wrapping.

R8VEC_COPY copies an R8VEC.

R8VEC_SHIFT_CIRCULAR performs a circular shift on an R8VEC.

R8VEC_UNIFORM_01 returns a unit pseudorandom R8VEC.

TIMESTAMP prints out the current YMDHMS date as a timestamp.

WALSH performs a fast Walsh transform.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 16 March 2011.