# Hypersurfaces in affine and projective space#

AUTHORS:

class sage.schemes.generic.hypersurface.AffineHypersurface(poly, ambient=None)#

The affine hypersurface defined by the given polynomial.

EXAMPLES:

```sage: A.<x, y, z> = AffineSpace(ZZ, 3)
sage: AffineHypersurface(x*y - z^3, A)
Affine hypersurface defined by -z^3 + x*y
in Affine Space of dimension 3 over Integer Ring
```
```sage: A.<x, y, z> = QQ[]
sage: AffineHypersurface(x*y - z^3)
Affine hypersurface defined by -z^3 + x*y
in Affine Space of dimension 3 over Rational Field
```
defining_polynomial()#

Return the polynomial equation that cuts out this affine hypersurface.

EXAMPLES:

```sage: R.<x, y, z> = ZZ[]
sage: H = AffineHypersurface(x*z + y^2)
sage: H.defining_polynomial()
y^2 + x*z
```
class sage.schemes.generic.hypersurface.ProjectiveHypersurface(poly, ambient=None)#

The projective hypersurface defined by the given polynomial.

EXAMPLES:

```sage: P.<x, y, z> = ProjectiveSpace(ZZ, 2)
sage: ProjectiveHypersurface(x - y, P)
Projective hypersurface defined by x - y
in Projective Space of dimension 2 over Integer Ring
```
```sage: R.<x, y, z> = QQ[]
sage: ProjectiveHypersurface(x - y)
Projective hypersurface defined by x - y
in Projective Space of dimension 2 over Rational Field
```
defining_polynomial()#

Return the polynomial equation that cuts out this projective hypersurface.

EXAMPLES:

```sage: R.<x, y, z> = ZZ[]
sage: H = ProjectiveHypersurface(x*z + y^2)
sage: H.defining_polynomial()
y^2 + x*z
```
sage.schemes.generic.hypersurface.is_Hypersurface(self)#

Return True if `self` is a hypersurface, i.e. an object of the type `ProjectiveHypersurface` or `AffineHypersurface`.

EXAMPLES:

```sage: from sage.schemes.generic.hypersurface import is_Hypersurface
sage: R.<x, y, z> = ZZ[]
sage: H = ProjectiveHypersurface(x*z + y^2)
sage: is_Hypersurface(H)
True
```
```sage: H = AffineHypersurface(x*z + y^2)
sage: is_Hypersurface(H)
True
```
```sage: H = ProjectiveSpace(QQ, 5)
sage: is_Hypersurface(H)
False
```