diff options
-rw-r--r-- | README.md | 25 |
1 files changed, 17 insertions, 8 deletions
@@ -2,17 +2,26 @@ `polymatrix` is a library to represent and operate on multivariate polynomials. -It is currently mainly used to define Sum Of Squares optimization problems. +It is used to define Sum Of Squares optimization problems. -Some aspects of the library +## Key aspects -* it has a lazy behavior: +Some aspects of the library: + +* it has a lazy behavior * the library implements operators to build polynomial expression - * the actual polynomial representation is created by calling the `apply(state)` method on the polynomial expression -* a `sympy` expression can be converted to a polynomial expression using the `polymatrix.from_sympy` function -* multiple polynomial expressions are combined using functions like `polymatrix.v_stack` or `polymatrix.block_diag`. -* polynomial expressions are manipulated using bounded functions like `diff`, `reshape`, `substitute`, `sum` or `to_constant` (see `polymatrix/expression/mixins/expressionmixin.py`) -* an expression can be converted to matrix representation using `polymatrix.to_matrix_repr`. Again, to get the actual representation the `apply(state)` method needs to be called. + * the actual polynomial is created by calling the [`apply(state)`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/expression/mixins/expressionbasemixin.py) method on the polynomial expression +* a `sympy` expression is converted to a polynomial expression using the [`polymatrix.from_sympy`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/__init__.py) function +* multiple polynomial expressions are combined using functions like + * [`polymatrix.v_stack`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/__init__.py) + * [`polymatrix.block_diag`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/__init__.py). +* polynomial expressions are manipulated using bounded functions like + * [`diff`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/expression/mixins/expressionmixin.py), + * [`reshape`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/expression/mixins/expressionmixin.py) + * [`substitute`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/expression/mixins/expressionmixin.py) + * [`sum`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/expression/mixins/expressionmixin.py) + * [`to_constant`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/expression/mixins/expressionmixin.py) +* an expression is converted to matrix representation using [`polymatrix.to_matrix_repr`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/__init__.py). Again, to get the actual representation the [`apply(state)`](https://gitlab.nccr-automation.ch/michael.schneeberger/polymatrix/-/blob/main/polymatrix/statemonad/mixins/statemonadmixin.py) method needs to be called. ## Example |