# MatrixSpecial

© 2011,2016,2017 John Abbott, Anna M. Bigatti
GNU Free Documentation License, Version 1.2

CoCoALib Documentation Index

## User documentation for MatrixSpecial

### Special Matrices

• `JacobianMat(f, indets)` -- where `f` (polynomials) and `indets` (indeterminates) are vectors of `RingElem`, all belonging to the same `PolyRing`. The (i,j)-th element of the Jacobian matrix is defined as the derivative of i-th function with respect to the j-th indeterminate.

Throws if both `f` and `indets` are empty (cannot determine the `ring` for constructing the 0x0 `matrix`).

• `JacobianMat(f)` -- Jacobian matrix with respect to all indets in the ring.
• `TensorMat(A, B)` -- where `A` and `B` are matrices with the same BaseRing.
 a_11 B a_12 B ... a_1c B a_21 B a_22 B ... a_2c B ... a_r1 B a_r2 B ... a_rc B
• `LawrenceMat(A)` -- Lawrence lifting of the `matrix` `A`.
 A 0 I I
• `SylvesterMat(f,g,x)` -- create Sylvester matrix for polys `f` and `g` w.r.t. indeterminate `x`

• `HilbertMat(n)` -- create an `n`-by-`n` matrix over `QQ` whose `(i,j)` entry is 1/(i+j-1)

• `RandomUnimodularMat(R,n,niters)` -- create a random matrix with integer entries and determinant +1 or -1; last arg `niters` is optional (it defaults to `25*n`).

• `RandomSparseNonSing01Mat(R,n)` -- create a random sparse non-singular (0,1) matrix of size `n`-by-`n`

## Bugs, shortcomings and other ideas

Many special matrices are not yet implemented: (from the source file)

• VandermondeMatrix
• HessianMatrix
• HilbertInverseMatrix
• ToeplitzMatrix
• WronskianMatrix

## Main changes

2016

• November (v0.99544): added `RandomUnimodularMat`

2011

• February (v0.9942): first release (`jacobian`)
• March (v0.9943): added `TensorMat`