ExtraWaveletFamilies

Coiflet and Symlet orthonormal wavelet families, plugged into GSL’s own wavelet-family mechanism (gsl_wavelet_type is a public, pluggable {name, init-callback} struct — see gsl_wavelet.h) so WaveletTransform can select them exactly like GSL’s own built-in Daubechies/Haar/Bspline families, without patching GSL itself or adding a new external wavelet library dependency.

Copyright (C) 2026 by Elena Cuoco elena.cuoco@unibo.it

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Coefficients are the standard, published Coiflet/Symlet scaling (low-pass analysis) filters, cross-checked (2026-08-03) against PyWavelets (pywt.Wavelet(name).filter_bank, itself the well-established reference implementation) for exact orthonormality: sum(h^2) == 1 and sum(h) == sqrt(2) confirmed to within float64 rounding for every array below. PyWavelets stores filters in the OPPOSITE tap order from GSL’s own daubechies.c convention — confirmed by reversing PyWavelets’ db2 and matching GSL’s literal h_4/g_4 arrays element-for-element — so every array below is PyWavelets’ filter_bank[0], reversed, not used directly.

Author

Elena Cuoco elena.cuoco@unibo.it

Date

2026

For orthogonal (as opposed to Bspline’s biorthogonal) wavelets, analysis and synthesis filters coincide (h1==h2, g1==g2) and the high-pass filter is the standard quadrature-mirror flip of the low-pass one: g[i] = (-1)^i * h[nc-1-i] — verified against GSL’s own h_4/g_4 daubechies tables before being applied here.

namespace tsa

The main namespace of the library.

tsa namespace

namespace

tsa namespace

Tag() is a small XML-tag-name formatting helper, kept (and still bound to Python, see pytsa.cpp) even though its original caller — the DVECTOR_XML_SERIALIZE/DMATRIX_XML_SERIALIZE/BOOL_XML_SERIALIZE macros this file used to also define, wrapping the now-removed eternity XML persistence framework — is gone (see CerealPersistence.hpp for the modern replacement, plain Cereal serialize() members, no string tags needed).