Function File: y = circulant_matrix_vector_product (v, x)

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