# normalToricVariety(Fan) -- make a normal toric variety from a 'Polyhedra' fan

## Synopsis

• Usage:
normalToricVariety F
• Function: normalToricVariety
• Inputs:
• F, an object of class Fan
• Optional inputs:
• CoefficientRing => a ring, default value QQ, that specifies the coefficient ring of the total coordinate ring
• MinimalGenerators => , default value false, that is ignored by this routine
• Variable => , default value x, that specifies the base symbol for the indexed variables in the total coordinate ring
• WeilToClass => , default value null, that specifies the map from the group of torus-invariant Weil divisors to the class group
• Outputs:
• , determined by the rational strongly convex polyhedral fan

## Description

This method makes a NormalToricVariety from a Fan as implemented in the Polyhedra package.

 ```i1 : F = faceFan convexHull (id_(ZZ^3) | -id_(ZZ^3)) o1 = F o1 : Fan``` ```i2 : rays F o2 = | -1 1 0 0 0 0 | | 0 0 -1 1 0 0 | | 0 0 0 0 -1 1 | 3 6 o2 : Matrix ZZ <--- ZZ``` ```i3 : maxCones F o3 = {{0, 2, 4}, {1, 2, 4}, {0, 3, 4}, {1, 3, 4}, {0, 2, 5}, {1, 2, 5}, {0, ------------------------------------------------------------------------ 3, 5}, {1, 3, 5}} o3 : List``` `i4 : X = normalToricVariety F;` `i5 : assert (transpose matrix rays X == rays F and max X == sort maxCones F)`

The recommended method for creating a NormalToricVariety from a fan is normalToricVariety(List,List). In fact, this package avoids using objects from the Polyhedra package whenever possible. Here is a trivial example, namely projective 2-space, illustrating the substantial increase in time resulting from the use of a Polyhedra fan.

 ```i6 : X1 = time normalToricVariety ({{-1,-1},{1,0},{0,1}}, {{0,1},{1,2},{0,2}}) -- used 0.000014491 seconds o6 = normalToricVariety((({{-1, -1}, {1, 0}, {0, 1}}(,({{0, 1}, {0, 2}, {1, 2}} ))))) o6 : NormalToricVariety``` ```i7 : X2 = time normalToricVariety fan {posHull matrix {{-1,1},{-1,0}}, posHull matrix {{1,0},{0,1}}, posHull matrix{{-1,0},{-1,1}}}; -- used 0.0247353 seconds``` `i8 : assert (sort rays X1 == sort rays X2 and max X1 == max X2)`