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 := False;
// the next elements are involved into transformation
// [1, 2,
// -5, 6]
a.FFT2DFromReal;
// result will be
// [(4,0), (-12,0),
// (0,0), (0,0),
// (2,12), (10,10),
// (0,-15), (0,0)]
// after inverse transformation (a.IFFT2DToReal) only elements in range
// [0..Col-2] x [0..Rows-2] will be reconstructed, other elements will be undefined
// [1, 2, undef, undef,
// -5, 6, undef, undef,
// undef, undef, undef, undef,
// undef, undef, undef, undef]
//
// if a.FFTOddLength is set to true,
// then the range of reconstruction would be [0..Col-1] x [0..Rows-2].
end;