private void powerPhaseIFFT(double[] pow,double[] ph){
  toMagnitude(pow);
  for (int i=0; i < pow.length; i++) {
    double re=pow[i] * Math.cos(ph[i]);
    ph[i]=pow[i] * Math.sin(ph[i]);
    pow[i]=re;
  }
  fft(pow,ph,FFT_REVERSE);
}

private void powerPhaseIFFT ( double [ ] pow , double [ ] ph ) { toMagnitude ( pow ) ; for ( int i = 0 ; i < pow . length ; i ++ ) { double re = pow [ i ] * Math . cos ( ph [ i ] ) ; ph [ i ] = pow [ i ] * Math . sin ( ph [ i ] ) ; pow [ i ] = re ; } fft ( pow , ph , FFT_REVERSE ) ; }
inline computation of the inverse fft given spectral input data in polar coordinates ( power and phase ) . both arrays must be the same length , which is a power of 2 .
