(Multilevel) Circulant Class¶
- class fastmat.Circulant¶
Bases:
Partial
This class provides a very general implementation of circulant matrices, which essentially realize a (possibly multidimensional) circular convolution.
This type of matrix is highly structured. A two-level circulant Matrix looks like:
>>> c_00 c_02 c_01 c_20 c_22 c_21 c_10 c_12 c_11 >>> c_01 c_00 c_02 c_21 c_20 c_22 c_11 c_10 c_12 >>> c_02 c_01 c_00 c_22 c_21 c_20 c_12 c_11 c_10 >>> >>> c_10 c_12 c_11 c_00 c_02 c_01 c_20 c_22 c_21 >>> c_11 c_10 c_12 c_01 c_00 c_02 c_21 c_20 c_22 >>> c_12 c_11 c_10 c_02 c_01 c_00 c_22 c_21 c_20 >>> >>> c_20 c_22 c_21 c_10 c_12 c_11 c_00 c_02 c_01 >>> c_21 c_20 c_22 c_11 c_10 c_12 c_01 c_00 c_02 >>> c_22 c_21 c_20 c_12 c_11 c_10 c_02 c_01 c_00
This shows that one can define an L-level Circulant matrix by a tensor of order L. By design circulant matrices are always square matrices.
- __init__()¶
Initialize Multilevel Circulant matrix instance.
Also see the special options of
fastmat.Fourier
, which are also supported by this matrix and the general options offered byfastmat.Matrix.__init__
.- Parameters
- tenC
numpy.ndarray
The generating nd-array tensor defining the circulant matrix. The matrix data type is determined by the data type of this array.
- **optionsoptional
Additional keyworded arguments. Supports all optional arguments supported by
fastmat.Matrix
andfastmat.Fourier
.
- tenC
- tenC¶
Return the matrix-defining column vector of the circulant matrix