1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
# Copyright (c) 1997-2018
# Ewgenij Gawrilow, Michael Joswig (Technische Universitaet Berlin, Germany)
# http://www.polymake.org
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2, or (at your option) any
# later version: http://www.gnu.org/licenses/gpl.txt.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#-------------------------------------------------------------------------------
# @category Producing a normal toric variety
# Takes one parameter //r// and returns the polyhedral fan corresponding the the
# Hirzebruch surface //H<sub>r</sub>//.
# @param Integer r Parameter
# @return NormalToricVariety
user_function hirzebruch_surface( $ ) {
my $r=shift;
$r >= 0 or die "hirzebruch_surface: index must be non-negative\n";
my $m=new Matrix<Rational>(unit_matrix<Rational>(2) / -unit_matrix<Rational>(2));
$m->elem(2,1)=$r;
my $f=new NormalToricVariety(RAYS=>$m, MAXIMAL_CONES=>[[0,1],[1,2],[2,3],[0,3]],COMPLETE=>1,PROJECTIVE=>1,SIMPLICIAL=>1,DEGENERATE=>0);
return $f;
}
# @category Producing a normal toric variety
# Takes one parameter //d// and returns the fan corresponding to the //d//-dimensional
# projective space.
# @param Int d Dimension
# @return NormalToricVariety
user_function projective_space( $ ) {
my $d=shift;
$d > 0 or die "projective_space: dimension must be positive\n";
my $m=new Matrix<Rational>(unit_matrix<Rational>($d) / -ones_vector<Rational>($d));
my @a=();
foreach (all_subsets_of_k($d,0..$d)) { push @a, $_; }
my $f=new NormalToricVariety(RAYS=>$m, MAXIMAL_CONES=>\@a,COMPLETE=>1,PROJECTIVE=>1,SIMPLICIAL=>1,DEGENERATE=>0);
return $f;
}
|