documentation:master:fulton

Differences

This shows you the differences between two versions of the page.


documentation:master:fulton [2023/01/27 16:59] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== application fulton ======
 + This application deals with normal toric varieties as discussed in the famous book William Fulton: Introduction to toric varieties.
 +
 +imports from:
 +    * application [[.:common|common]]
 +    * application [[.:fan|fan]]
 +    * application [[.:graph|graph]]
 +    * application [[.:ideal|ideal]]
 +    * application [[.:polytope|polytope]]
 +uses:
 +    * application [[.:group|group]]
 +    * application [[.:topaz|topaz]]
 +
 +===== Objects =====
 +  ** ''[[.:fulton:CyclicQuotient |CyclicQuotient]]'':\\  An affine normal toric variety given by a two-dimensional cone in two-dimensional space.
 +  ** ''[[.:fulton:NormalToricVariety |NormalToricVariety]]'':\\  A normal toric variety given by a fan.
 +  ** ''[[.:fulton:RationalDivisorClassGroup |RationalDivisorClassGroup]]'':\\  The class group Cl(X) of Weil divisors on the toric variety defined by the fan is a finitely generated abelian group of rank [[.:fan:PolyhedralFan#N_RAYS |N_RAYS]]-[[.:fan:PolyhedralFan#DIM |DIM]]. It usually contains torsion. The rational divisor class group is the tensor product of Cl(X) with Q over Z. This group is torsion free and corresponds to the Picard group if the variety is non-singular.
 +  ** ''[[.:fulton:TDivisor |TDivisor]]'':\\  A //T//-invariant divisor on a normal toric variety.
 +  ** ''[[.:fulton:VersalComponent |VersalComponent]]'':\\  A component of the versal deformation of a ''[[.:fulton:CyclicQuotient |CyclicQuotient]]'' singularity.
 +
 +===== Functions =====
 +
 +==== Combinatorics ====
 + Combinatorial functions.
 +----
 +{{anchor:polytope_of_divisor_class:}}
 +  ?  **''polytope_of_divisor_class''**
 +  :: return the polytope defined by an element of the nef or effective cone first argument is the fan, second the Vector defining the divisor class
 +
 +
 +----
 +
 +==== Commutative Algebra ====
 + These methods help with translating combinatorics to commutative algebra.
 +----
 +{{anchor:lower_lattice_points:}}
 +  ?  **''lower_lattice_points''**
 +  :: Find all lattice points of a polytope P that are not reachable from some other lattice point via the tail cone.
 +
 +
 +----
 +
 +==== Continued fractions ====
 + Two simple methods for switching between rational numbers and continued fractions.
 +----
 +{{anchor:cf2rational:}}
 +  ?  **''cf2rational([[.:common#Vector |Vector]]<[[.:common#Integer |Integer]]> v)''**
 +  :: Compute the rational number corresponding to a continued fraction.
 +    ? Parameters:
 +    :: ''[[.:common#Vector |Vector]]<[[.:common#Integer |Integer]]>'' ''v''
 +    ? Returns:
 +    :''[[.:common#Rational |Rational]]''
 +
 +
 +----
 +{{anchor:rational2cf:}}
 +  ?  **''rational2cf([[.:common#Rational |Rational]] r)''**
 +  :: Compute the continued fraction corresponding to a rational number //r//.
 +    ? Parameters:
 +    :: ''[[.:common#Rational |Rational]]'' ''r''
 +    ? Returns:
 +    :''[[.:common#Vector |Vector]]<[[.:common#Integer |Integer]]>''
 +
 +
 +----
 +
 +==== Producing a normal toric variety ====
 + With these clients you can create a normal toric variety from various input data.
 +----
 +{{anchor:hirzebruch_surface:}}
 +  ?  **''hirzebruch_surface([[.:common#Integer |Integer]] r)''**
 +  :: Takes one parameter //r// and returns the polyhedral fan corresponding the the Hirzebruch surface //H<sub>r</sub>//.
 +    ? Parameters:
 +    :: ''[[.:common#Integer |Integer]]'' ''r'': Parameter
 +    ? Returns:
 +    :''[[.:fulton:NormalToricVariety |NormalToricVariety]]''
 +
 +
 +----
 +{{anchor:polarized_toric_variety:}}
 +  ?  **''polarized_toric_variety([[.:polytope:Polytope |Polytope]]<[[.:common#Rational |Rational]]> P, [[.:common#String |String]] name)''**
 +  :: Creates a toric variety from the normal fan of a polytope and adds the defining divisor of the polytope
 +    ? Parameters:
 +    :: ''[[.:polytope:Polytope |Polytope]]<[[.:common#Rational |Rational]]>'' ''P'': : the input polytope
 +    :: ''[[.:common#String |String]]'' ''name'': : a name for the divisor
 +    ? Returns:
 +    :''[[.:fulton:NormalToricVariety |NormalToricVariety]]''
 +
 +
 +----
 +{{anchor:projective_space:}}
 +  ?  **''projective_space([[.:common#Int |Int]] d)''**
 +  :: Takes one parameter //d// and returns the fan corresponding to the //d//-dimensional projective space.
 +    ? Parameters:
 +    :: ''[[.:common#Int |Int]]'' ''d'': Dimension
 +    ? Returns:
 +    :''[[.:fulton:NormalToricVariety |NormalToricVariety]]''
 +
 +
 +----
 +{{anchor:weighted_projective_space:}}
 +  ?  **''weighted_projective_space([[.:common#Vector |Vector]]<[[.:common#Int |Int]]> a)''**
 +  :: Takes a vector //a// and returns the fan corresponding to the weighted projective space associated to //a//.
 +    ? Parameters:
 +    :: ''[[.:common#Vector |Vector]]<[[.:common#Int |Int]]>'' ''a'': the weights
 +    ? Returns:
 +    :''[[.:fulton:NormalToricVariety |NormalToricVariety]]''
 +
 +
 +----
 +
 +==== no category ====
 +{{anchor:markov_basis:}}
 +  ?  **''markov_basis([[.:common#Set |Set]]<[[.:common#Vector |Vector]]<[[.:common#Integer |Integer]]%%>>%% S)''**
 +  :: Implementation of Project and Lift algorithm by Hemmecke and Malkin. Given a spanning set of a lattice returns a markov basis.
 +    ? Parameters:
 +    :: ''[[.:common#Set |Set]]<[[.:common#Vector |Vector]]<[[.:common#Integer |Integer]]%%>>%%'' ''S''
 +    ? Returns:
 +    :''[[.:common#Set |Set]]<[[.:common#Vector |Vector]]<[[.:common#Integer |Integer]]%%>>%%''
 +    ? Example:
 +    :: <code perl> > $s = new Set<Vector<Integer>>([1, -2, 1], [1, 1, -1]);
 + > print markov_basis($s);
 + {<-2 1 0> <-1 -1 1> <0 -3 2>}
 +</code>
 +  ?  **''markov_basis([[.:common#Matrix |Matrix]]<[[.:common#Integer |Integer]]> M)''**
 +  :: Implementation of Project and Lift algorithm by Hemmecke and Malkin. Given a Matrix whose rows form a spanning set of a lattice return markov basis as rows of an Integer Matrix,  or if use_kernel = true, returns a markov basis of integer kernel of given Matrix as rows of an Integer Matrix.
 +    ? Parameters:
 +    :: ''[[.:common#Matrix |Matrix]]<[[.:common#Integer |Integer]]>'' ''M''
 +    ? Options:
 +    : 
 +    :: ''[[.:common#Bool |Bool]]'' ''use_kernel'': = false
 +    ? Returns:
 +    :''[[.:common#Matrix |Matrix]]<[[.:common#Integer |Integer]]>''
 +    ? Example:
 +    :: <code perl> > $M = new Matrix<Integer>([[1, 1, 2, -2], [-1, 3, -2, 1]]);
 + > print markov_basis($M, {"use_kernel" => true});
 + 0 2 7 8
 + 1 1 3 4
 +</code>
 +    :: <code perl> > $M = new Matrix<Integer>([[1, 1, 2, -2], [-1, 3, -2, 1]]);
 + > print markov_basis($M);
 + 0 -4 0 1
 + 1 -7 2 0
 + 1 1 2 -2
 +</code>
 +  ?  **''markov_basis([[.:polytope:Polytope |Polytope]]<[[.:common#Rational |Rational]]> P)''**
 +  :: Implementation of Project and Lift algorithm by Hemmecke and Malkin. Given a polytope return the markov basis of the lattice spanned by it's lattice points as rows of an Integer Matrix,
 +    ? Parameters:
 +    :: ''[[.:polytope:Polytope |Polytope]]<[[.:common#Rational |Rational]]>'' ''P''
 +    ? Returns:
 +    :''[[.:common#Matrix |Matrix]]<[[.:common#Integer |Integer]]>''
 +    ? Example:
 +    :: <code perl> > $P = new Polytope(VERTICES=>[[1, 1, 0], [1, 0, 1], [1, 1, 1], [1, 0, 0]]);
 + > print markov_basis($P);
 + 1 -1 -1 1
 +</code>
 +
 +
 +----