… | |
… | |
1626 | |
1626 | |
1627 | sub rfft { |
1627 | sub rfft { |
1628 | my $data = $_[0]; |
1628 | my $data = $_[0]; |
1629 | if (_fftw) { |
1629 | if (_fftw) { |
1630 | my $x = $data->r2C; |
1630 | my $x = $data->r2C; |
1631 | $x = PDL::FFTW::nfftw $x; |
1631 | $x = PDL::FFTW::fftw $x; |
1632 | $x; |
1632 | $x; |
1633 | } else { |
1633 | } else { |
1634 | require PDL::FFT; |
1634 | require PDL::FFT; |
1635 | my @fft = ($data->copy, $data->zeroes); |
1635 | my @fft = ($data->copy, $data->zeroes); |
1636 | PDL::FFT::fft(@fft); |
1636 | PDL::FFT::fft(@fft); |
… | |
… | |
1639 | } |
1639 | } |
1640 | |
1640 | |
1641 | sub irfft { |
1641 | sub irfft { |
1642 | if (_fftw) { |
1642 | if (_fftw) { |
1643 | $x = $_[0]->copy; |
1643 | $x = $_[0]->copy; |
1644 | $x = PDL::FFTW::infftw $x; |
1644 | $x = PDL::FFTW::ifftw $x; |
1645 | re $x / $x->getdim(1); |
1645 | re $x / $x->getdim(1); |
1646 | } else { |
1646 | } else { |
1647 | require PDL::FFT; |
1647 | require PDL::FFT; |
1648 | my @fft = $_[0]->xchg(0,1)->dog({Break => 1}); |
1648 | my @fft = $_[0]->xchg(0,1)->dog({Break => 1}); |
1649 | PDL::FFT::ifft(@fft); |
1649 | PDL::FFT::ifft(@fft); |