public static WaveletDescription<WlCoef_F32> daubJ_F32( int J ) {
		if( J != 4 ) {
			throw new IllegalArgumentException("Only 4 is currently supported");
		}

		WlCoef_F32 coef = new WlCoef_F32();

		coef.offsetScaling = 0;
		coef.offsetWavelet = 0;

		coef.scaling = new float[4];
		coef.wavelet = new float[4];

		double sqrt3 = Math.sqrt(3);
		double div = 4.0*Math.sqrt(2);
		coef.scaling[0] = (float)((1+sqrt3)/div);
		coef.scaling[1] = (float)((3+sqrt3)/div);
		coef.scaling[2] = (float)((3-sqrt3)/div);
		coef.scaling[3] = (float)((1-sqrt3)/div);

		coef.wavelet[0] = coef.scaling[3];
		coef.wavelet[1] = -coef.scaling[2];
		coef.wavelet[2] = coef.scaling[1];
		coef.wavelet[3] = -coef.scaling[0];

		WlBorderCoefStandard<WlCoef_F32> inverse = new WlBorderCoefStandard<>(coef);

		return new WaveletDescription<>(new BorderIndex1D_Wrap(), coef, inverse);
	}
public static WaveletDescription < WlCoef_F32 > daubJ_F32 ( int J ) { if ( J != 4 ) { throw new IllegalArgumentException ( "Only 4 is currently supported" ) ; } WlCoef_F32 coef = new WlCoef_F32 ( ) ; coef . offsetScaling = 0 ; coef . offsetWavelet = 0 ; coef . scaling = new float [ 4 ] ; coef . wavelet = new float [ 4 ] ; double sqrt3 = Math . sqrt ( 3 ) ; double div = 4.0 * Math . sqrt ( 2 ) ; coef . scaling [ 0 ] = ( float ) ( ( 1 + sqrt3 ) / div ) ; coef . scaling [ 1 ] = ( float ) ( ( 3 + sqrt3 ) / div ) ; coef . scaling [ 2 ] = ( float ) ( ( 3 - sqrt3 ) / div ) ; coef . scaling [ 3 ] = ( float ) ( ( 1 - sqrt3 ) / div ) ; coef . wavelet [ 0 ] = coef . scaling [ 3 ] ; coef . wavelet [ 1 ] = - coef . scaling [ 2 ] ; coef . wavelet [ 2 ] = coef . scaling [ 1 ] ; coef . wavelet [ 3 ] = - coef . scaling [ 0 ] ; WlBorderCoefStandard < WlCoef_F32 > inverse = new WlBorderCoefStandard < > ( coef ) ; return new WaveletDescription < > ( new BorderIndex1D_Wrap ( ) , coef , inverse ) ; }
<p>
DaubJ wavelets have the following properties:<br>
<ul>
<li>Conserve the signal's energy</li>
<li>If the signal is approximately polynomial of degree J/2-1 or less within the support then fluctuations are approximately zero.</li>
<li>The sum of the scaling numbers is sqrt(2)</li>
<li>The sum of the wavelet numbers is 0</li>
</ul>
</p>

@param J The wavelet's degree.
@return Description of the DaubJ wavelet.