Border construction

This section contains information about the construction of borders for $\texttt{OAVI}$.

Initial construction

The first time constructing the border we need to handle non-unique terms, purge them and then only continue with the relevant terms and corresponding evaluations.

ApproximateVanishingIdeals.construct_borderFunction

constructs the border of 'terms'

Arguments

  • 'terms::Matrix{Int64}': Matrix with monomial terms as columns
  • 'terms_evaluated::Matrix{Float64}': Matrix with evaluations of 'terms' over X
  • 'X_train::Matrix{Float64}': data
  • 'degree1terms::Matrix{Int64}': Matrix with degree 1 monomials as columns
  • 'degree1termsevaluated::Matrix{Float64}': evaluations of 'degree1_terms' over X
  • 'purging_terms::Matrix{Int64}': purge terms in 'terms' divisible by any of these

Returns

  • 'bordertermsraw::Matrix{Int64}': non-purged border constructed from 'terms'
  • 'borderevaluationsraw::Matrix{Float64}': non-purged evaluations of border terms over X
  • 'nonpurgingindices::Vector{Int64}': array of non-purging indices
  • 'raw_permutation::Vector{Int64}': array with deg-lex ordering permutation
source
ApproximateVanishingIdeals.purgeFunction

purges each term in 'terms' that is divisible by at least one term 'purging_terms'

Arguments

  • 'terms::Matrix{Int64}': Matrix with monomial terms as columns
  • 'terms_evaluated::Matrix{Float64}': evaluations of 'terms' over data
  • 'purging_terms::Matrix{Int64}': Matrix with purging terms as columns

Returns

  • 'terms[:, inidces]::Matrix{Int64}': purged version of terms
  • 'terms_evaluated[:, indices]::Matrix{Float64}': purged evaluations
  • 'indices::Vector{Int64}': array with non-purging indices
source

Reconstruction of the border

When applying the transformation $\mathcal{G}$ found by OAVI, we need to reconstruct the border. This can be sped up by using the computations done in construct_border to avoid unnecessary recomputations of known values.

Index