Sampling

In this Julia package we partially deal with polynomial and rational function defined on algebraic varieties. These varieties are defined by multivariate polynomial systems. We use HomotopyContinuation.jl to sample these algebraic varieties. The samples are later used for the interpolation.

An alternative would be that a user provides a method that will generate samples without using HomotopyContinuation. In practice it is usually possible to provide such a method, since we very often deal with structured polynomial systems.

AlgebraicInterpolation.reasonable_to_sampleFunction
reasonable_to_sample(X::AbstractAlgebraicVariety, vars::FixedFreeVariables; <keyword_arguments>)

Return false if there are no constraints in free variables after fixing all the fixed ones.

source
AlgebraicInterpolation.possible_to_sampleFunction
possible_to_sample(X::AbstractAlgebraicVariety, vars::FixedFreeVariables; kwargs...)

Returns false if there exists a free variable in vars that is determined in finite many ways by all fixed variables in vars. Supposes that the projection to each variable is dominant.

Throws a WARNING (for keyword argument logging=true) if there are no constraints in free variables after fixing all the fixed ones.

Keyword arguments:

  • tols::Tolerances=Tolerances(): tolerances structure used for computations. Tolerances used

in this method: same as in image_dimension.

  • logging::Bool=true
source
AlgebraicInterpolation.sampleFunction
sample(X::AbstractAlgebraicVariety, vars::FixedFreeVariables; <keyword arguments>) -> FixedFreeSamples

Returns the samples of X in the given vars. Results in an error, if it is impossible or unreasonable to sample the given vars from X.

Keyword arguments

  • nsamples::Integer=1: number of samples.
  • start_point::Union{AbstractVector, Nothing}=nothing: starting point for homotopy continuation.
  • tols::Tolerances=Tolerances(): tolerances for numerical computations.
source
AlgebraicInterpolation.sample!Function
sample!(X::AbstractAlgebraicVariety, vars::FixedFreeSamples; <keyword arguments>) -> FixedFreeSamples

Samples X in the given vars and updates X with these samples.

source
AlgebraicInterpolation.samplesFunction
samples(X::AbstractAlgebraicVariety, vars::FixedFreeVariables) -> FixedFreeSamples

Returns the saved samples of X in the given vars.

source