The goal of this package is to compute determinantal representations of polynomials. To be precise, a polynomial *f* in *ℝ[x _{1}, ..., x_{n}]* of total degree

Deciding whether or not a degree *d* polynomial has a determinantal representation of size *d* is in general difficult, and computing such a representation even more so. Computing (monic) symmetric determinantal representations (even in 2 variables) is of interest owing to a connection with real-zero and hyperbolic polynomials, due to a celebrated theorem of Helton-Vinnikov. In general, determinantal polynomials also have connections to convex algebraic geometry and semidefinite programming.

Currently, the functions in this package are geared towards computing monic symmetric determinantal representations of quadrics, as well as plane curves of low degree (i.e. cubics and quartics). The algorithms implemented in this package can be found in [1], [2].

Additionally, a number of helper functions are included for creating/working with various classes of matrices, which may be of general interest (and are not limited to the scope of determinantal representations). These include: creating/testing orthogonal, symmetric, doubly stochastic, unipotent, and positive semidefinite matrices, Hadamard products, Cholesky decomposition, and lifting/rounding matrices from CC to RR/QQ.

**References**:

- [1] Dey, P., Definite Determinantal Representations via Orthostochastic Matrices
- [2] Dey, P., Definite Determinantal Representations of Multivariate Polynomials

- Justin Chen <jchen646@gatech.edu>
- Papri Dey <papridey@berkeley.edu>

- Functions and commands
- bivariateDetRep -- computes determinantal representations of a bivariate polynomial numerically
- bivariateDiagEntries -- computes diagonal entries and eigenvalues for a determinantal representation of a bivariate polynomial
- cholesky -- computes the Cholesky decomposition of a positive semidefinite matrix
- coeffMatrices -- gets coefficient matrices for a matrix of linear forms
- companionMatrix -- companion matrix of a univariate polynomial
- generalizedMixedDiscriminant -- computes generalized mixed discriminant of a list of matrices
- hadamard -- computes the Hadamard product of two matrices
- isDoublyStochastic -- whether a matrix is doubly stochastic
- isOrthogonal -- whether a matrix is orthogonal
- liftRealMatrix -- lifts matrix over CC to matrix over RR
- orthogonalFromOrthostochastic -- computes orthogonal matrices for a given orthostochastic matrix
- quadraticDetRep -- computes determinantal representation of a quadric
- randomIntegerSymmetric -- constructs a random integer symmetric matrix
- randomOrthogonal -- constructs a random special orthogonal matrix
- randomPSD -- constructs a random positive semidefinite matrix
- randomUnipotent -- constructs a random unipotent matrix
- roundMatrix -- lifts matrix over RR to matrix over QQ
- trivariateDetRep -- computes determinantal representations of a hyperbolic polynomial in 3 variables

- Symbols
- DoCoordChange, see trivariateDetRep -- computes determinantal representations of a hyperbolic polynomial in 3 variables