revised fast transform