Fast algorithms for the digital computation of linear canonical transforms