Points on projective schemes¶
This module implements scheme morphism for points on weighted projective schemes.
AUTHORS:
Gareth Ma (2024): initial version, based on unweighted version.
- class sage.schemes.weighted_projective.weighted_projective_point.SchemeMorphism_point_weighted_projective_ring(X, v, check: bool = True)[source]¶
Bases:
SchemeMorphism_pointA rational point of weighted projective space over a ring.
INPUT:
X– a homset of a subscheme of an ambient weighted projective space over a ring \(R\).v– a list or tuple of coordinates in \(R\).check– boolean (default:True); Whether to check the input for consistency.
EXAMPLES:
sage: WP = WeightedProjectiveSpace(2, ZZ) sage: WP(2, 3, 4) (2 : 3 : 4)
>>> from sage.all import * >>> WP = WeightedProjectiveSpace(Integer(2), ZZ) >>> WP(Integer(2), Integer(3), Integer(4)) (2 : 3 : 4)
- normalize_coordinates()[source]¶
Normalise coordinates of this weighted projective point if possible.
Currently, this method checks if (1) the ambient weighted projective space is defined over a field and (2) the weight of any index is \(1\). If so, the last of which is rescaled to \(1\).
EXAMPLES:
sage: WP = WeightedProjectiveSpace([3, 1, 5], QQ) sage: P = WP([8, 16, 32]); P (1/512 : 1 : 1/32768) sage: P.scale_by(13); P (2197/512 : 13 : 371293/32768) sage: P.normalize_coordinates(); P (1/512 : 1 : 1/32768)
>>> from sage.all import * >>> WP = WeightedProjectiveSpace([Integer(3), Integer(1), Integer(5)], QQ) >>> P = WP([Integer(8), Integer(16), Integer(32)]); P (1/512 : 1 : 1/32768) >>> P.scale_by(Integer(13)); P (2197/512 : 13 : 371293/32768) >>> P.normalize_coordinates(); P (1/512 : 1 : 1/32768)
sage: WP = WeightedProjectiveSpace([3, 4, 5], ZZ) sage: P = WP([8, 16, 32]); P (8 : 16 : 32) sage: P.normalize_coordinates(); P (8 : 16 : 32)
>>> from sage.all import * >>> WP = WeightedProjectiveSpace([Integer(3), Integer(4), Integer(5)], ZZ) >>> P = WP([Integer(8), Integer(16), Integer(32)]); P (8 : 16 : 32) >>> P.normalize_coordinates(); P (8 : 16 : 32)
- scale_by(t)[source]¶
Scale the coordinates of the point by
t.A
TypeErroroccurs if the point is not in the base_ring of the codomain after scaling.INPUT:
t– a ring element
OUTPUT: none
EXAMPLES:
sage: WP = WeightedProjectiveSpace([3, 4, 5], ZZ) sage: P = WP([8, 16, 32]); P (8 : 16 : 32) sage: P.scale_by(1 / 2); P (1 : 1 : 1) sage: P.scale_by(1 / 3); P Traceback (most recent call last): ... TypeError: ...
>>> from sage.all import * >>> WP = WeightedProjectiveSpace([Integer(3), Integer(4), Integer(5)], ZZ) >>> P = WP([Integer(8), Integer(16), Integer(32)]); P (8 : 16 : 32) >>> P.scale_by(Integer(1) / Integer(2)); P (1 : 1 : 1) >>> P.scale_by(Integer(1) / Integer(3)); P Traceback (most recent call last): ... TypeError: ...