An AMat representing a Fast Algorithm for an 8 x 8 DCT
Go back to Automatic Implementation of an 8 x 8 DCT.
gap> A;
AMatPerm((2,5)(4,7)(6,8), 8) *
DirectSumAMat(
(1/4*E(8)-1/4*E(8)^3) * IdentityPermAMat(2),
1/2 * RotationAMat(3/8),
1/2 * RotationAMat(15/16),
1/2 * RotationAMat(21/16)
) *
AMatPerm((2,4,7,3,8), 8) *
DirectSumAMat(
TensorProductAMat(
DFTAMat(2),
IdentityPermAMat(3)
),
IdentityPermAMat(2)
) *
AMatPerm((5,6), 8) *
DirectSumAMat(
IdentityPermAMat(4),
(1/2*E(8)-1/2*E(8)^3) * DFTAMat(2),
IdentityPermAMat(2)
) *
AMatPerm((2,3,4,5,8,6,7), 8) *
TensorProductAMat(
IdentityPermAMat(2),
DirectSumAMat(
DFTAMat(2),
IdentityPermAMat(2)
) *
AMatPerm((2,3), 4) *
TensorProductAMat(
IdentityPermAMat(2),
DFTAMat(2)
)
) *
AMatPerm((1,8,6,2)(3,4,5,7), 8)
gap> MatAMat(A) = DCT(8);
true