# CoCoA:IdealAndSeparatorsOfPoints

## IdealAndSeparatorsOfPoints

ideal and separators for affine points

### Description

This function computes the results of <ttref>IdealOfPoints</ttref> and

<ttref>SeparatorsOfPoints</ttref> together at a cost lower than making the two

separate calls. The result is a record with three fields: <verbatim>

```   Points     -- the points given as argument
Ideal      -- the result of IdealOfPoints
Separators -- the result of SeparatorsOfPoints
```

</verbatim> Thus, if the result is stored in a variable with identifier X, then: X.Points will be the input list of points; X.Ideal will be the ideal of the set of points, with generators forming the reduced Groebner basis for the ideal; and X.Separators will be a list of polynomials whose i-th element will take the value 1 on the i-th point and 0 on the others.

NOTE:

```* the current ring must have at least as many indeterminates as the
dimension of the space in which the points lie;
```
```* the base field for the space in which the points lie is taken to be
the coefficient ring, which should be a field;
```
```* in the polynomials returned, the first coordinate in the space is
taken to correspond to the first indeterminate, the second to the
second, and so on;
```
```* if the number of points is large, say 100 or more, the returned
value can be very large.  To avoid possible problems when printing
such values as a single item we recommend printing out the elements
one at a time as in this example:
```

<verbatim>

```    X := IdealAndSeparatorsOfPoints(Pts);
Foreach Element In Gens(X.Ideal) Do
PrintLn Element;
EndForeach;
```

</verbatim>

For ideals and separators of points in projective space, see

<ttref>IdealAndSeparatorsOfProjectivePoints</ttref>.

#### Example

```  Use R ::= Q[x,y];
Points := [[1, 2], [3, 4], [5, 6]];
X := IdealAndSeparatorsOfPoints(Points);
X.Points;
[[1, 2], [3, 4], [5, 6]]
-------------------------------
X.Ideal;
Ideal(x - y + 1, y^3 - 12y^2 + 44y - 48)
-------------------------------
X.Separators;
[1/8y^2 - 5/4y + 3, -1/4y^2 + 2y - 3, 1/8y^2 - 3/4y + 1]
-------------------------------
```

### Syntax

```IdealAndSeparatorsOfPoints(Points:LIST):RECORD

where Points is a list of lists of coefficients representing a set of
*distinct* points in affine space.
```

```   <type>groebner</type>
<type>ideal</type>
<type>list</type>
<type>points</type>
<type>record</type>
```