💡 Version 0.0.8 - New version of experiments#45
Merged
Antonio-JP merged 54 commits intodevelopfrom Oct 8, 2025
Merged
Conversation
- Improved code on DExtension_Field using DElliptic_Field as a blueprint
- Implemented necessary functions to make things work at first level - Implemented methods for detecting and identifying tower of monomials.
- Added new attempt to implement extensions. - DMonomial adds variables one by one, trading efficiency for simplicity. Moreover, Bronstein and others algorithms can be implemented over this class once is fully tested its creation and iteration. - Created basic bundle of structures - It remains to implement the factory as a deeper and simpler way of creating these tower of monomial extensions.
- Implemented the factory to create tower of monomials - Checked the behavior in some simple cases - Fixed creation of fractions from DMonomial_Element - Fixed __repr__ method on DMonomial_Element - Added methods related with Tower of Monomials (methods "tower_(...)")
- Implemented methods from pages 9-16 from Bronstein book
- Implemented methods from pages 16-24 from Bronstein book
- Fixed behavior of coefficients: we guarantee they are in self.parent().base() - Simplified method __repr__: we are now based on SageMath representation of the algebraic element. - Change the algebraic structure: all generators of the tower are on the same level. - Changed __repr__ for DMonomial_Parent
- Simplified structure of "to_sage" for DFractionField.
- Fixed errors in towers of monomials where ParentToAlgebraic sums where not being computed correctly - Added module tests showing how to create these extensions. - Removed file dextension.py - Improved DFractionField: operators are now extended correctly.
- Added method "monic" and "is_monic" to DMonomial_Element
- Added method "is_unit" to DMonomial_Element to avoid errors in SageMath
- Changed implementation of quo_rem, pseudo_quo_rem, gcd and squarefree to rely on SageMath code (more efficient)
- Implemented methods squarefree following Bronstein book.
- Added method "is_squarefree" to DMonomial_Element
- Added computation of wronskians into DMonomial extensions.
- Implemented methods from Chapter 3 of Bronstein book:
* is_normal
* is_special
* splitting_factorization
* splitting_factorization_squarefree
* canonical_representation
- Added order functions as described in Chapter 4 of Bronstein book. - Added order at infinity and also at finite places.
- Small notes on base file "dring.py" - Added all methods for Chapter 4 of Bronstein's book (value, residue and remainder at normal polynomials and infinity) - Started Chapter 5 of Bronstein's book: added method to compute field of constants when possible (not yet finished)
- Added methods in dring that will be generic for DMonomial - Implemented methods from Chapter 5. - Added extra methods to extract information from the tower of monomials - Added more tests for monomial types (hypertangent, tangent, logarithm, exponential, liouvillian, elementary)
- Added generic method in DRings.ParentMethod to general integration problems
* Risch_DE
* Limited Integration
* Coupled D.E. System
- Solved this problem for constant fields.
- Prepared methods for Risch Differential Equation - Changed method summation to sum (due to conflicts with Sage) - Fixed powers in dmonomial - Worked on Chapter 6 of Bronstein's book
- Added more general methods to DRings - Implemented some general method on the case of all constants. - Implemented methods for Risch Differential Equation in monomial extensions
- Finished method from Chapter 6 of Bronstein's book
…ion of the centralizers.
* Added methods to make it work in the script
- hash
- call
- lcm
* Fixed method "conditions_to_zero" so conditions are now algebraic instead of differential
* Cached the fraction field to have unicity
* Fixed some calls to create conversions on DMonomials
* Fixed the use o the factory: it goes with base, images, variables
* Implemented morphism to cast between different bases
- Small changes on BC notebook.
- Computation of constants was too restrictive. Now we compute a field of constants (assuming the expected results actually hold) but we print a warning in the logger. - Fixed computation of constant for DRings, where result is cached properly depending on operation.
- Updated method for using new code
- Added method "module_quo_rem" similar to a quotient-remainder division but to reduce elements module a C[L]-module.
- Fixed method "reduce_as_module" to use the method "module_quo_rem".
- 📜 Updated BC notebook
- Redo a generic implementation where coefficients are stored as a function. - Operations that keep finite information are included - Added all the conversions possible - Tested with DPolynomialRing
- Added method __invert__ to DPolynomials - Improved __eq__ method for DRing_WrapperElement
- Added case for comparing with "None". - Fixed exception caching in Centralizer experiment
- Implemented method "monomial_coefficients" - Improved implementation for __truediv__ - Allowed the use of DFractionField for DPolynomials - Implemented a __floordiv__ method based on InfinitePolynomials - Improved implementations of "is_field" and "is_integral_domain" - Improved "to_sage" implementation - Improved coercion to sage structure
- Now it simplifies always the generators of the field - The __init__ method now fits the original method instead of being generic.
- Adapted code on Wrapper to allow Quotient rings even without derivation modules - Added custom implementation of QuotientRing to adapt its behavior to our case
- In the reduction using a C[L]-module, we forgot to use the "constant" case.
- Improved simplification of fractions when the base ring is a polynomial ring (takes content into consideration)
- Improved sylvester methods:
* sylvester_matrix allows to get the matrix for specific subresultant matrices (selecting the columns too)
* sylvester_subresultant now calls the new sylvester_matrix method
…ferential operator of order 4 with centralizer at level 6.
- When desired, method "GetEquationsForSolution" now stores the computed ideal in a file. - Remove assertation on method "BC_ideal": sometimes it hinders the actual computations. - in dpolynomial.py, changed method "add_constants" to use the method "change_ring", which creates all the coercions/conversions necessary.
Before, the d-algebraic equation for the p-weierstrass function was equivalent but not equal to the classic equation due to a factor of "4". We have changed this in the notebook for the paper of Effective Centralizers. - Added to scrip.py the option to change the leading coefficient of the d-algebraic equation for the elliptic case. If not given, we have changed the default to be 4 (the classic version).
- Added two new notebooks studying two families of parametric operators of order 4 with level 6. - Improved behavior when working with complex numbers
* Added file "CITATION.cff" for metadata in Zenodo. * Updated version number to 0.0.8
* Run lint and tests * (Tests for dmonomial not running yet, but this is intentional)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull request including new results from paper "Effective computation of centralizers of ODOs".
This new version updates some results from the original version of the paper for the newer reviewed version and incorporates small improvements in the overall process of the package.