var a:
Matrix;
begin
a.SetIt (4,4,False,
[1, 2, 3, 4,
-5, 6, -7, 8,
9, 12,-11, 10,
16,-15,-14, 0]);
a.FFTStorageFormat := fsfCCS;
a.FFTOddLength := TRUE;
// the next elements are involved into transformation
// [1, 2, 3,
// -5, 6, -7]
a.FFT2DFromReal;
// result will be
// [(0,0), (-6, -10.39),
// (0,0), (3, 12.12),
// (12,12), (-11,10),
// (0,-15), (-14,0)]
a.IFFT2DToReal;
// [ 1, 2, 3, 0
// -5, 6, -7, 0
// 12, 12,-11, 10
// 0,-15,-14, 0]
// the next elements are reconstructed
// [ 1, 2, 3, undef,
// -5, 6, -7, undef,
// undef, undef, undef, undef,
// undef, undef, undef, undef]
//
// if a.FFTOddLength is set to False,
// then range of reconstruction would be one column less, i.e.
// [ 1, 2, undef, undef,
// -5, 6, undef, undef,
// undef, undef, undef, undef,
// undef, undef, undef, undef]
end;