WaveletName.java
package com.morphiqlabs.wavelet.api;
/**
* Enum of all supported wavelets in VectorWave.
* Provides type-safe wavelet selection and lookup.
*
* @since 1.0.0
*/
public enum WaveletName {
/** Haar wavelet. */
HAAR("haar", "Haar wavelet", WaveletType.ORTHOGONAL),
/** Daubechies 2 wavelet. */
DB2("db2", "Daubechies 2", WaveletType.ORTHOGONAL),
/** Daubechies 4 wavelet. */
DB4("db4", "Daubechies 4", WaveletType.ORTHOGONAL),
/** Daubechies 6 wavelet. */
DB6("db6", "Daubechies 6", WaveletType.ORTHOGONAL),
/** Daubechies 8 wavelet. */
DB8("db8", "Daubechies 8", WaveletType.ORTHOGONAL),
/** Daubechies 10 wavelet. */
DB10("db10", "Daubechies 10", WaveletType.ORTHOGONAL),
/** Daubechies 12 wavelet. */
DB12("db12", "Daubechies 12", WaveletType.ORTHOGONAL),
/** Daubechies 14 wavelet. */
DB14("db14", "Daubechies 14", WaveletType.ORTHOGONAL),
/** Daubechies 16 wavelet. */
DB16("db16", "Daubechies 16", WaveletType.ORTHOGONAL),
/** Daubechies 18 wavelet. */
DB18("db18", "Daubechies 18", WaveletType.ORTHOGONAL),
/** Daubechies 20 wavelet. */
DB20("db20", "Daubechies 20", WaveletType.ORTHOGONAL),
/** Daubechies 22 wavelet. */
DB22("db22", "Daubechies 22", WaveletType.ORTHOGONAL),
/** Daubechies 24 wavelet. */
DB24("db24", "Daubechies 24", WaveletType.ORTHOGONAL),
/** Daubechies 26 wavelet. */
DB26("db26", "Daubechies 26", WaveletType.ORTHOGONAL),
/** Daubechies 28 wavelet. */
DB28("db28", "Daubechies 28", WaveletType.ORTHOGONAL),
/** Daubechies 30 wavelet. */
DB30("db30", "Daubechies 30", WaveletType.ORTHOGONAL),
/** Daubechies 32 wavelet. */
DB32("db32", "Daubechies 32", WaveletType.ORTHOGONAL),
/** Daubechies 34 wavelet. */
DB34("db34", "Daubechies 34", WaveletType.ORTHOGONAL),
/** Daubechies 36 wavelet. */
DB36("db36", "Daubechies 36", WaveletType.ORTHOGONAL),
/** Daubechies 38 wavelet. */
DB38("db38", "Daubechies 38", WaveletType.ORTHOGONAL), // PyWavelets maximum
/** Symlet 2 wavelet. */
SYM2("sym2", "Symlet 2", WaveletType.ORTHOGONAL),
/** Symlet 3 wavelet. */
SYM3("sym3", "Symlet 3", WaveletType.ORTHOGONAL),
/** Symlet 4 wavelet. */
SYM4("sym4", "Symlet 4", WaveletType.ORTHOGONAL),
/** Symlet 5 wavelet. */
SYM5("sym5", "Symlet 5", WaveletType.ORTHOGONAL),
/** Symlet 6 wavelet. */
SYM6("sym6", "Symlet 6", WaveletType.ORTHOGONAL),
/** Symlet 7 wavelet. */
SYM7("sym7", "Symlet 7", WaveletType.ORTHOGONAL),
/** Symlet 8 wavelet. */
SYM8("sym8", "Symlet 8", WaveletType.ORTHOGONAL),
/** Symlet 9 wavelet. */
SYM9("sym9", "Symlet 9", WaveletType.ORTHOGONAL),
/** Symlet 10 wavelet. */
SYM10("sym10", "Symlet 10", WaveletType.ORTHOGONAL),
/** Symlet 11 wavelet. */
SYM11("sym11", "Symlet 11", WaveletType.ORTHOGONAL),
/** Symlet 12 wavelet. */
SYM12("sym12", "Symlet 12", WaveletType.ORTHOGONAL),
/** Symlet 13 wavelet. */
SYM13("sym13", "Symlet 13", WaveletType.ORTHOGONAL),
/** Symlet 14 wavelet. */
SYM14("sym14", "Symlet 14", WaveletType.ORTHOGONAL),
/** Symlet 15 wavelet. */
SYM15("sym15", "Symlet 15", WaveletType.ORTHOGONAL),
/** Symlet 16 wavelet. */
SYM16("sym16", "Symlet 16", WaveletType.ORTHOGONAL),
/** Symlet 17 wavelet. */
SYM17("sym17", "Symlet 17", WaveletType.ORTHOGONAL),
/** Symlet 18 wavelet. */
SYM18("sym18", "Symlet 18", WaveletType.ORTHOGONAL),
/** Symlet 19 wavelet. */
SYM19("sym19", "Symlet 19", WaveletType.ORTHOGONAL),
/** Symlet 20 wavelet. */
SYM20("sym20", "Symlet 20", WaveletType.ORTHOGONAL),
/** Coiflet 1 wavelet. */
COIF1("coif1", "Coiflet 1", WaveletType.ORTHOGONAL),
/** Coiflet 2 wavelet. */
COIF2("coif2", "Coiflet 2", WaveletType.ORTHOGONAL),
/** Coiflet 3 wavelet. */
COIF3("coif3", "Coiflet 3", WaveletType.ORTHOGONAL),
/** Coiflet 4 wavelet. */
COIF4("coif4", "Coiflet 4", WaveletType.ORTHOGONAL),
/** Coiflet 5 wavelet. */
COIF5("coif5", "Coiflet 5", WaveletType.ORTHOGONAL),
/** Coiflet 6 wavelet. */
COIF6("coif6", "Coiflet 6", WaveletType.ORTHOGONAL),
/** Coiflet 7 wavelet. */
COIF7("coif7", "Coiflet 7", WaveletType.ORTHOGONAL),
/** Coiflet 8 wavelet. */
COIF8("coif8", "Coiflet 8", WaveletType.ORTHOGONAL),
/** Coiflet 9 wavelet. */
COIF9("coif9", "Coiflet 9", WaveletType.ORTHOGONAL),
/** Coiflet 10 wavelet. */
COIF10("coif10", "Coiflet 10", WaveletType.ORTHOGONAL),
/** Coiflet 11 wavelet. */
COIF11("coif11", "Coiflet 11", WaveletType.ORTHOGONAL),
/** Coiflet 12 wavelet. */
COIF12("coif12", "Coiflet 12", WaveletType.ORTHOGONAL),
/** Coiflet 13 wavelet. */
COIF13("coif13", "Coiflet 13", WaveletType.ORTHOGONAL),
/** Coiflet 14 wavelet. */
COIF14("coif14", "Coiflet 14", WaveletType.ORTHOGONAL),
/** Coiflet 15 wavelet. */
COIF15("coif15", "Coiflet 15", WaveletType.ORTHOGONAL),
/** Coiflet 16 wavelet. */
COIF16("coif16", "Coiflet 16", WaveletType.ORTHOGONAL),
/** Coiflet 17 wavelet. */
COIF17("coif17", "Coiflet 17", WaveletType.ORTHOGONAL),
/** Discrete Meyer wavelet. */
DMEY("dmey", "Discrete Meyer wavelet", WaveletType.ORTHOGONAL),
/** Linear Battle-Lemarié wavelet. */
BLEM1("blem1", "Linear Battle-Lemarié", WaveletType.ORTHOGONAL),
/** Quadratic Battle-Lemarié wavelet. */
BLEM2("blem2", "Quadratic Battle-Lemarié", WaveletType.ORTHOGONAL),
/** Cubic Battle-Lemarié wavelet. */
BLEM3("blem3", "Cubic Battle-Lemarié", WaveletType.ORTHOGONAL),
/** Quartic Battle-Lemarié wavelet. */
BLEM4("blem4", "Quartic Battle-Lemarié", WaveletType.ORTHOGONAL),
/** Quintic Battle-Lemarié wavelet. */
BLEM5("blem5", "Quintic Battle-Lemarié", WaveletType.ORTHOGONAL),
/** Biorthogonal 1.1 wavelet. */
BIOR1_1("bior1.1", "Biorthogonal 1.1", WaveletType.BIORTHOGONAL),
/** Biorthogonal 1.3 wavelet. */
BIOR1_3("bior1.3", "Biorthogonal 1.3", WaveletType.BIORTHOGONAL),
/** Biorthogonal 1.5 wavelet. */
BIOR1_5("bior1.5", "Biorthogonal 1.5", WaveletType.BIORTHOGONAL),
/** Biorthogonal 2.2 wavelet. */
BIOR2_2("bior2.2", "Biorthogonal 2.2", WaveletType.BIORTHOGONAL),
/** Biorthogonal 2.4 wavelet. */
BIOR2_4("bior2.4", "Biorthogonal 2.4", WaveletType.BIORTHOGONAL),
/** Biorthogonal 2.6 wavelet. */
BIOR2_6("bior2.6", "Biorthogonal 2.6", WaveletType.BIORTHOGONAL),
/** Biorthogonal 2.8 wavelet. */
BIOR2_8("bior2.8", "Biorthogonal 2.8", WaveletType.BIORTHOGONAL),
/** Biorthogonal 3.1 wavelet. */
BIOR3_1("bior3.1", "Biorthogonal 3.1", WaveletType.BIORTHOGONAL),
/** Biorthogonal 3.3 wavelet. */
BIOR3_3("bior3.3", "Biorthogonal 3.3", WaveletType.BIORTHOGONAL),
/** Biorthogonal 3.5 wavelet. */
BIOR3_5("bior3.5", "Biorthogonal 3.5", WaveletType.BIORTHOGONAL),
/** Biorthogonal 3.7 wavelet. */
BIOR3_7("bior3.7", "Biorthogonal 3.7", WaveletType.BIORTHOGONAL),
/** Biorthogonal 3.9 wavelet. */
BIOR3_9("bior3.9", "Biorthogonal 3.9", WaveletType.BIORTHOGONAL),
/** Biorthogonal 4.4 wavelet (JPEG2000). */
BIOR4_4("bior4.4", "Biorthogonal 4.4 (JPEG2000)", WaveletType.BIORTHOGONAL),
/** Biorthogonal 5.5 wavelet. */
BIOR5_5("bior5.5", "Biorthogonal 5.5", WaveletType.BIORTHOGONAL),
/** Biorthogonal 6.8 wavelet. */
BIOR6_8("bior6.8", "Biorthogonal 6.8", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 1.1 wavelet. */
RBIO1_1("rbio1.1", "Reverse Biorthogonal 1.1", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 1.3 wavelet. */
RBIO1_3("rbio1.3", "Reverse Biorthogonal 1.3", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 1.5 wavelet. */
RBIO1_5("rbio1.5", "Reverse Biorthogonal 1.5", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 2.2 wavelet. */
RBIO2_2("rbio2.2", "Reverse Biorthogonal 2.2", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 2.4 wavelet. */
RBIO2_4("rbio2.4", "Reverse Biorthogonal 2.4", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 2.6 wavelet. */
RBIO2_6("rbio2.6", "Reverse Biorthogonal 2.6", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 2.8 wavelet. */
RBIO2_8("rbio2.8", "Reverse Biorthogonal 2.8", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 3.1 wavelet. */
RBIO3_1("rbio3.1", "Reverse Biorthogonal 3.1", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 3.3 wavelet. */
RBIO3_3("rbio3.3", "Reverse Biorthogonal 3.3", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 3.5 wavelet. */
RBIO3_5("rbio3.5", "Reverse Biorthogonal 3.5", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 3.7 wavelet. */
RBIO3_7("rbio3.7", "Reverse Biorthogonal 3.7", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 3.9 wavelet. */
RBIO3_9("rbio3.9", "Reverse Biorthogonal 3.9", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 4.4 wavelet. */
RBIO4_4("rbio4.4", "Reverse Biorthogonal 4.4", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 5.5 wavelet. */
RBIO5_5("rbio5.5", "Reverse Biorthogonal 5.5", WaveletType.BIORTHOGONAL),
/** Reverse Biorthogonal 6.8 wavelet. */
RBIO6_8("rbio6.8", "Reverse Biorthogonal 6.8", WaveletType.BIORTHOGONAL),
/** Morlet wavelet. */
MORLET("morl", "Morlet wavelet", WaveletType.CONTINUOUS),
/** Mexican Hat wavelet. */
MEXICAN_HAT("mexh", "Mexican Hat wavelet", WaveletType.CONTINUOUS),
/** Gaussian wavelet. */
GAUSSIAN("gaus", "Gaussian wavelet", WaveletType.CONTINUOUS),
/** Paul wavelet. */
PAUL("paul", "Paul wavelet", WaveletType.CONTINUOUS),
/** Derivative of Gaussian wavelet. */
DOG("dog", "Derivative of Gaussian", WaveletType.CONTINUOUS),
/** Shannon wavelet. */
SHANNON("shan", "Shannon wavelet", WaveletType.CONTINUOUS),
/** Frequency B-Spline wavelet. */
FBSP("fbsp", "Frequency B-Spline", WaveletType.CONTINUOUS),
/** Complex Morlet wavelet. */
CMOR("cmor", "Complex Morlet", WaveletType.COMPLEX),
/** Complex Gaussian wavelet. */
CGAU("cgau", "Complex Gaussian", WaveletType.COMPLEX),
/** Complex Shannon wavelet. */
CSHAN("cshan", "Complex Shannon wavelet", WaveletType.COMPLEX),
/** Meyer wavelet. */
MEYER("meyr", "Meyer wavelet", WaveletType.CONTINUOUS),
/** Morse wavelet. */
MORSE("morse", "Morse wavelet", WaveletType.COMPLEX),
/** Ricker wavelet. */
RICKER("ricker", "Ricker wavelet", WaveletType.CONTINUOUS),
/** Hermitian wavelet. */
HERMITIAN("herm", "Hermitian wavelet", WaveletType.CONTINUOUS);
private final String code;
private final String description;
private final WaveletType type;
WaveletName(String code, String description, WaveletType type) {
this.code = code;
this.description = description;
this.type = type;
}
/**
* Get the wavelet code (e.g., "db4", "sym2", "morl").
* @return the wavelet code
*/
public String getCode() {
return code;
}
/**
* Get the human-readable description of the wavelet.
* @return the wavelet description
*/
public String getDescription() {
return description;
}
/**
* Get the type category of this wavelet.
* @return the wavelet type
*/
public WaveletType getType() {
return type;
}
/**
* Get the display name suitable for UI presentation.
* This is an alias for getDescription() to improve clarity.
* @return the display name (e.g., "Symlet 11")
*/
public String getDisplayName() {
return description;
}
@Override
public String toString() {
return description;
}
}