sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.34k stars 452 forks source link

Implementation of streams as backend for LazyLaurentSeries #31897

Closed tejasvicsr1 closed 3 years ago

tejasvicsr1 commented 3 years ago

We rewrite the input data for LazyLaurentSeries to use a Stream that has both a dense version similar to a lazy_list and a sparse version using a dict. We use various subclasses to build an evaluation tree for expressions involving lazy Laurent series elements.

We provide additional features not previously implemented for lazy Laurent series, such as functional definitions and composition. This provides enhancements for features such as exact arithmetic, equality, and performance. This is supplemented by an extensive suite of tests and examples.

This ticket is part of the meta ticket #31651. It provides the underlying data structures for lazy series, which later tickets include lazy, e.g., Taylor (usual power series) and Dirichlet series. This will eventually serve as a replacement for LazyPowerSeries (#32367; see also #15673).

CC: @mantepse @tscrim

Component: combinatorics

Keywords: LazyPowerSeries, FormalSeries, gsoc2021

Author: Tejasvi Chebrolu, Travis Scrimshaw

Branch/Commit: 1ff0cac

Reviewer: Travis Scrimshaw, Martin Rubey, Samuel Lelièvre

Issue created by migration from https://trac.sagemath.org/ticket/31897

mantepse commented 3 years ago

Changed keywords from LazyPowerSeries, FormalSeries, GSoC to LazyPowerSeries, FormalSeries, GSoC21

tejasvicsr1 commented 3 years ago

Branch: u/gh-tejasvicsr1/a_dense_implementation_for_the_lazy_laurent_series

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

5f7e600Incomplete code for the dense implementation added.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Commit: 5f7e600

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 5f7e600 to 70a8e2d

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

96fe111Test
70a8e2dAdded code for dense implementation without lazy lists. However, the dense implementation has some issues with list indices.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 70a8e2d to 995e7fb

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

995e7fbFirst iteration of the dense implementation of Lazy Laurent Series without lists is completed.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

bd0071bFirst iteration of the dense implementation of Lazy Laurent Series without lists is completed. Fixed a small bug.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 995e7fb to bd0071b

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from bd0071b to 271672c

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

271672cSecond version of the dense implementation of the lazy Laurent Series without lazy lists. Fixed the issues with the cache.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 271672c to a012fbc

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

a012fbcFixed the error in valuation code and also shortened the coefficient code to three lines.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

5011d44Fixed the recursion bug in the dense implementation. Added a doctest for the dense version of the coefficient code.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from a012fbc to 5011d44

mantepse commented 3 years ago

Changed branch from u/gh-tejasvicsr1/a_dense_implementation_for_the_lazy_laurent_series to u/mantepse/a_dense_implementation_for_the_lazy_laurent_series

tejasvicsr1 commented 3 years ago

Changed branch from u/mantepse/a_dense_implementation_for_the_lazy_laurent_series to u/gh-tejasvicsr1/a_dense_implementation_for_the_lazy_laurent_series

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

79eaf4aAdded the file for the new design.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 5011d44 to 79eaf4a

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

cbbc75bImplemented generation and multiplication in the new design.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 79eaf4a to cbbc75b

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from cbbc75b to 15ef8f1

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

27755ecImplemented addition for the new design.
15ef8f1Implemented representation for the new design.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 15ef8f1 to daaad21

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

b0b438cImplemented scalar multiplication for the new implementation.
daaad21Implemented scalar multiplication for the new implementation and fixed the formatting.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from daaad21 to 9c99904

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

9c99904Implemented comparision for the new series.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

0777a41Implemented hash for the new definition.
be1b15fImplemented bool for the new definition.
d37c78aImplemented subtraction for the new design.
a126841Implemented neg for the new design.
023b4b4Implemented valuation for the new design.
3fc85daImplemented polynomial for the new design.
a667a3cImplemented precision for the new design.
42abfa2Implemented approximate series for the new design.
693c46bImplemented inversion for the new design. Still errors.
aa37cd1Implemented inversion for the new design. Still errors.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 9c99904 to aa37cd1

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

adf075fImplemented inversion for the new design. Still errors.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from aa37cd1 to adf075f

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

a241afeValuation is now in the aux, inversion is still an issue.
f928755Corrected all the functions in the rings code. It is entirely based on the new design now.
36230d9Added functions for apply to coefficients and power of a series.
300432dAdded functions for truncate and change base ring.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from adf075f to 300432d

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 300432d to 533d593

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

533d593Added functions for division and inversion.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

05561a4Comments for the inversion and division code.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 533d593 to 05561a4

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 05561a4 to 8aeb3fe

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

8aeb3feFixed division code except for dividing by zero.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 8aeb3fe to 7e9a059

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

7e9a059Added tests.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 7e9a059 to a64d808

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

a64d808Fixed doctests.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

76220f5Fixed the issues with no coefficient function.
c1c6e48Fixed the issues with no coefficient function.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from a64d808 to c1c6e48

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from c1c6e48 to 4b37cb5

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

4b37cb5Fixed the issues with pickling.
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Branch pushed to git repo; I updated commit sha1. New commits:

2e15677Added a new ABC
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 3 years ago

Changed commit from 4b37cb5 to 2e15677