Reference/API
BaseUtilities.PolynomialBasisBaseUtilities.PolynomialBasisBaseUtilities.PolynomialSpaceBaseUtilities.bernsteinBaseUtilities.degreeBaseUtilities.dimensionBaseUtilities.domainpointsBaseUtilities.monomialBaseUtilities.multiindicesBaseUtilities.mvbernsteinBaseUtilities.mvbernstein!BaseUtilities.mvmonomialsBaseUtilities.mvmonomials!BaseUtilities.mvpdimBaseUtilities.nvariateBaseUtilities.polynomialbasisBaseUtilities.polynomialspace
BaseUtilities.MeshGridBaseUtilities.PolynomialBasisBaseUtilities.PolynomialBasisBaseUtilities.PolynomialSpaceBaseUtilities.SCMatrixBaseUtilities.bernsteinBaseUtilities.columnsBaseUtilities.decompose_vectypeBaseUtilities.degreeBaseUtilities.dimensionBaseUtilities.domainpointsBaseUtilities.dualBaseUtilities.filledBaseUtilities.frankeBaseUtilities.joinrows!BaseUtilities.matrixBaseUtilities.meshgridBaseUtilities.monomialBaseUtilities.multiindicesBaseUtilities.mvbernsteinBaseUtilities.mvbernstein!BaseUtilities.mvmonomialsBaseUtilities.mvmonomials!BaseUtilities.mvpdimBaseUtilities.ntuplesBaseUtilities.nvariateBaseUtilities.perturb!BaseUtilities.polynomialbasisBaseUtilities.polynomialspaceBaseUtilities.primalBaseUtilities.rangesBaseUtilities.scmatrixBaseUtilities.spacingBaseUtilities.splitrowsBaseUtilities.splitrows!BaseUtilities.struct_to_dictBaseUtilities.symbolize_keysBaseUtilities.trianglesBaseUtilities.unsafe_matrixBaseUtilities.unsafe_ntupleBaseUtilities.unsafe_svector
BaseUtilities.PolynomialBasis — TypeBasis of a PolynomialSpace
BaseUtilities.PolynomialBasis — MethodBaseUtilities.PolynomialSpace — TypeSpace of D-variate polynomials of total degree Q
BaseUtilities.bernstein — Functiony = bernstein(q, i, x)
y = bernstein(Val(q), i, x)Evaluate i-th (univariate) Bernstein polynomial of degree q at x for i in 0:q.
ys = bernstein(q, x)
ys = bernstein(Val(q), x)
@assert sum(ys) ≈ 1Evaluate all Bernstein polynomials of degree q at x to tuple.
See also mvbernstein, monomial
BaseUtilities.degree — Methodq degree(p::PolynomialSpace)Get (total) degree of PolynomialSpace
BaseUtilities.dimension — Methodn = dimension(p::PolynomialSpace)Get dimensions (degrees of freedom) of PolynomialSpace
See also mvpdim
BaseUtilities.domainpoints — Methodd = domainpoints(d, q)Generate sequence of domain points of d-variate Bernstein polynomials of total degree q in barycentric coordinates (w.r.t. a d-simplex).
See also multiindices, mvbernstein
BaseUtilities.monomial — Functiony = monomial(q, i, x)
y = monomial(Val(q), i, x)Evaluate i-th (univariate) monomials x^i of degree q at x for i in 0:q.
ys = monomial(q, x)
ys = monomial(Val(q), x)Evaluate all monomials of degree q at x to tuple.
See also mvmonomial, bernstein
BaseUtilities.multiindices — Methodi = multiindices(d, q)Generate sequence of d-dimensional multi-indices which sum to q. d and q can be integers nn or Val(n).
Example: multiindices(3, 2) yields the sequence
(2,0,0), (1,1,0), (0,2,0),
(1,0,1), (0,1,1),
(0,0,2)See also domainpoints, mvbernstein
BaseUtilities.mvbernstein — Functionvalues = mvbernstein(Val(Q), λ₁, λ₂, ...)
values = mvbernstein(Val(Q), λ::NTuple)
values = mvbernstein(Val(Q), λ::SVector)
values = mvbernstein(q, ...)Evaluate multivariate Bernstein polynomials of total degree q at barycentric coordinates λ. The sequence of basis functions correspond to multiindices or domainpoints, likewise.
In contrast to mvmonomials, mvbernstein takes barycentric coordinates λ as input! Prefer passing a tuple or an SVector (with sum(λ) = 1).
As an exception, univariate Bernstein polynomials can be evaluated at x::Real as
values = mvbernstein(q, x)This call is equal to
values = mvbernstein(q, 1-x, x) # pass barycentric coordinatesand to
values = bernstein(q, x)See also mvbernstein!, domainpoints, mvmonomials, bernstein, mvpdim
BaseUtilities.mvbernstein! — Functionmvbernstein!(Val(Q), v, λ...)
mvbernstein!(q, v, λ...)Evaluate the multivariate Bernstein polynomials of total degree Q or q at barycentric coordinates λ as for mvbernstein and store the computed values in v.
v must have the appropriate size mvpdim.
In contrast to mvmonomials, mvbernstein takes barycentric coordinates λ as input! Prefer passing a tuple or an SVector (with sum(λ) = 1).
As an exception, univariate Bernstein polynomials can be evaluated at x::Real as
values = mvbernstein!(q, x)This call is equal to
values = mvbernstein!(q, 1-x, x) # pass barycentric coordinatesSee also mvbernstein, bvmdim
BaseUtilities.mvmonomials — Functionvalues = mvmonomial(Val(Q), v, x...)
values = mvmonomials(q, v, x...)Evaluate multivariate monomials of total degree Q or q. Evaluates
- univariate polynomials
1, x, x^2, ...ifxis a number - bivariate polynomials
1, x, y, x^2, x*y, y^2, x^3, x^2*y, ...ifx...isx, yor a 2-tuple orSVector{2} - trivariate polynomials
1, x, y, z, x^2, x*y, y^2, y*z, z^2, ...ifx...isx, y, zor a 3-tuple orSVector{3} - etc.
The polynomial basis is evaluated inthis canonical order and the result is returned as an n-tuple of values.
Prefer "static dispatch" by type Val(Q). This calls the appropriate method without branching over the polynomial degree.
See also mvmonomials!, mvpdim
BaseUtilities.mvmonomials! — Functionmvmonomials!(Val(Q), v, x...)
mvmonomials!(q, v, x...)Evaluate the multivariate monomials of total degree Q or q as for mvmonomials and store the computed values in v.
v must have the appropriate size mvpdim.
See also mvmonomials, bvmdim
BaseUtilities.mvpdim — Functionn = mvpdim(Val(Q), Val(D))
n = mvpdim(q, d)Get number of d-variate polynomials of total degree q.
See also mvmonomials, mvmonomials!
BaseUtilities.nvariate — Methodd = nvariate(p::PolynomialSpace)Get number of variables inp.
BaseUtilities.polynomialbasis — Functionb = polynomialbasis(f, p::PolynomialSpace)
b = polynomialbasis(f, d, q)Construct basis for PolynomialSpace, where f evaluates basis functions such as mvmonomials or mvbernstein.
See also PolynomialBasis, PolynomialSpace
BaseUtilities.polynomialspace — Functionp = polynomialspace(d, q)
p = polynomialspace(b::PolynomialBasis)Construct or query PolynomialSpace
See also PolynomialBasis