Toric Line Bundles

Constructors

Generic constructors

ToricLineBundleMethod
ToricLineBundle(v::AbstractNormalToricVariety, c::Vector{T}) where {T <: IntegerUnion}

Construct the line bundle on the abstract normal toric variety v with class c.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety
source
ToricLineBundleMethod
ToricLineBundle(v::AbstractNormalToricVariety, d::ToricDivisor)

Construct the toric variety associated to a (Cartier) torus-invariant divisor d on the normal toric variety v.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, ToricDivisor(v,[1,2,3]))
A toric line bundle on a normal toric variety
source

Tensor products

Toric line bundles l1 and l2 (on the same toric variety) can be tensored by l1*l2. We support the k-th tensor power by l1^k. k can be either an integer or valued in fmpz. The inverse of l1 is computed by inv(l1).

Equality

Equality of toric line bundles l1 and l2 (on the same toric variety) is implemented by l1 == l2.

Properties

To check if a line bundle l is trivial, one can invoke is_trivial(l). Beyond this, we support the following properties of toric line bundles:

is_basepoint_freeMethod
is_basepoint_free(l::ToricLineBundle)

Return true if the toric line bundle l is basepoint free and false otherwise.

Examples

julia> F4 = hirzebruch_surface(4)
A normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor

julia> is_basepoint_free(ToricLineBundle(F4, [0,1]))
true
source
is_ampleMethod
is_ample(l::ToricLineBundle)

Return true if the toric line bundle l is ample and false otherwise.

Examples

julia> F4 = hirzebruch_surface(4)
A normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor

julia> is_ample(ToricLineBundle(F4, [1,0]))
false
source
is_very_ampleMethod
is_very_ample(l::ToricLineBundle)

Return true if the toric line bundle l is very ample and false otherwise.

Examples

julia> F4 = hirzebruch_surface(4)
A normal, non-affine, smooth, projective, gorenstein, non-fano, 2-dimensional toric variety without torusfactor

julia> is_very_ample(ToricLineBundle(F4, [1,0]))
false
source

Attributes

degreeMethod
degree(l::ToricLineBundle)

Return the degree of the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety

julia> degree(l)
2
source
divisor_classMethod
divisor_class(l::ToricLineBundle)

Return the divisor class which defines the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety

julia> divisor_class(l)
Element of
GrpAb: Z
with components [2]
source
toric_divisorMethod
toric_divisor(l::ToricLineBundle)

Return a divisor corresponding to the toric line bundle l.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety

julia> toric_divisor(l)
A torus-invariant, cartier, non-prime divisor on a normal toric variety

julia> is_cartier(toric_divisor(l))
true
source
toric_varietyMethod
toric_variety(l::ToricLineBundle)

Return the toric variety over which the toric line bundle l is defined.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety

julia> toric_variety(l)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor
source

Special line bundles

anticanonical_bundleMethod
anticanonical_bundle(v::AbstractNormalToricVariety)

Construct the anticanonical bundle of a normal toric variety. For convenience, we also support anticanonical_bundle(variety).

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> anticanonical_bundle(v)
A toric line bundle on a normal toric variety
source
canonical_bundleMethod
canonical_bundle(v::AbstractNormalToricVariety)

Construct the canonical bundle of a normal toric variety. For convenience, we also support canonical_bundle(variety).

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> canonical_bundle(v)
A toric line bundle on a normal toric variety
source
structure_sheafMethod
structure_sheaf(v::AbstractNormalToricVariety)

Construct the structure sheaf of a normal toric variety. For convenience, we also support structure_sheaf(variety).

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> structure_sheaf(v)
A toric line bundle on a normal toric variety
source

Methods

basis_of_global_sections_via_rational_functionsMethod
basis_of_global_sections_via_rational_functions(l::ToricLineBundle)

Return a basis of the global sections of the toric line bundle l in terms of rational functions.

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety

julia> basis_of_global_sections_via_rational_functions(l)
6-element Vector{MPolyQuoElem{fmpq_mpoly}}:
 x1_^2
 x2*x1_^2
 x2^2*x1_^2
 x1_
 x2*x1_
 1
source
basis_of_global_sections_via_homogeneous_componentMethod
basis_of_global_sections_via_homogeneous_component(l::ToricLineBundle)

Return a basis of the global sections of the toric line bundle l in terms of a homogeneous component of the Cox ring of toric_variety(l). For convenience, this method can also be called via basis_of_global_sections(l::ToricLineBundle).

Examples

julia> v = projective_space(NormalToricVariety, 2)
A normal, non-affine, smooth, projective, gorenstein, fano, 2-dimensional toric variety without torusfactor

julia> l = ToricLineBundle(v, [fmpz(2)])
A toric line bundle on a normal toric variety

julia> basis_of_global_sections_via_homogeneous_component(l)
6-element Vector{MPolyElem_dec{fmpq, fmpq_mpoly}}:
 x3^2
 x2*x3
 x2^2
 x1*x3
 x1*x2
 x1^2

julia> basis_of_global_sections(l)
6-element Vector{MPolyElem_dec{fmpq, fmpq_mpoly}}:
 x3^2
 x2*x3
 x2^2
 x1*x3
 x1*x2
 x1^2
source