Contents

# Operators and functions for type CELL

As each CELL is also of type POLYHEDRON, all functions for polyhedra can be applied to cells. The following list contains only functions which are new or behave differently if applied to cells. There are other functions which use different algorithms if applied to cells, but with the same result as described for polyhedra. These functions are not listed.
&x
```&x(P1::CELL, ...)::CELL
P1::CELL &x P2::CELL
```

If all arguments are of type CELL, then so is the result. The domain of the result is the Cartesian product of the arguments' domains. See POLYHEDRON[&x] and PCOMPLEX[&x].

arecompatible
```arecompatible(P1::CELL, P2::CELL, P::name)::boolean
```

If P1 and P2 have the same domain PC, then the (optional) third argument P receives a CELL whose domain is PC. (In other words, P receives the minimum of P1 and P2.) See POLYHEDRON[arecompatible] and minimum.

convert/CONE
```convert(P::CELL, CONE)::{FANCONE, CONE}
```

If the domain of P can be converted to a fan (i.e., if all non-empty cells have the same lineality space) then the result is a FANCONE whose domain is this fan. Otherwise, it is an ordinary CONE. See PCOMPLEX[convert/FAN].

convert/POLYHEDRON
If applied to a CELL, this functions removes the domain information. (That is, this function behaves exactly as for a POLYHEDRON.)
domain
```domain(P::CELL)::PCOMPLEX
```

The domain of P. This is the polyhedral complex to which it belongs.

minimum
```minimum(P1::CELL, ...)::CELL
```

The minimum of the given arguments, i.e., the largest cell contained in all of them. All arguments must have the same domain; at least one argument must be given. Note that the minimum is just the intersection of the arguments (but with the additional domain information).

maximum
```maximum(P1::CELL, ...)::{CELL, 'FAIL'}
```

The maximum of the given arguments, i.e., the smallest cell containing them all. If no such cell exists, the functions returns FAIL. All arguments must have the same domain; at least one argument must be given.

preimage
```preimage(P::CELL, A::{mat, rational, real_infinity}, v::vec)::CELL
```

The result is a CELL whose domain is the preimage of the domain of P. See POLYHEDRON[preimage] and PCOMPLEX[preimage].