BiorthogonalWaveletProvider.java

package com.morphiqlabs.wavelet.api.providers;

import com.morphiqlabs.wavelet.api.BiorthogonalSpline;
import com.morphiqlabs.wavelet.api.Wavelet;
import com.morphiqlabs.wavelet.api.WaveletProvider;
import java.util.List;

/**
 * Provider for biorthogonal wavelets in the VectorWave library.
 * 
 * <p>This provider registers biorthogonal spline wavelets which use different
 * filters for decomposition and reconstruction, allowing for symmetric filters
 * that are important for image processing applications.</p>
 * 
 * <p><strong>Note</strong>: Biorthogonal wavelets now include automatic phase compensation 
 * to correct for inherent circular shifts. Perfect reconstruction is achieved for simple 
 * signals with PERIODIC boundary mode. Complex signals may have small reconstruction errors, 
 * which is normal behavior for biorthogonal wavelets.</p>
 * 
 * <p>This provider is automatically discovered by the ServiceLoader mechanism
 * and registered with the WaveletRegistry on application startup.</p>
 * 
 * @see com.morphiqlabs.wavelet.api.WaveletProvider
 * @see com.morphiqlabs.wavelet.api.BiorthogonalWavelet
 * @see com.morphiqlabs.wavelet.api.WaveletRegistry
 * @since 1.0.0
 */
public class BiorthogonalWaveletProvider implements WaveletProvider {
    /**
     * Creates a provider for biorthogonal spline wavelets.
     */
    public BiorthogonalWaveletProvider() {}
    
    @Override
    public List<Wavelet> getWavelets() {
        return List.of(
            BiorthogonalSpline.BIOR1_3
        );
    }
}