You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* work around domain
* remove dependency on Intervals
* close#374 (#377)
* V3 drop 1 0 (#379)
* drop support for older versions of Julia
* V3 docs (#380)
* Qr (#384)
* remove depwarn
* add Val(:x) as means to specify the symbol
*`ImmutablePolynomial` – standard basis polynomials backed by a [Tuple type](https://docs.julialang.org/en/v1/manual/functions/#Tuples-1) for faster evaluation of values
20
22
*`SparsePolynomial` – standard basis polynomial backed by a [dictionary](https://docs.julialang.org/en/v1/base/collections/#Dictionaries-1) to hold sparse high-degree polynomials
21
23
*`LaurentPolynomial` – [Laurent polynomials](https://docs.julialang.org/en/v1/base/collections/#Dictionaries-1), `a(x) = aₘ xᵐ + … + aₙ xⁿ``m ≤ n`, `m,n ∈ ℤ` backed by an [offset array](https://github.com/JuliaArrays/OffsetArrays.jl); for example, if `m<0` and `n>0`, `a(x) = aₘ xᵐ + … + a₋₁ x⁻¹ + a₀ + a₁ x + … + aₙ xⁿ`
@@ -99,7 +101,7 @@ julia> q ÷ p # `div`, also `rem` and `divrem`
99
101
Polynomial(0.25 - 0.5*x)
100
102
```
101
103
102
-
Operations involving polynomials with different variables will error.
104
+
Most operations involving polynomials with different variables will error.
Differentiate the polynomial `p` term by term. The degree of the
193
-
resulting polynomial is one lower than the degree of `p`.
194
+
Differentiate the polynomial `p` term by term. For non-zero
195
+
polynomials the degree of the resulting polynomial is one lower than
196
+
the degree of `p`.
194
197
195
198
```jldoctest
196
199
julia> derivative(Polynomial([1, 3, -1]))
@@ -242,16 +245,17 @@ Visual example:
242
245
243
246
Polynomial objects also have other methods:
244
247
245
-
* 0-based indexing is used to extract the coefficients of `[a0, a1, a2, ...]`, coefficients may be changed using indexing
246
-
notation.
248
+
* For standard basis polynomials, 0-based indexing is used to extract
249
+
the coefficients of `[a0, a1, a2, ...]`; for mutable polynomials,
250
+
coefficients may be changed using indexing notation.
247
251
248
-
*`coeffs`: returns the entire coefficient vector
252
+
*`coeffs`: returns the coefficients
249
253
250
254
*`degree`: returns the polynomial degree, `length` is number of stored coefficients
251
255
252
-
*`variable`: returns the polynomial symbol as polynomial in the underlying type
256
+
*`variable`: returns the polynomial symbol as a polynomial in the underlying type
253
257
254
-
*`norm`: find the `p`-norm of a polynomial
258
+
*`LinearAlgebra.norm`: find the `p`-norm of a polynomial
255
259
256
260
*`conj`: finds the conjugate of a polynomial over a complex field
257
261
@@ -283,7 +287,7 @@ Polynomial objects also have other methods:
283
287
284
288
*[CommutativeAlgebra.jl](https://github.com/KlausC/CommutativeRings.jl) the start of a computer algebra system specialized to discrete calculations with support for polynomials.
285
289
286
-
*[PolynomialRoots.jl](https://github.com/giordano/PolynomialRoots.jl) for a fast complex polynomial root finder. For larger degree problems, also [FastPolynomialRoots](https://github.com/andreasnoack/FastPolynomialRoots.jl) and [AMRVW](https://github.com/jverzani/AMRVW.jl).
290
+
*[PolynomialRoots.jl](https://github.com/giordano/PolynomialRoots.jl) for a fast complex polynomial root finder. For larger degree problems, also [FastPolynomialRoots](https://github.com/andreasnoack/FastPolynomialRoots.jl) and [AMRVW](https://github.com/jverzani/AMRVW.jl). For real roots only [RealPolynomialRoots](https://github.com/jverzani/RealPolynomialRoots.jl).
287
291
288
292
289
293
*[SpecialPolynomials.jl](https://github.com/jverzani/SpecialPolynomials.jl) A package providing various polynomial types beyond the standard basis polynomials in `Polynomials.jl`. Includes interpolating polynomials, Bernstein polynomials, and classical orthogonal polynomials.
Copy file name to clipboardExpand all lines: docs/src/extending.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ As always, if the default implementation does not work or there are more efficie
22
22
| Type function (`(::P)(x)`) | x ||
23
23
|`convert(::Polynomial, ...)`|| Not required, but the library is built off the [`Polynomial`](@ref) type, so all operations are guaranteed to work with it. Also consider writing the inverse conversion method. |
24
24
|`Polynomials.evalpoly(x, p::P)`| to evaluate the polynomial at `x` (`Base.evalpoly` okay post `v"1.4.0"`) |
25
-
|`domain`| x | Should return an [`AbstractInterval`](https://invenia.github.io/Intervals.jl/stable/#Intervals-1)|
25
+
|`Polynomials.domain`| x | Should return a `Polynomials.Interval` instance|
Differentiate the polynomial `p` term by term. The degree of the
135
-
resulting polynomial is one lower than the degree of `p`.
137
+
resulting polynomial is one lower than the degree of `p`, unless `p`
138
+
is a zero polynomial.
136
139
137
140
```jldoctest
138
141
julia> derivative(Polynomial([1, 3, -1]))
@@ -361,9 +364,9 @@ Most of the root finding algorithms have issues when the roots have
361
364
multiplicities. For example, both `ANewDsc` and `Hecke.roots` assume a
362
365
square free polynomial. For non-square free polynomials:
363
366
364
-
* The `Polynomials.Multroot.multroot` function is available (version `v"1.2"` or greater) for finding the roots of a polynomial and their multiplicities. This is based on work of Zeng.
367
+
* The `Polynomials.Multroot.multroot` function is available for finding the roots of a polynomial and their multiplicities. This is based on work of Zeng.
365
368
366
-
Here we see `IntervalRootsFindings.roots` having trouble isolating the roots due to the multiplicites:
369
+
Here we see `IntervalRootFinding.roots` having trouble isolating the roots due to the multiplicites:
*[AbstractAlgebra.jl](https://github.com/wbhart/AbstractAlgebra.jl), [Nemo.jl](https://github.com/wbhart/Nemo.jl) for generic polynomial rings, matrix spaces, fraction fields, residue rings, power series, [Hecke.jl](https://github.com/thofma/Hecke.jl) for algebraic number theory.
820
823
821
-
*[LaurentPolynomials.jl](https://github.com/jmichel7/LaurentPolynomials.jl) A package for Laurent polynom
824
+
*[LaurentPolynomials.jl](https://github.com/jmichel7/LaurentPolynomials.jl) A package for Laurent polynomials.
822
825
823
826
*[CommutativeAlgebra.jl](https://github.com/KlausC/CommutativeRings.jl) the start of a computer algebra system specialized to discrete calculations with support for polynomials.
0 commit comments