Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit dcbb3b6

Browse files
author
Matthias Koeppe
committed
sage.geometry: Remove module-level imports of AA, RR, PolynomialRing
1 parent 9a8ff00 commit dcbb3b6

File tree

7 files changed

+38
-36
lines changed

7 files changed

+38
-36
lines changed

src/sage/geometry/convex_set.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -855,10 +855,14 @@ def _test_contains(self, tester=None, **options):
855855
tester.assertEqual(contains_space_point, self.contains(ambient_point))
856856
tester.assertEqual(contains_space_point, self.contains(space_coords))
857857
if space.base_ring().is_exact():
858-
from sage.rings.qqbar import AA
859-
ext_space = self.ambient_vector_space(AA)
860-
ext_space_point = ext_space(space_point)
861-
tester.assertEqual(contains_space_point, self.contains(ext_space_point))
858+
try:
859+
from sage.rings.qqbar import AA
860+
except ImportError:
861+
pass
862+
else:
863+
ext_space = self.ambient_vector_space(AA)
864+
ext_space_point = ext_space(space_point)
865+
tester.assertEqual(contains_space_point, self.contains(ext_space_point))
862866
try:
863867
from sage.symbolic.ring import SR
864868
symbolic_space = self.ambient_vector_space(SR)

src/sage/geometry/polyhedron/backend_normaliz.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
lazy_import('PyNormaliz', ['NmzResult', 'NmzCompute', 'NmzCone', 'NmzConeCopy'],
3131
feature=sage.features.normaliz.PyNormaliz())
3232

33-
from sage.rings.all import ZZ, QQ, QQbar
34-
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
33+
from sage.rings.integer_ring import ZZ
34+
from sage.rings.rational_field import QQ
3535
from sage.arith.functions import LCM_list
3636
from sage.misc.functional import denominator
3737
from sage.matrix.constructor import vector
@@ -1082,10 +1082,11 @@ def _number_field_triple(normaliz_field):
10821082
sage: Pn._number_field_triple(QuadraticField(5)) # optional - sage.rings.number_field
10831083
['a^2 - 5', 'a', '[2.236067977499789 +/- 8.06e-16]']
10841084
"""
1085-
from sage.rings.real_arb import RealBallField
10861085
R = normaliz_field
10871086
if R is QQ:
10881087
return None
1088+
from sage.rings.real_arb import RealBallField
1089+
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
10891090
emb = RealBallField(53)(R.gen(0))
10901091
gen = 'a'
10911092
R_a = PolynomialRing(QQ, gen)
@@ -2336,7 +2337,7 @@ class functions.
23362337
((t^4 + 3*t^3 + 8*t^2 + 3*t + 1)/(t + 1), (3*t^3 + 2*t^2 + 3*t)/(t + 1))
23372338
"""
23382339
from sage.groups.conjugacy_classes import ConjugacyClassGAP
2339-
from sage.rings.all import CyclotomicField
2340+
from sage.rings.all import CyclotomicField, QQbar
23402341
from sage.matrix.all import MatrixSpace
23412342
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
23422343
from sage.matrix.special import identity_matrix

src/sage/geometry/polyhedron/base.py

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151

5252
from sage.misc.cachefunc import cached_method
5353

54+
import sage.rings.abc
5455
from sage.rings.integer_ring import ZZ
5556
from sage.rings.rational_field import QQ
5657
from sage.matrix.constructor import matrix

src/sage/geometry/polyhedron/base0.py

+2-10
Original file line numberDiff line numberDiff line change
@@ -1366,13 +1366,9 @@ def cdd_Hrepresentation(self):
13661366
try:
13671367
cdd_type = self._cdd_type
13681368
except AttributeError:
1369-
from sage.rings.integer_ring import ZZ
1370-
from sage.rings.rational_field import QQ
1371-
from sage.rings.real_double import RDF
1372-
13731369
if self.base_ring() is ZZ or self.base_ring() is QQ:
13741370
cdd_type = 'rational'
1375-
elif self.base_ring() is RDF:
1371+
elif isinstance(self.base_ring(), sage.rings.abc.RealDoubleField):
13761372
cdd_type = 'real'
13771373
else:
13781374
raise TypeError('the base ring must be ZZ, QQ, or RDF')
@@ -1431,13 +1427,9 @@ def cdd_Vrepresentation(self):
14311427
try:
14321428
cdd_type = self._cdd_type
14331429
except AttributeError:
1434-
from sage.rings.integer_ring import ZZ
1435-
from sage.rings.rational_field import QQ
1436-
from sage.rings.real_double import RDF
1437-
14381430
if self.base_ring() is ZZ or self.base_ring() is QQ:
14391431
cdd_type = 'rational'
1440-
elif self.base_ring() is RDF:
1432+
elif isinstance(self.base_ring(), sage.rings.abc.RealDoubleField):
14411433
cdd_type = 'real'
14421434
else:
14431435
raise TypeError('the base ring must be ZZ, QQ, or RDF')

