Reference/API
BaseUtilities.PolynomialBasis
BaseUtilities.PolynomialBasis
BaseUtilities.PolynomialSpace
BaseUtilities.bernstein
BaseUtilities.degree
BaseUtilities.dimension
BaseUtilities.domainpoints
BaseUtilities.monomial
BaseUtilities.multiindices
BaseUtilities.mvbernstein
BaseUtilities.mvbernstein!
BaseUtilities.mvmonomials
BaseUtilities.mvmonomials!
BaseUtilities.mvpdim
BaseUtilities.nvariate
BaseUtilities.polynomialbasis
BaseUtilities.polynomialspace
BaseUtilities.MeshGrid
BaseUtilities.PolynomialBasis
BaseUtilities.PolynomialBasis
BaseUtilities.PolynomialSpace
BaseUtilities.SCMatrix
BaseUtilities.bernstein
BaseUtilities.columns
BaseUtilities.decompose_vectype
BaseUtilities.degree
BaseUtilities.dimension
BaseUtilities.domainpoints
BaseUtilities.dual
BaseUtilities.filled
BaseUtilities.franke
BaseUtilities.joinrows!
BaseUtilities.matrix
BaseUtilities.meshgrid
BaseUtilities.monomial
BaseUtilities.multiindices
BaseUtilities.mvbernstein
BaseUtilities.mvbernstein!
BaseUtilities.mvmonomials
BaseUtilities.mvmonomials!
BaseUtilities.mvpdim
BaseUtilities.ntuples
BaseUtilities.nvariate
BaseUtilities.perturb!
BaseUtilities.polynomialbasis
BaseUtilities.polynomialspace
BaseUtilities.primal
BaseUtilities.ranges
BaseUtilities.scmatrix
BaseUtilities.spacing
BaseUtilities.splitrows
BaseUtilities.splitrows!
BaseUtilities.struct_to_dict
BaseUtilities.triangles
BaseUtilities.unsafe_matrix
BaseUtilities.unsafe_ntuple
BaseUtilities.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) ≈ 1
Evaluate 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 n
n 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 coordinates
and 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 coordinates
See 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, ...
ifx
is a number - bivariate polynomials
1, x, y, x^2, x*y, y^2, x^3, x^2*y, ...
ifx...
isx, y
or a 2-tuple orSVector{2}
- trivariate polynomials
1, x, y, z, x^2, x*y, y^2, y*z, z^2, ...
ifx...
isx, y, z
or 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