This package supports user-friendly calculation of basic invariants of the image of a polynomial map. The computational techniques (interpolation, homotopy continuation and monodromy) come from numerical algebraic geometry.

Many varieties of interest in algebraic geometry and its applications are usefully described as images of polynomial maps, via a parametrization. Implicitization is the process of converting a parametric description of a variety into an intrinsic, or implicit, description. Classically, implicitization refers to the procedure of computing the defining equations of a parametrized variety, and in theory this is accomplished by finding the kernel of a ring homomorphism, via Gröbner bases. In practice however, symbolic Gröbner basis computations are often time-consuming, even for medium-scale problems, and do not scale well with respect to the size of the input.

Despite this, one would often like to know basic information about a parametrized variety, even when symbolic methods are prohibitively expensive. Examples of such information are discrete invariants such as the dimension, the degree, or Hilbert function values. Other examples include Boolean tests, for example whether or not a particular point lies on a parametrized variety. The goal of this package is to provide such information; in other words to numerically implicitize a parametrized variety.

*NumericalImplicitization* builds on top of existing numerical algebraic geometry software: NAG4M2, Bertini and PHCpack. Each of these can be used for path tracking and point sampling; by default, the native engine NAG4M2 is used. Current implementatation is for reduced and irreducible varieties.

**Reference:**

[1] A.J. Sommese and C.W. Wampler, The numerical solution of systems of polynomials. *World Scientific Publishing* (2005).

- Types
- NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- PseudoWitnessSet -- the class of all PseudoWitnessSets

- Functions and commands
- extractImageEquations -- finds implicit equations in a fixed degree for the image of a variety
- isOnImage -- whether a point lies on the image of a variety
- numericalHilbertFunction -- computes the values of the Hilbert function for the image of a variety
- numericalImageDegree -- computes a pseudo-witness set for the image of a variety
- numericalImageDim -- computes the dimension of the image of a variety
- numericalImageSample -- samples general points on the image of a variety
- numericalNullity -- numerical kernel dimension of a matrix
- numericalSourceSample -- samples a general point on a variety

- Methods
- extractImageEquations(NumericalInterpolationTable), see extractImageEquations -- finds implicit equations in a fixed degree for the image of a variety
- isOnImage(PseudoWitnessSet,Point), see isOnImage -- whether a point lies on the image of a variety
- isWellDefined(NumericalInterpolationTable), see isWellDefined(PseudoWitnessSet) -- whether a point lies on the image of a variety
- isWellDefined(PseudoWitnessSet) -- whether a point lies on the image of a variety
- net(NumericalInterpolationTable), see NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- net(PseudoWitnessSet), see PseudoWitnessSet -- the class of all PseudoWitnessSets

- Symbols
- attemptExact, see extractImageEquations -- finds implicit equations in a fixed degree for the image of a variety
- isGraded -- whether input is homogeneous
- maxThreads -- specify maximum number of processor threads
- maxAttempts, see numericalImageDegree -- computes a pseudo-witness set for the image of a variety
- pointEqualityThreshold, see numericalImageDegree -- computes a pseudo-witness set for the image of a variety
- repeats, see numericalImageDegree -- computes a pseudo-witness set for the image of a variety
- traceThreshold, see numericalImageDegree -- computes a pseudo-witness set for the image of a variety
- hilbertFunctionArgument, see NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- hilbertFunctionValue, see NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- imagePoints, see NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- interpolationBasis, see NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- interpolationSVD, see NumericalInterpolationTable -- the class of all NumericalInterpolationTables
- Precondition, see numericalNullity -- numerical kernel dimension of a matrix
- imageDegree, see PseudoWitnessSet -- the class of all PseudoWitnessSets
- imageSlice, see PseudoWitnessSet -- the class of all PseudoWitnessSets
- isCompletePseudoWitnessSet, see PseudoWitnessSet -- the class of all PseudoWitnessSets
- sourceEquations, see PseudoWitnessSet -- the class of all PseudoWitnessSets
- sourceSlice, see PseudoWitnessSet -- the class of all PseudoWitnessSets
- traceTest, see PseudoWitnessSet -- the class of all PseudoWitnessSets
- witnessPointPairs, see PseudoWitnessSet -- the class of all PseudoWitnessSets