public void inverse ( double [ ] a ) { int n = a . length ; if ( ! Math . isPower2 ( n ) ) { throw new IllegalArgumentException ( "The data vector size is not a power of 2." ) ; } if ( n < ncof ) { throw new IllegalArgumentException ( "The data vector size is less than wavelet coefficient size." ) ; } int start = n >> ( int ) Math . floor ( Math . log2 ( n / ( ncof - 1 ) ) ) ; for ( int nn = start ; nn <= n ; nn <<= 1 ) { backward ( a , nn ) ; } }
Inverse discrete wavelet transform .