Skip to content

Releases: RamanujanMachine/ramanujantools

v0.0.6

03 Apr 07:00
a8bdec4

Choose a tag to compare

What's Changed

Features

  • Added Birkhoff-Trjitzinsky asymptotics to extract a formal basis of asymptotic solutions for scalar linear difference equations (LinearRecurrence.asymptotics()).
  • Added new classes to support asymptotic calculations: SeriesMatrix, GrowthRate, and Reducer.
  • Added calculation of the determinant of a pFq CMF axis matrix via a hardcoded formula.
  • Made determinant calculations a built-in CMF functionality.

Bug Fixes

  • Fixed broken LaTeX rendering of objects in JupyterLab (such as PCF, CMF, and LinearRecurrence) by correctly wrapping the output in math delimiters.
  • Fixed an equality evaluation bug in FlintRational occurring when negations were present in both the numerator and denominator.
  • Fixed pickling cache issues for CMF, pFq, and MeijerG objects by correctly implementing their respective __getstate__ and __setstate__ methods.

Refactors

  • Replaced custom _repr_latex_ methods with sympy.printing.defaults.Printable inheritance for cleaner and more standardized LaTeX representation.

New Contributors

Full Changelog: v0.0.5...v0.0.6

v0.0.5

15 Sep 13:04
3a09fde

Choose a tag to compare

Changelog:

  • Features

    • Added the Meijer G CMF
    • Added the DFinite base class (which inherits from CMF) for constructing D-finite CMFs. Consists methods such as:
      • differential equation
      • construct matrix (in the future could be derived automatically from contiguous relations)
    • Added support for caching negative matrices when using them while constructing the CMF (For example, in the MeijerG CMF we first calculate the a matrices in the inverse direction as this is the direction we get from the contiguous relations).
    • Added the CMF.coboundary method which computes coboundary on the enitre CMF.
    • Added the CMF.dual method which returns the dual CMF (all matrices are inverse-transposed).
    • Added the CMF.sub_cmf method which projects the CMF into a smaller subspace.
    • Added the LinearRecurrence.compose function
  • Refactors

    • LinearRecurrence now prints as sum = 0 and not as p(n+1) = sum.
    • pFq and MeijerG now inherit from the D-finite CMF.

v0.0.4

26 Jun 14:12
d6b4cfc

Choose a tag to compare

Changelog:

  • Bugfixes:
    • Fixed the bug in Limit.identify where sometimes it just returns the zero matrix.

v0.0.3

26 Jun 11:45
f902f3e

Choose a tag to compare

Changelog:

  • Bugfixes:
    • Fixed a bug in the LaTeX representations of LinearRecurrence, PCF and CMF.
    • Limit.delta now returns a float instead of an mp.mpf

v0.0.2

25 Jun 18:26
3058f27

Choose a tag to compare

Changelog:

  • Refactors:

    • Flattened the cmf module. The contents of ffbar and known_cmfs are directly in cmf now.
      • Notice that import now looks as from ramanujantools.cmf import pFq
    • Grouped all solvers in a new solvers module
    • Removed multimethod usage (and dependency)
    • PCF now uses LinearRecurrence for key logic, such as inflate, deflate, and especially conversion from matrix form
      • PCFFromMatrix was deleted completely
    • Merged NumericMatrix.walk and NumericMatrix.walk_list into a single NumericMatrix.walk that accepts both int and list[int]
  • Bugfixes:

    • Matrix and LinearRecurrence now accept initial_values in their walk and limit methods
    • Fixed a bug where Matrix.factor would crash when the matrix was numeric (no symbols)
  • Features:

    • Add a distinct repr to pFq
    • Add LaTeX pretty printing to CMF, PCF and LinearRecurrence:

image
image
image

v0.0.1 – Initial PyPi Release

21 Jun 08:18
607aff1

Choose a tag to compare

Initial public release of ramanujantools on PyPi! 🎉

This version includes:

  • Core symbolic and numeric tools used by the Ramanujan Machine group
  • Contains the key classes
    • Matrix
    • PCF (Polynomial Continued Fraction)
    • LinearRecurrence
    • CMF (Conservative Matrix Field)
    • Limit
  • Python 3.11+ compatibility
  • Optimized python-flint backend