Fast, compact calculation of the product of a circulant matrix with a vector Given n*1 vectors v and x, return the matrix-vector product y = Cx, where C is the n*n circulant matrix that has v as its first column
Theoretically the same as make_circulant_matrix(x) * v
, but does not form C explicitly; uses the discrete Fourier transform
Because of roundoff, the returned y may have a small imaginary component even if v and x are real (use real(y)
to remedy this)
Reference: Gene H. Golub and Charles F. Van Loan, Matrix Computations, 3rd Ed., Section 4.7.7
See also: gallery, circulant_eig, circulant_inv.
Package: linear-algebra