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_border
— Functionconstructs 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
ApproximateVanishingIdeals.purge
— Functionpurges 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
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.
ApproximateVanishingIdeals.reconstruct_border
— Functionreconstructs border for O_test