Toric Line Bundles
Constructors
Generic constructors
toric_line_bundle — Methodtoric_line_bundle(v::NormalToricVarietyType, picard_class::FinGenAbGroupElem)Construct the line bundle on the abstract normal toric variety with given class in the Picard group of the toric variety in question.
Examples
julia> P2 = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> pc = picard_group_with_map(P2)[1];
julia> l = toric_line_bundle(P2, pc([1]))
Toric line bundle on a normal toric varietytoric_line_bundle — Methodtoric_line_bundle(v::NormalToricVarietyType, picard_class::Vector{T}) where {T <: IntegerUnion}Construct the line bundle on the abstract normal toric variety v with class c in the Picard group of v.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric varietytoric_line_bundle — Methodtoric_line_bundle(v::NormalToricVarietyType, 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)
Normal toric variety
julia> l = toric_line_bundle(v, toric_divisor(v, [1, 2, 3]))
Toric line bundle on a normal toric varietytoric_line_bundle — Methodtoric_line_bundle(d::ToricDivisor)Construct the toric variety associated to a (Cartier) torus-invariant divisor d.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> d = toric_divisor(v, [1, 2, 3]);
julia> l = toric_line_bundle(d)
Toric line bundle on a normal toric varietytoric_line_bundle — Methodtoric_line_bundle(v::NormalToricVarietyType, dc::ToricDivisorClass)Construct the toric variety associated to a divisor class in the class group of a toric variety.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> d = toric_divisor(v, [1, 2, 3])
Torus-invariant, non-prime divisor on a normal toric variety
julia> dc = toric_divisor_class(d)
Divisor class on a normal toric variety
julia> l = toric_line_bundle(v, dc)
Toric line bundle on a normal toric varietytoric_line_bundle — Methodtoric_line_bundle(dc::ToricDivisorClass)Construct the toric variety associated to a divisor class in the class group of a toric variety.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> d = toric_divisor(v, [1, 2, 3])
Torus-invariant, non-prime divisor on a normal toric variety
julia> dc = toric_divisor_class(d)
Divisor class on a normal toric variety
julia> l = toric_line_bundle(dc)
Toric line bundle on a normal toric varietyTensor products
Toric line bundles can be tensored via *. The n-th tensor power can be computed via ^n. In particular, ^(-1) computes the inverse of a line bundle. Alternatively, one can compute the inverse by invoking inv.
Special line bundles
anticanonical_bundle — Methodanticanonical_bundle(v::NormalToricVarietyType)Construct the anticanonical bundle of a normal toric variety.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> anticanonical_bundle(v)
Toric line bundle on a normal toric varietycanonical_bundle — Methodcanonical_bundle(v::NormalToricVarietyType)Construct the canonical bundle of a normal toric variety.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> canonical_bundle(v)
Toric line bundle on a normal toric varietystructure_sheaf — Methodstructure_sheaf(v::NormalToricVarietyType)Construct the structure sheaf of a normal toric variety.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> structure_sheaf(v)
Toric line bundle on a normal toric varietytrivial_line_bundle — Methodtrivial_line_bundle(v::NormalToricVarietyType)Construct the trivial line bundle on a normal toric variety.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = trivial_line_bundle(v)
Toric line bundle on a normal toric variety
julia> is_trivial(l)
trueProperties
Equality of toric line bundles can be tested via ==.
To check if a toric line bundle is trivial, one can invoke is_trivial. Beyond this, we support the following properties of toric line bundles:
is_ample — Methodis_ample(l::ToricLineBundle)Return true if the toric line bundle l is ample and false otherwise.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal toric variety
julia> is_ample(toric_line_bundle(F4, [1,0]))
falseis_basepoint_free — Methodis_basepoint_free(l::ToricLineBundle)Return true if the toric line bundle l is basepoint free and false otherwise.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal toric variety
julia> is_basepoint_free(toric_line_bundle(F4, [1, 0]))
trueis_immaculate — Methodis_immaculate(l::ToricLineBundle)Return true if all sheaf cohomologies of l are trivial and false otherwise.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal toric variety
julia> l = toric_line_bundle(F4, [1,0])
Toric line bundle on a normal toric variety
julia> is_immaculate(toric_line_bundle(F4, [1,0]))
false
julia> all_cohomologies(l)
3-element Vector{ZZRingElem}:
2
0
0is_very_ample — Methodis_very_ample(l::ToricLineBundle)Return true if the toric line bundle l is very ample and false otherwise.
Examples
julia> F4 = hirzebruch_surface(NormalToricVariety, 4)
Normal toric variety
julia> is_very_ample(toric_line_bundle(F4, [1,0]))
falseAttributes
degree — Methoddegree(l::ToricLineBundle)Return the degree of the toric line bundle l.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> degree(l)
2picard_class — Methodpicard_class(l::ToricLineBundle)Return the class in the Picard group which defines the toric line bundle l.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> picard_class(l)
Abelian group element [2]toric_divisor — Methodtoric_divisor(l::ToricLineBundle)Return a toric divisor corresponding to the toric line bundle l.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> toric_divisor(l)
Torus-invariant, cartier, non-prime divisor on a normal toric variety
julia> is_cartier(toric_divisor(l))
truetoric_divisor_class — Methodtoric_divisor_class(l::ToricLineBundle)Return a divisor class in the Class group corresponding to the toric line bundle l.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> toric_divisor(l)
Torus-invariant, cartier, non-prime divisor on a normal toric variety
julia> is_cartier(toric_divisor(l))
truetoric_variety — Methodtoric_variety(l::ToricLineBundle)Return the toric variety over which the toric line bundle l is defined.
Examples
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> toric_variety(l)
Normal toric variety without torusfactorMethods
basis_of_global_sections_via_rational_functions — Methodbasis_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)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> basis_of_global_sections_via_rational_functions(l)
6-element Vector{MPolyQuoRingElem{QQMPolyRingElem}}:
x1_^2
x2*x1_^2
x2^2*x1_^2
x1_
x2*x1_
1basis_of_global_sections_via_homogeneous_component — Methodbasis_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)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> basis_of_global_sections_via_homogeneous_component(l)
6-element Vector{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}:
x3^2
x2*x3
x2^2
x1*x3
x1*x2
x1^2
julia> basis_of_global_sections(l)
6-element Vector{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}:
x3^2
x2*x3
x2^2
x1*x3
x1*x2
x1^2generic_section — Methodgeneric_section(l::ToricLineBundle; range::UnitRange{Int64} = -10000:10000, rng::AbstractRNG = Random.default_rng())Return a generic section of the toric line bundle l, that is return the sum of all elements basis_of_global_sections(l), each multiplied by a random integer.
The optional keyword argument range can be used to set the range of the random integers, e.g., generic_section(l, range = -100:100)
The random source used to create random coefficients can be set with the optional argument rng.
Examples
julia> using Random;
julia> v = projective_space(NormalToricVariety, 2)
Normal toric variety
julia> l = toric_line_bundle(v, [ZZRingElem(2)])
Toric line bundle on a normal toric variety
julia> s = generic_section(l, rng = Random.Xoshiro(1234));
julia> parent(s) == cox_ring(toric_variety(l))
true