Macaulay2 » Documentation
Packages » RandomPoints :: projectionToHypersurface
next | previous | forward | backward | up | index | toc

# projectionToHypersurface -- Generic projection to a hypersurface

- Usage:
    `projectionToHypersurface I`
    `projectionToHypersurface R`
- Inputs:
  - I, an ideal, an ideal in a polynomial ring
  - R, a ring, a quotient of a polynomial ring
- Optional inputs:
  - Codimension => an integer, default value null, specified if you already know the codimension of your Ideal (or QuotientRing) in your ambient ring
  - MaxCoordinatesToReplace => an integer, default value infinity, to be passed to randomCoordinateChange
  - Replacement => a symbol, default value Binomial, to be passed to randomCoordinateChange
  - Homogeneous => a Boolean value, default value true, to be passed to randomCoordinateChange
  - Verbose => a Boolean value, default value false, set to true for verbose output
- Outputs:
  - a ring map, a list with two entries, the generic projection map, and the ideal if I was provided, or the ring if R was provided

## Description

This creates a projection to a hypersurface. It differs from genericProjection(codim I - 1, I) as it only tries to find a hypersurface equation that vanishes along the projection, instead of finding one that vanishes exactly at the projection. This can be faster, and can be useful for finding points.

    i1 : R=ZZ/5[x,y,z];

    i2 : I = ideal(random(3,R)-2, random(2,R));

    o2 : Ideal of R

    i3 : projectionToHypersurface(I)

                  ZZ                             6     5      4 2       5    6
    o3 = (map (R, --[y..z], {x, y - 2z}), ideal(y  - 2y z - 2y z  - 2y*z  + z  -
                   5
         ------------------------------------------------------------------------
           2       2
         2y z + y*z  - 1))

    o3 : Sequence

    i4 : projectionToHypersurface(R/I)

                                                       R
    o4 = (map (------------------------------------------------------------------
                    3       2     3    2     2        2       2     3
               (- 2x  - 2x*y  - 2y  + x z - y z + 2x*z  - 2y*z  - 2z  - 2, - 2x*z
         ------------------------------------------------------------------------
                                                   ZZ
                                                   --[y..z]
                                                    5
         --------------, --------------------------------------------------------
                     2    6    5      4 2     2 4      5     3    2       2    3
          + 2y*z - 2z )  y  - y z + 2y z  - 2y z  - y*z  + 2y  - y z - y*z  + z
         ------------------------------------------------------------------------
                                                          ZZ
                                                          --[y..z]
                                                           5
         ---, {y + 2z, x + z}), -------------------------------------------------
                                 6    5      4 2     2 4      5     3    2
         + 1                    y  - y z + 2y z  - 2y z  - y*z  + 2y  - y z - y*z
         ------------------------------------------------------------------------
         ----------)
         2    3
           + z  + 1

    o4 : Sequence

If you already know the codimension is c, you can set Codimension=>c so the function does not compute it.

## See also

- genericProjection -- finds a random (somewhat) generic projection of the ring or ideal

## Ways to use projectionToHypersurface:

- `projectionToHypersurface(Ideal)`
- `projectionToHypersurface(Ring)`

## For the programmer

The object projectionToHypersurface is a method function with options.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/RandomPoints.m2:1767:0.