Toric rational divisor classes

This module is a part of the framework for toric varieties.

AUTHORS:

  • Volker Braun and Andrey Novoseltsev (2010-09-05): initial version.

TESTS:

Toric rational divisor clases are elements of the rational class group of a toric variety, represented as rational vectors in some basis:

sage: dP6 = toric_varieties.dP6()
sage: Cl = dP6.rational_class_group()
sage: D = Cl([1, -2, 3, -4])
sage: D
Divisor class [1, -2, 3, -4]
sage: E = Cl([1/2, -2/3, 3/4, -4/5])
sage: E
Divisor class [1/2, -2/3, 3/4, -4/5]

They behave much like ordinary vectors:

sage: D + E
Divisor class [3/2, -8/3, 15/4, -24/5]
sage: 2 * D
Divisor class [2, -4, 6, -8]
sage: E / 10
Divisor class [1/20, -1/15, 3/40, -2/25]
sage: D * E
Traceback (most recent call last):
...
TypeError: cannot multiply two divisor classes!

The only special method is lift() to get a divisor representing a divisor class:

sage: D.lift()
V(x) - 2*V(u) + 3*V(y) - 4*V(v)
sage: E.lift()
1/2*V(x) - 2/3*V(u) + 3/4*V(y) - 4/5*V(v)
class sage.schemes.toric.divisor_class.ToricRationalDivisorClass

Bases: sage.modules.vector_rational_dense.Vector_rational_dense

Create a toric rational divisor class.

Warning

You probably should not construct divisor classes explicitly.

INPUT:

OUTPUT:

  • toric rational divisor class.

TESTS:

sage: dP6 = toric_varieties.dP6()
sage: Cl = dP6.rational_class_group()
sage: D = dP6.divisor(2)
sage: Cl(D)
Divisor class [0, 0, 1, 0]
lift()

Return a divisor representing this divisor class.

OUTPUT:

An instance of ToricDivisor representing self.

EXAMPLES:

sage: X = toric_varieties.Cube_nonpolyhedral()
sage: D = X.divisor([0,1,2,3,4,5,6,7]); D
V(z1) + 2*V(z2) + 3*V(z3) + 4*V(z4) + 5*V(z5) + 6*V(z6) + 7*V(z7)
sage: D.divisor_class()
Divisor class [29, 6, 8, 10, 0]
sage: Dequiv = D.divisor_class().lift(); Dequiv
6*V(z1) - 17*V(z2) - 22*V(z3) - 7*V(z4) + 25*V(z6) + 32*V(z7)
sage: Dequiv == D
False
sage: Dequiv.divisor_class() == D.divisor_class()
True
sage.schemes.toric.divisor_class.is_ToricRationalDivisorClass(x)

Check if x is a toric rational divisor class.

INPUT:

  • x – anything.

OUTPUT:

  • True if x is a toric rational divisor class, False otherwise.

EXAMPLES:

sage: from sage.schemes.toric.divisor_class import (
...     is_ToricRationalDivisorClass)
sage: is_ToricRationalDivisorClass(1)
False
sage: dP6 = toric_varieties.dP6()
sage: D = dP6.rational_class_group().gen(0)
sage: D
Divisor class [1, 0, 0, 0]
sage: is_ToricRationalDivisorClass(D)
True