# fan -- generates a Fan

## Synopsis

• Usage:
F = fan C
F = fan L
• Inputs:
• Outputs:
• F, an instance of the type Fan

## Description

If fan is applied to a Cone it generates the Fan given by the the Cone and all of its faces. If applied to a List the list must only contain Cones and Fans in the same ambient space. Then it adds the Cones in the List and the generating Cones of the Fans in the List one by one to the Fan, checking each time if the new Cone is compatible with the cones that have already been added, i.e. that the intersection with each of them is a face of both Cones (intersection condition).

If one of the cones is in the wrong ambient space, there will be an error and no fan will be returned. If the intersection condition fails, there will also be an error. The pairs of incompatible cones can be accessed with the function incompCones.

 i1 : C = posHull matrix {{1,-1},{0,-1}} o1 = {ambient dimension => 2 } dimension of lineality space => 0 dimension of the cone => 2 number of facets => 2 number of rays => 2 o1 : Cone i2 : F = fan C o2 = {ambient dimension => 2 } number of generating cones => 1 number of rays => 2 top dimension of the cones => 2 o2 : Fan i3 : C1 = posHull matrix {{1,0},{0,1}}; i4 : C2 = posHull matrix {{0,-1},{1,-1}}; i5 : F = fan {C,C1,C2} o5 = {ambient dimension => 2 } number of generating cones => 3 number of rays => 3 top dimension of the cones => 2 o5 : Fan

• "fan(Cone)"
• "fan(List)"

## For the programmer

The object fan is .