"""
Base class for polyhedra over `\QQ`
"""
from sage.rings.all import QQ
from base import Polyhedron_base
class Polyhedron_QQ(Polyhedron_base):
"""
Base class for Polyhedra over `\QQ`
TESTS::
sage: p = Polyhedron([(0,0)], base_ring=QQ); p
A 0-dimensional polyhedron in QQ^2 defined as the convex hull of 1 vertex
sage: TestSuite(p).run()
"""
def _is_zero(self, x):
"""
Test whether ``x`` is zero.
INPUT:
- ``x`` -- a number in the base ring.
OUTPUT:
Boolean.
EXAMPLES::
sage: p = Polyhedron([(0,0)], base_ring=QQ)
sage: p._is_zero(0)
True
sage: p._is_zero(1/100000)
False
"""
return x==0
def _is_nonneg(self, x):
"""
Test whether ``x`` is nonnegative.
INPUT:
- ``x`` -- a number in the base ring.
OUTPUT:
Boolean.
EXAMPLES::
sage: p = Polyhedron([(0,0)], base_ring=QQ)
sage: p._is_nonneg(1)
True
sage: p._is_nonneg(-1/100000)
False
"""
return x>=0
def _is_positive(self, x):
"""
Test whether ``x`` is positive.
INPUT:
- ``x`` -- a number in the base ring.
OUTPUT:
Boolean.
EXAMPLES::
sage: p = Polyhedron([(0,0)], base_ring=QQ)
sage: p._is_positive(1)
True
sage: p._is_positive(0)
False
"""
return x>0
_base_ring = QQ