""" Biorthogonal 3.9 wavelet """


class Biorthogonal39:
    """
    Properties
    ----------
     near symmetric, not orthogonal, biorthogonal

    All values are from http://wavelets.pybytes.com/wavelet/bior3.9/
    """
    __name__ = "Biorthogonal Wavelet 3.9"
    __motherWaveletLength__ = 20  # length of the mother wavelet
    __transformWaveletLength__ = 2  # minimum wavelength of input signal

    # decomposition filter
    # low-pass
    decompositionLowFilter = [
        -0.000679744372783699,
        0.002039233118351097,
        0.005060319219611981,
        -0.020618912641105536,
        -0.014112787930175846,
        0.09913478249423216,
        0.012300136269419315,
        -0.32019196836077857,
        0.0020500227115698858,
        0.9421257006782068,
        0.9421257006782068,
        0.0020500227115698858,
        -0.32019196836077857,
        0.012300136269419315,
        0.09913478249423216,
        -0.014112787930175846,
        -0.020618912641105536,
        0.005060319219611981,
        0.002039233118351097,
        -0.000679744372783699,
    ]

    # high-pass
    decompositionHighFilter = [
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        -0.1767766952966369,
        0.5303300858899107,
        -0.5303300858899107,
        0.1767766952966369,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
    ]

    # reconstruction filters
    # low pass
    reconstructionLowFilter = [
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.1767766952966369,
        0.5303300858899107,
        0.5303300858899107,
        0.1767766952966369,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0,
    ]

    # high-pass
    reconstructionHighFilter = [
        -0.000679744372783699,
        -0.002039233118351097,
        0.005060319219611981,
        0.020618912641105536,
        -0.014112787930175846,
        -0.09913478249423216,
        0.012300136269419315,
        0.32019196836077857,
        0.0020500227115698858,
        -0.9421257006782068,
        0.9421257006782068,
        -0.0020500227115698858,
        -0.32019196836077857,
        -0.012300136269419315,
        0.09913478249423216,
        0.014112787930175846,
        -0.020618912641105536,
        -0.005060319219611981,
        0.002039233118351097,
        0.000679744372783699,
    ]