src/sage/geometry/polyhedron/base6.py

+19-15
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
from sage.modules.vector_space_morphism import linear_transformation
3737
from sage.matrix.constructor import matrix
3838
from sage.modules.free_module_element import vector
39-
from sage.rings.qqbar import AA
4039
from sage.geometry.convex_set import AffineHullProjectionData
4140
from .base5 import Polyhedron_base5
4241

@@ -967,6 +966,7 @@ def _affine_hull_projection(self, *,
967966
except TypeError:
968967
if not extend:
969968
raise ValueError('the base ring needs to be extended; try with "extend=True"')
969+
from sage.rings.qqbar import AA
970970
M = matrix(AA, M)
971971
A = M.gram_schmidt(orthonormal=orthonormal)[0]
972972
if minimal:
@@ -1445,21 +1445,25 @@ def _test_affine_hull_projection(self, tester=None, verbose=False, **options):
14451445
# Avoid very long doctests.
14461446
return
14471447

1448-
data_sets = [None]*4
1449-
data_sets[0] = self.affine_hull_projection(return_all_data=True)
1448+
try:
1449+
from sage.rings.qqbar import AA
1450+
except ImportError:
1451+
AA = None
1452+
1453+
data_sets = []
1454+
data_sets.append(self.affine_hull_projection(return_all_data=True))
14501455
if self.is_compact():
1451-
data_sets[1] = self.affine_hull_projection(return_all_data=True,
1452-
orthogonal=True,
1453-
extend=True)
1454-
data_sets[2] = self.affine_hull_projection(return_all_data=True,
1455-
orthonormal=True,
1456-
extend=True)
1457-
data_sets[3] = self.affine_hull_projection(return_all_data=True,
1458-
orthonormal=True,
1459-
extend=True,
1460-
minimal=True)
1461-
else:
1462-
data_sets = data_sets[:1]
1456+
data_sets.append(self.affine_hull_projection(return_all_data=True,
1457+
orthogonal=True,
1458+
extend=True))
1459+
if AA is not None:
1460+
data_sets.append(self.affine_hull_projection(return_all_data=True,
1461+
orthonormal=True,
1462+
extend=True))
1463+
data_sets.append(self.affine_hull_projection(return_all_data=True,
1464+
orthonormal=True,
1465+
extend=True,
1466+
minimal=True))
14631467

14641468
for i, data in enumerate(data_sets):
14651469
if verbose:

src/sage/geometry/polyhedron/base7.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
from sage.modules.free_module_element import vector
3838
from sage.rings.integer_ring import ZZ
3939
from sage.rings.rational_field import QQ
40-
from sage.rings.qqbar import AA
4140
from .base6 import Polyhedron_base6
4241

4342
class Polyhedron_base7(Polyhedron_base6):
@@ -714,6 +713,7 @@ def volume(self, measure='ambient', engine='auto', **kwds):
714713
if Adet.is_square():
715714
sqrt_Adet = Adet.sqrt()
716715
else:
716+
from sage.rings.qqbar import AA
717717
sqrt_Adet = AA(Adet).sqrt()
718718
scaled_volume = AA(scaled_volume)
719719
return scaled_volume / sqrt_Adet
@@ -910,6 +910,7 @@ def integrate(self, function, measure='ambient', **kwds):
910910
A = affine_hull_data.projection_linear_map.matrix()
911911
Adet = (A.transpose() * A).det()
912912
try:
913+
from sage.rings.qqbar import AA
913914
Adet = AA.coerce(Adet)
914915
except TypeError:
915916
pass

src/sage/geometry/voronoi_diagram.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
from sage.structure.sage_object import SageObject
1717
from sage.geometry.polyhedron.constructor import Polyhedron
18-
from sage.rings.qqbar import AA
1918
from sage.rings.rational_field import QQ
2019
import sage.rings.abc
2120
from sage.geometry.triangulation.point_configuration import PointConfiguration
@@ -103,7 +102,7 @@ def __init__(self, points):
103102
self._n = self._points.n_points()
104103
if not self._n or self._points.base_ring().is_subring(QQ):
105104
self._base_ring = QQ
106-
elif isinstance(self._points.base_ring(), sage.rings.abc.RealDoubleField) or self._points.base_ring() == AA:
105+
elif isinstance(self._points.base_ring(), (sage.rings.abc.RealDoubleField, sage.rings.abc.AlgebraicRealField)):
107106
self._base_ring = self._points.base_ring()
108107
elif isinstance(self._points.base_ring(), sage.rings.abc.RealField):
109108
from sage.rings.real_double import RDF

0 commit comments

Comments
 (0)