aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Replace hash() with hashlib.sha256() for robustness to collisionNao Pross2024-03-081-8/+17
|
* Fix bug that breaks PolyRingExpr.shape & cleanupNao Pross2024-03-081-12/+12
| | | | | Leaf classes need to overwrite the shape abstractmethod with property but not algebra
* Make Expr a Merkle binary tree to allow subtree comparisonNao Pross2024-03-081-11/+12
|
* Create directory for examplesNao Pross2024-03-081-0/+43
|
* Update READMENao Pross2024-03-071-1/+1
|
* Fix regression in State.from_indexNao Pross2024-03-071-4/+3
| | | | Likely caused by f69cda1b84482a2c5dd4c6b8fcf16aebb7ac11ba
* Finish incomplete implementation of MatVar.to_reprNao Pross2024-03-071-7/+8
|
* Delete mdpoly.leaves make Var, Param, Const ABCsNao Pross2024-03-076-198/+297
| | | | | | | | The change is motivated by the desire of having easy access to wrappers like Const that have the behaviour of expressions of a certain algebra. After this changes Var, Param and Const are ABC and cannot be instantiated, instead one should use (appropriately) PolyVar, MatVar, etc.
* Minor changesNao Pross2024-03-072-5/+8
|
* Make new constructors Variable.from_powers and Variable.make_combinationsNao Pross2024-03-071-14/+59
|
* Comments & minor changesNao Pross2024-03-071-6/+14
|
* Relax dependenciesNao Pross2024-03-071-6/+6
|
* Fix regression of algebra checkNao Pross2024-03-076-23/+131
| | | | | Feature broke on commit cdfac0a6a8a9e4225a03aeb6e7115f6fc2f2fbad while switching from structural typing to OOP inheritance
* Add missing docstringsNao Pross2024-03-061-10/+44
|
* Fix out of date docstringsNao Pross2024-03-062-13/+13
|
* Fix missing case for PolyIndex.differentiateNao Pross2024-03-061-0/+6
|
* Move to_repr to Expr.to_repr necessary by removing duck typing HasReprNao Pross2024-03-064-50/+83
|
* Nuke duck typing and replace with OOP to make type checker happyNao Pross2024-03-064-293/+265
|
* Move algebra into abc.ExprNao Pross2024-03-061-1/+12
| | | | since shape is already there, might as well simplify
* Rename mdpoly.types to mdpoly.index as it only contains index typesNao Pross2024-03-067-11/+12
|
* Replace Protocols with ABC in mdpoly.abcNao Pross2024-03-062-10/+15
|
* Improve docstringNao Pross2024-03-051-1/+4
|
* Implement more shape checksNao Pross2024-03-052-5/+44
|
* Temporary fix to get rid of weird errorsNao Pross2024-03-041-2/+5
|
* Remove useless unimplemented methods in representationsNao Pross2024-03-041-36/+1
| | | | Clutters the file and will be rewritten anyways in the future
* Remove children() and __iter__ from Leaf because it messes with typecheckNao Pross2024-03-041-12/+0
|
* Get rid of algebra.ExprWithReprNao Pross2024-03-041-9/+7
|
* Add VizTracer to development dependencies to analyze perfNao Pross2024-03-042-1/+62
|
* Fix __mro__ problem in inheritanceNao Pross2024-03-041-5/+5
|
* Fix types (or, make mypy happier)Nao Pross2024-03-045-78/+85
|
* Add shape check for MatScalarMulNao Pross2024-03-041-8/+41
|
* Add shape checks for PolyRingAlgebraNao Pross2024-03-042-15/+35
|
* Improve docstringsNao Pross2024-03-041-3/+22
|
* Add stub for rational algebraNao Pross2024-03-041-0/+11
|
* Rename algebraic operations with algebra prefixNao Pross2024-03-041-87/+131
| | | | | Reason: In the near future the field of rational functions will be introduced as a new type of algebra to represent fractions p(x) / q(x).
* Improve algebra.unary_operator decoratorNao Pross2024-03-041-13/+29
|
* Reword docstringsNao Pross2024-03-032-3/+3
|
* Improve algebra.binary_operator decoratorNao Pross2024-03-031-22/+42
|
* Add TODO & Warning for bug in Expr.replaceNao Pross2024-03-032-0/+11
|
* Make State.from_index accept PolyVarIndex indicesNao Pross2024-03-032-2/+7
|
* Update README, switch to reStructuredTextNao Pross2024-03-032-57/+64
|
* Extend Expr.replace() to work with any expressionNao Pross2024-03-031-11/+14
|
* Add method Expr.replace() to replace leavesNao Pross2024-03-031-1/+42
|
* Rename Repr.nodes() to Repr.children()Nao Pross2024-03-032-2/+2
| | | | This is to avoid confusing code like node.nodes()
* Fix typo in method nameNao Pross2024-03-031-1/+2
|
* Add docstrings to util.isclose and util.iszeroNao Pross2024-03-031-1/+12
|
* Fix numerical precision handlingNao Pross2024-03-033-6/+17
|
* Implement partial derivativeNao Pross2024-03-033-6/+69
|
* Disallow indexing of non-variables in stateNao Pross2024-03-031-0/+4
|
* Setup Sphinx documentation generatorNao Pross2024-03-0310-1/+409
|