From 38dcc5f3c2c32401a85c321948a01af345f62158 Mon Sep 17 00:00:00 2001 From: Julian Piribauer Date: Sun, 26 Jul 2026 13:18:01 +0200 Subject: [PATCH] Adding class for projective ambient spaces --- sage/toric_topdata.sage | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/sage/toric_topdata.sage b/sage/toric_topdata.sage index c5fe0a3..a77ca66 100644 --- a/sage/toric_topdata.sage +++ b/sage/toric_topdata.sage @@ -739,4 +739,35 @@ class ToricPolytopeCICY(ToricPolytope): nef_partition=nef_partition, lvec=lvec ) - \ No newline at end of file + +class ToricPolytopeProjectiveSpace(ToricPolytope): + """ + Computes topological data for hypersurfaces in toric ambient spaces. + """ + def _compute_points_from_weights(self, weights): + # Convert the weights of the projective space to the corresponding points + dimension = len(weights) - 1 + points = identity_matrix(dimension) + try: + weights.remove(1) + except ValueError: + raise ValueError("The weights must include a 1 for the projective space.") + + points = points.insert_row(0, [-w for w in weights]) + return list(points) + + def __init__( + self, + weights, + no_triangulation = 0, + model_name = None, + nef_partition = None, + lvec = None, # Note that the inner point is the last entry + ): + super().__init__( + self._compute_points_from_weights(weights), + no_triangulation=no_triangulation, + model_name=model_name, + nef_partition=nef_partition, + lvec=lvec + ) -- 2.54.0