make recentering always happen (preserves phase)
add fast dct (1d) prototype