# Fan -- the class of all fans

## Description

A Fan represents a fan of rational convex polyhedral cones, i.e. a collection of cones, such that for every cone in the fan all faces are in the fan and for every two cones in the fan their intersection is a face of each (intersection condition). It need not be full dimensional or pure, and the cones need not be pointed. It is saved as a hash table which contains a list of the generating cones of the fan starting with those of maximal dimension. So for every cone in this list all faces are considered to be in the fan. The output of a Fan looks like this:
 i1 : normalFan crossPolytope 3 o1 = Fan{...1...} o1 : Fan

This table displays a short summary of the properties of the Fan. However, one can not access the above information directly, because this is just a virtual hash table generated for the output. The data defining a Fan is extracted by the functions included in this package. A Fan can be constructed by collecting Cones that satisfy the intersection condition. Every cone that is added to a Fan is always considered as the collection of the Cone and all of its faces.

 i2 : C1 = coneFromVData matrix {{2,2},{1,-1}}; i3 : C2 = coneFromVData matrix {{2,-2},{1,1}}; i4 : C3 = coneFromVData matrix {{-2,-2},{1,-1}}; i5 : C4 = coneFromVData matrix {{-2,2},{-1,-1}}; i6 : F = fan {C1,C2,C3,C4} o6 = F o6 : Fan

This fan is for example the normal fan of a ''flattened'' crosspolytope in 2-space.

## Functions and methods returning an object of class Fan :

• ccRefinement -- computes the coarsest common refinement of a set of rays
• faceFan -- computes the fan generated by the cones over the faces
• fan -- generates a Fan
• hirzebruch -- computes the fan of the r-th Hirzebruch surface
• imageFan -- computes the fan of the image
• normalFan -- computes the normalFan of a polyhedron
• skeleton -- computes the k-skeleton of a Fan or PolyhedralComplex
• smoothSubfan -- computes the subfan of all smooth cones
• "stellarSubdivision(Fan,Matrix)" -- see stellarSubdivision -- computes the stellar subdivision of the fan by a ray

## Methods that use an object of class Fan :

• "commonFace(Cone,Fan)" -- see commonFace -- checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans
• "commonFace(Fan,Cone)" -- see commonFace -- checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans
• "commonFace(Fan,Fan)" -- see commonFace -- checks if the intersection is a face of both Cones or Polyhedra, or of cones with fans
• "cones(ZZ,Fan)" -- see cones -- computes all cones of a fan of a certain dimension
• "contains(Fan,Cone)" -- see contains -- checks if the first argument contains the second argument
• directProduct(Fan,Fan) -- computes the direct product of two fans
• "facesAsCones(ZZ,Fan)" -- see facesAsCones -- Returns the faces of a cone as actual cones.
• Fan * Fan -- computes the direct product
• Fan == Fan -- equality
• "incompCones(Cone,Fan)" -- see incompCones -- returns the pairs of incompatible cones
• "incompCones(Fan,Cone)" -- see incompCones -- returns the pairs of incompatible cones
• "incompCones(Fan,Fan)" -- see incompCones -- returns the pairs of incompatible cones
• "isComplete(Fan)" -- see isComplete -- checks completeness of a Fan or PolyhedralComplex
• "isPointed(Fan)" -- see isPointed -- checks if a Cone or Fan is pointed
• "isPolytopal(Fan)" -- see isPolytopal -- checks if a Fan is polytopal
• "isPure(Fan)" -- see isPure -- checks if a Fan or PolyhedralComplex is of pure dimension
• "isSmooth(Fan)" -- see isSmooth -- checks if a Cone or Fan is smooth
• "isWellDefined(Fan)" -- see isWellDefined(Cone) -- Checks whether a polyhedral object is well-defined.
• linearTransform(Fan,Matrix) (missing documentation)
• "linSpace(Fan)" -- see linSpace -- Deprecated version of @TO "linealitySpace"@
• "maxCones(Fan)" -- see maxCones -- displays the generating Cones of a Fan
• minimalNonFaces(Fan) -- Giving the minimal non-faces of a fan..
• polyhedralComplex(Fan) -- Turn a fan into a polyhedral complex
• "polytope(Fan)" -- see polytope -- returns a polytope of which the fan is the normal fan if it is polytopal
• "skeleton(ZZ,Fan)" -- see skeleton -- computes the k-skeleton of a Fan or PolyhedralComplex
• "smoothSubfan(Fan)" -- see smoothSubfan -- computes the subfan of all smooth cones
• stanleyReisnerRing(Fan) -- Give the Stanley–Reisner ring of a fan.

## For the programmer

The object Fan is a type, with ancestor classes PolyhedralObject < MutableHashTable < HashTable < Thing.