CVC3
|
#include <theory_arith_old.h>
EpsRational class ecapsulates the rationals with a symbolic small added. Each rational number is presented as a pair , where is treated symbolically. The operations on the new rationals are defined as
Note that the operations on the infinite values are not defined, as they are never used currently. Infinities can only be asigned or compared.
Definition at line 473 of file theory_arith_old.h.
Type of rationals, normal and the two infinities
Definition at line 478 of file theory_arith_old.h.
CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::EpsRational | ( | RationalType | type | ) | [inline, protected] |
Private constructor to construt infinities.
Definition at line 492 of file theory_arith_old.h.
CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::EpsRational | ( | ) | [inline] |
The blank constructor
Definition at line 559 of file theory_arith_old.h.
Referenced by operator*(), operator+(), operator-(), and operator/().
CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::EpsRational | ( | const EpsRational & | r | ) | [inline] |
Copy constructor
Definition at line 562 of file theory_arith_old.h.
CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::EpsRational | ( | const Rational & | q | ) | [inline] |
Constructor from a rational, constructs a new pair (q, 0).
q | the rational |
Definition at line 569 of file theory_arith_old.h.
CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::EpsRational | ( | const Rational & | q, |
const Rational & | k | ||
) | [inline] |
Constructor from a rational and a given epsilon multiplier, constructs a new pair (q, k).
q | the rational |
k | the epsilon multiplier |
Definition at line 578 of file theory_arith_old.h.
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::isFinite | ( | ) | const [inline] |
Returns if the numbe is finite.
Definition at line 499 of file theory_arith_old.h.
Referenced by CVC3::TheoryArithOld::computeTermBounds(), CVC3::TheoryArithOld::getLowerBound(), CVC3::TheoryArithOld::getUpperBound(), CVC3::TheoryArithOld::hasLowerBound(), and CVC3::TheoryArithOld::hasUpperBound().
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::isRational | ( | ) | const [inline] |
Returns if the number is a plain rational.
Definition at line 506 of file theory_arith_old.h.
References k.
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::isInteger | ( | ) | const [inline] |
Returns if the number is a plain integer.
Definition at line 513 of file theory_arith_old.h.
References CVC3::Rational::isInteger(), k, and q.
Referenced by CVC3::TheoryArithOld::DifferenceLogicGraph::tryUpdate().
Rational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::getFloor | ( | ) | const [inline] |
Returns the floor of the number using the following fomula
Definition at line 526 of file theory_arith_old.h.
References CVC3::Rational::isInteger(), k, and q.
Rational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::getRational | ( | ) | const [inline] |
Returns the rational part of the number
Definition at line 541 of file theory_arith_old.h.
References q.
Referenced by CVC3::TheoryArithOld::DifferenceLogicGraph::addEdge(), CVC3::TheoryArithOld::DifferenceLogicGraph::getValuation(), and CVC3::TheoryArithOld::DifferenceLogicGraph::tryUpdate().
Rational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::getEpsilon | ( | ) | const [inline] |
Returns the epsilon part of the number
Definition at line 548 of file theory_arith_old.h.
References k.
Referenced by CVC3::TheoryArithOld::DifferenceLogicGraph::addEdge(), CVC3::TheoryArithOld::DifferenceLogicGraph::getValuation(), and CVC3::TheoryArithOld::DifferenceLogicGraph::tryUpdate().
EpsRational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator+ | ( | const EpsRational & | r | ) | const [inline] |
Addition operator for two EpsRational numbers.
r | the number to be added |
Definition at line 586 of file theory_arith_old.h.
References DebugAssert, EpsRational(), FINITE, k, q, and type.
EpsRational& CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator+= | ( | const EpsRational & | r | ) | [inline] |
Addition operator for two EpsRational numbers.
r | the number to be added |
Definition at line 598 of file theory_arith_old.h.
References DebugAssert, FINITE, k, q, and type.
EpsRational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator- | ( | const EpsRational & | r | ) | const [inline] |
Subtraction operator for two EpsRational numbers.
r | the number to be added |
Definition at line 611 of file theory_arith_old.h.
References DebugAssert, EpsRational(), FINITE, k, q, and type.
EpsRational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator- | ( | ) | [inline] |
Unary minus operator
Definition at line 620 of file theory_arith_old.h.
References DebugAssert, FINITE, k, q, and type.
EpsRational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator* | ( | const Rational & | a | ) | const [inline] |
Multiplication operator EpsRational number and a rational number.
a | the number to be multiplied |
Definition at line 634 of file theory_arith_old.h.
References DebugAssert, EpsRational(), FINITE, k, q, and type.
EpsRational CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator/ | ( | const Rational & | a | ) | const [inline] |
Division operator EpsRational number and a rational number.
a | the number to be multiplied |
Definition at line 645 of file theory_arith_old.h.
References DebugAssert, EpsRational(), FINITE, k, q, and type.
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator== | ( | const EpsRational & | r | ) | const [inline] |
Equality comparison operator.
Definition at line 653 of file theory_arith_old.h.
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator<= | ( | const EpsRational & | r | ) | const [inline] |
Less than or equal comparison operator.
Definition at line 658 of file theory_arith_old.h.
References FatalAssert, FINITE, k, MINUS_INFINITY, PLUS_INFINITY, q, and type.
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator< | ( | const EpsRational & | r | ) | const [inline] |
Less than comparison operator.
Definition at line 683 of file theory_arith_old.h.
bool CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::operator> | ( | const EpsRational & | r | ) | const [inline] |
Greater than comparison operator.
Definition at line 688 of file theory_arith_old.h.
std::string CVC3::TheoryArithOld::DifferenceLogicGraph::EpsRational::toString | ( | ) | const [inline] |
Returns the string representation of the number.
Definition at line 695 of file theory_arith_old.h.
References FatalAssert, FINITE, k, MINUS_INFINITY, PLUS_INFINITY, q, CVC3::Rational::toString(), and type.
Referenced by CVC3::TheoryArithOld::DifferenceLogicGraph::getEdgeTheorems(), CVC3::TheoryArithOld::getLowerBound(), CVC3::TheoryArithOld::getUpperBound(), and CVC3::TheoryArithOld::DifferenceLogicGraph::tryUpdate().
The type of this rational
Definition at line 481 of file theory_arith_old.h.
Referenced by isFinite(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator<=(), and toString().
The rational part
Definition at line 484 of file theory_arith_old.h.
Referenced by getFloor(), getRational(), isInteger(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator<=(), operator==(), and toString().
The epsilon multiplier
Definition at line 487 of file theory_arith_old.h.
Referenced by getEpsilon(), getFloor(), isInteger(), isRational(), operator*(), operator+(), operator+=(), operator-(), operator/(), operator<=(), operator==(), and toString().
const TheoryArithOld::DifferenceLogicGraph::EpsRational TheoryArithOld::DifferenceLogicGraph::EpsRational::PlusInfinity [static] |
The infinity constant
Definition at line 551 of file theory_arith_old.h.
Referenced by CVC3::TheoryArithOld::getUpperBound().
const TheoryArithOld::DifferenceLogicGraph::EpsRational TheoryArithOld::DifferenceLogicGraph::EpsRational::MinusInfinity [static] |
The negative infinity constant
Definition at line 553 of file theory_arith_old.h.
Referenced by CVC3::TheoryArithOld::computeTermBounds(), and CVC3::TheoryArithOld::getLowerBound().
const TheoryArithOld::DifferenceLogicGraph::EpsRational TheoryArithOld::DifferenceLogicGraph::EpsRational::Zero [static] |
The zero constant
Definition at line 555 of file theory_arith_old.h.
Referenced by CVC3::TheoryArithOld::getLowerBound(), and CVC3::TheoryArithOld::getUpperBound().