From 266d41716812392911418fec17f6d497dea30361 Mon Sep 17 00:00:00 2001 From: sjunges Date: Wed, 17 Feb 2016 20:44:35 +0100 Subject: [PATCH] constants.h/cpp extended to treat carl rational numbers Former-commit-id: 12f0dfbc2ce5e76a4afd404dfb697755e6c20210 --- src/utility/constants.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/utility/constants.cpp b/src/utility/constants.cpp index 900482a72..be0fcb079 100644 --- a/src/utility/constants.cpp +++ b/src/utility/constants.cpp @@ -76,6 +76,17 @@ namespace storm { // FIXME: this should be treated more properly. return storm::RationalFunction(-1.0); } + + template<> + bool isOne(storm::CarlRationalNumber const& a) { + return carl::isOne(a); + } + + template<> + bool isZero(storm::CarlRationalNumber const& a) { + return carl::isZero(a); + } + #endif template @@ -214,13 +225,21 @@ namespace storm { template storm::RationalFunction infinity(); template RationalFunction pow(RationalFunction const& value, uint_fast64_t exponent); - - template Polynomial one(); - template Polynomial zero(); template RationalFunction simplify(RationalFunction value); template RationalFunction& simplify(RationalFunction& value); template RationalFunction&& simplify(RationalFunction&& value); + + template Polynomial one(); + template Polynomial zero(); + + template bool isOne(CarlRationalNumber const& value); + template bool isZero(CarlRationalNumber const& value); + template bool isConstant(CarlRationalNumber const& value); + + template CarlRationalNumber one(); + template CarlRationalNumber zero(); + template bool isOne(Interval const& value); template bool isZero(Interval const& value); template bool isConstant(Interval const& value);