Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V2.0.0 #310

Merged
merged 40 commits into from
Mar 8, 2021
Merged

V2.0.0 #310

merged 40 commits into from
Mar 8, 2021

Conversation

jverzani
Copy link
Member

@jverzani jverzani commented Feb 9, 2021

PR to contain breaking changes, the main one is using the type system to hold the indeterminate rather than use a field to hold the indeterminate. The advantage is this plays better with Julia's promotion mechanisms so matrices of polynomials requires much less fuss. The others are cleanups. For example, iteration is modified to more closely match iteration over the underlying container. Before, iteration iterated over terms, which is still supported though now through the iterator monomials.

  • As mentioned in Just a question #308, a change for how the polynomial symbol is handled moving it from a field to a parameter of the type
  • Removal of deprecated usage of Polynomial constructor to create different types of polynomials based on how the coefficients are specified. Remove LaurentPolynomial deprecations.
  • Clean up how OffsetArrays are used (ok with Laurent, ignore otherwise) instead of just ignoring offset for all. Removed OffsetArrays as a dependency.
  • change how collect yields terms (monomial) instead of coefficients. Try to make polynomials act like vectors as much as possible. Introduce a non-exported monomials iterator for old behaviour.
  • Change type instability in integrate with NaN values
  • make ErrorException errors more informative

Non-breaking changes

  • Modify docstring to fit. (Had planned on changing how weights are specified [issue?], but held back)
  • for integrate have methods implement integrate(p), not integrate(p,c).
    In addition, there are a few speedups to the basic operations for the ImmutablePolynomial and Polynomial types.
  • Clean up promotion routes for + and *; refactor for possible reuse.
  • Move code into common (truncate!, chop!, zero, one, variable, basis)

@jverzani jverzani mentioned this pull request Feb 9, 2021
@codecov
Copy link

codecov bot commented Feb 9, 2021

Codecov Report

Merging #310 (ba25a93) into master (b4dfe82) will increase coverage by 1.07%.
The diff coverage is 88.99%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #310      +/-   ##
==========================================
+ Coverage   88.00%   89.08%   +1.07%     
==========================================
  Files          16       16              
  Lines        1692     1740      +48     
==========================================
+ Hits         1489     1550      +61     
+ Misses        203      190      -13     
Impacted Files Coverage Δ
src/Polynomials.jl 100.00% <ø> (ø)
src/contrib.jl 92.42% <ø> (-1.52%) ⬇️
src/show.jl 75.75% <ø> (ø)
src/abstract.jl 40.00% <28.57%> (+16.47%) ⬆️
src/polynomials/ChebyshevT.jl 94.37% <88.88%> (-2.27%) ⬇️
src/common.jl 89.89% <88.95%> (-2.09%) ⬇️
src/polynomials/standard-basis.jl 95.91% <89.06%> (-2.23%) ⬇️
src/polynomials/LaurentPolynomial.jl 87.50% <91.37%> (+5.08%) ⬆️
src/polynomials/SparsePolynomial.jl 94.44% <92.00%> (+4.26%) ⬆️
src/polynomials/Poly.jl 81.94% <94.28%> (-7.42%) ⬇️
... and 9 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b4dfe82...4b4edbb. Read the comment docs.

@jverzani jverzani merged commit 4f7c566 into JuliaMath:master Mar 8, 2021
@jverzani jverzani deleted the v2.0.0 branch March 8, 2021 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant