Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/geometry/polyhedron/base_RDF.py
4066 views
1
"""
2
Base class for polyhedra over ``RDF``.
3
"""
4
5
from sage.rings.all import RDF
6
from base import Polyhedron_base
7
8
9
10
class Polyhedron_RDF(Polyhedron_base):
11
"""
12
Base class for polyhedra over ``RDF``.
13
14
TESTS::
15
16
sage: p = Polyhedron([(0,0)], base_ring=RDF); p
17
A 0-dimensional polyhedron in RDF^2 defined as the convex hull of 1 vertex
18
sage: TestSuite(p).run()
19
"""
20
# 1e-6 is the cddf+ default fuzzy zero cutoff
21
22
def _is_zero(self, x):
23
"""
24
Test whether ``x`` is zero.
25
26
INPUT:
27
28
- ``x`` -- a number in the base ring.
29
30
OUTPUT:
31
32
Boolean.
33
34
EXAMPLES::
35
36
sage: p = Polyhedron([(0,0)], base_ring=RDF)
37
sage: p._is_zero(0)
38
True
39
sage: p._is_zero(1e-3)
40
False
41
42
This is a fuzzy zero for floating-point numbers::
43
44
sage: p._is_zero(1e-10)
45
True
46
"""
47
return abs(x)<=1e-6
48
49
def _is_nonneg(self, x):
50
"""
51
Test whether ``x`` is nonnegative.
52
53
INPUT:
54
55
- ``x`` -- a number in the base ring.
56
57
OUTPUT:
58
59
Boolean.
60
61
EXAMPLES::
62
63
sage: p = Polyhedron([(0,0)], base_ring=RDF)
64
sage: p._is_nonneg(1)
65
True
66
sage: p._is_nonneg(-1e-3)
67
False
68
69
This is a fuzzy zero for floating-point numbers::
70
71
sage: p._is_nonneg(-1e-10)
72
True
73
"""
74
return x>=-1e-6
75
76
def _is_positive(self, x):
77
"""
78
Test whether ``x`` is positive.
79
80
INPUT:
81
82
- ``x`` -- a number in the base ring.
83
84
OUTPUT:
85
86
Boolean.
87
88
EXAMPLES::
89
90
sage: p = Polyhedron([(0,0)], base_ring=RDF)
91
sage: p._is_positive(1)
92
True
93
sage: p._is_positive(0)
94
True
95
96
This is a fuzzy zero for floating-point numbers::
97
98
sage: p._is_positive(-1e-10)
99
True
100
"""
101
return x>=-1e-6
102
103
_base_ring = RDF
104
105
106