| DiagMat |
| Syntax |
DiagMat(L: LIST): MAT DiagMat(R: RING, L: LIST): MAT |
| Description |
| Example |
/**/ DiagMat([3,4,5]);
matrix(
[
[3, 0, 0],
[0, 4, 0],
[0, 0, 5]
])
/**/ DiagMat(QQ,[5,6,7]);
matrix(
[
[5, 0, 0],
[0, 6, 0],
[0, 0, 7]
])
-- fast implementation for high powers of a diagonal matrix
/**/ Define PowerDiag(M, Exp)
/**/ If not(IsDiagonal(M)) Then
/**/ error("PowerDiag: matrix must be diagonal");
/**/ EndIf;
/**/ Return DiagMat([ M[I, I]^Exp | I In 1..NumRows(M) ]);
/**/ EndDefine;
/**/ PowerDiag(IdentityMat(QQ,3), 200000000);
matrix(QQ,
[[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
|
| See Also |