Interpolation basis
Abstract type for interpolation basis is given by
AlgebraicInterpolation.AbstractInterpolationBasis
— Typeabstract type AbstractInterpolationBasis end
Interface
In order to achieve the functionalities of this package that work on general AbstractInterpolationBasis
, one should implement the following interface:
AlgebraicInterpolation.nelements
— Functionnelements(B::AbstractInterpolationBasis) -> Integer
Return the number of elements in B
.
AlgebraicInterpolation.to_expressions
— Functionto_expressions(B::AbstractInterpolationBasis) -> AbstractVector{Expression}
Return the elements of B
converted to Expression
s.
HomotopyContinuation.ModelKit.evaluate
— FunctionHC.evaluate(B::AbstractInterpolationBasis, samples::AbstractMatrix{<:Number})
TBW
MonomialBasis
AlgebraicInterpolation.MonomialBasis
— Typestruct MonomialBasis{Tv<:Integer,Ti<:Integer} <: AbstractInterpolationBasis
mexps::Vector{SparseVector{Tv,Ti}}
vars::Vector{Variable}
end
An AbstractInterpolationBasis
that consists of monomials. Parametric type Tv
defines the type of exponents in multiexponents, Ti
defines the type of non-zero exponent indicies. See also SparseVector
.
MonomialBasis{Tv<:Integer, Ti<:Integer}(; variables::Vector{Variable}, degree::Integer)
monomials(variables::Vector{Variable}, degree::Integer)
Examples
julia> @var x y z
(x, y, z)
julia> mons = MonomialBasis{Int8, Int16}(variables=[x,y,z], degree=2)
10-element MonomialBasis{Int8, Int16}
[1, x, y, z, x^2, y^2, z^2, x*y, x*z, y*z]
julia> samples = randn(ComplexF64, 3, 2)
3×2 Matrix{ComplexF64}:
0.299344-0.238374im -0.527805-0.360128im
-0.114638+1.89994im 0.127791-0.846475im
0.303708+1.24025im 0.0363844-0.264417im
julia> evaluate(mons, samples)
10×2 Matrix{ComplexF64}:
1.0+0.0im 1.0+0.0im
0.299344-0.238374im -0.527805-0.360128im
-0.114638+1.89994im 0.127791-0.846475im
0.303708+1.24025im 0.0363844-0.264417im
0.0327848-0.142712im 0.148886+0.380155im
-3.59664-0.43561im -0.700189-0.216343im
-1.44598+0.753349im -0.0685926-0.0192413im
0.418581+0.596063im -0.372288+0.400752im
0.386557+0.298866im -0.114428+0.126458im
-2.39122+0.434849im -0.219173-0.0645886im