Skip to content

Commit 342ee47

Browse files
committed
Update README
1 parent c3bdcab commit 342ee47

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

README.md

+22-9
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,28 @@
55
This package provides a standardized API for multivariate polynomial bases
66
based on the [MultivariatePolynomials](https://github.com/JuliaAlgebra/MultivariatePolynomials.jl) API.
77

8-
It defines the following basis:
9-
* `FixedBasis`: A polynomial basis described by a list of polynomials.
10-
* Monomial bases: `MonomialBasis` and `ScaledMonomialBasis`.
11-
* Orthogonal bases:
12-
- Hermite bases: `ProbabilistsHermiteBasis` and `PhysicistsHermiteBasis`.
13-
- `LaguerreBasis`.
14-
- Gegenbauer bases:
15-
* `LegendreBasis`.
16-
* Chebyshev bases: `ChebyshevBasisFirstKind` and `ChebyshevBasisSecondKind`
8+
This package defines a few univariate bases such as chebyshev polynomials.
9+
These are then extended to multivariate as follows.
10+
Given a monomial `x^i * y^j` the corresponding multivariate chebyshev polynomial is the product of the `i`th univariate chebyshev polynomial in `x` and the `j`th univariate chebyshev polynomial in `y`.
11+
Given this one-to-one correspondence between monomials and multivariate chebyshev polynomials, we represent them directly by these monomials and keep this representation even through addition, multiplication, etc...
12+
```julia
13+
julia> using DynamicPolynomials
14+
15+
julia> @polyvar x y;
16+
17+
julia> using MultivariateBases
18+
19+
julia> basis = FullBasis{Chebyshev,typeof(x*y)}();
20+
21+
julia> basis[x^2 * y^3]
22+
ChebyshevFirstKind(x²y³)
23+
24+
julia> basis[x^2 * y^3] * basis[x * y]
25+
1//4·ChebyshevFirstKind(xy²) + 1//4·ChebyshevFirstKind(xy⁴) + 1//4·ChebyshevFirstKind(x³y²) + 1//4·ChebyshevFirstKind(x³y⁴)
26+
```
27+
28+
The elements obtained by manipulating these polynomials are `StarAlgebras.AlgebraElement`.
29+
The algebra in [StarAlgebras.jl](https://github.com/JuliaAlgebra/StarAlgebras.jl) implements the [MutableArithmetics.jl](https://github.com/jump-dev/MutableArithmetics.jl/) API for efficient manipulation.
1730

1831
See the documentation for more details.
1932

0 commit comments

Comments
 (0)