#include "src/utility/ConstantsComparator.h" #include #include #include #include "src/utility/constants.h" #include "src/settings/SettingsManager.h" #include "src/settings/modules/GeneralSettings.h" namespace storm { namespace utility { template bool ConstantsComparator::isOne(ValueType const& value) const { return storm::utility::isOne(value); } template bool ConstantsComparator::isZero(ValueType const& value) const { return storm::utility::isZero(value); } template bool ConstantsComparator::isEqual(ValueType const& value1, ValueType const& value2) const { return value1 == value2; } template bool ConstantsComparator::isConstant(ValueType const& value) const { return storm::utility::isConstant(value); } template bool ConstantsComparator::isInfinity(ValueType const& value) const { return false; } ConstantsComparator::ConstantsComparator() : precision(static_cast(storm::settings::generalSettings().getPrecision())) { // Intentionally left empty. } ConstantsComparator::ConstantsComparator(float precision) : precision(precision) { // Intentionally left empty. } bool ConstantsComparator::isOne(float const& value) const { return std::abs(value - one()) <= precision; } bool ConstantsComparator::isZero(float const& value) const { return std::abs(value) <= precision; } bool ConstantsComparator::isEqual(float const& value1, float const& value2) const { return std::abs(value1 - value2) <= precision; } bool ConstantsComparator::isConstant(float const& value) const { return true; } bool ConstantsComparator::isInfinity(float const& value) const { return value == storm::utility::infinity(); } ConstantsComparator::ConstantsComparator() : precision(storm::settings::generalSettings().getPrecision()) { // Intentionally left empty. } ConstantsComparator::ConstantsComparator(double precision) : precision(precision) { // Intentionally left empty. } bool ConstantsComparator::isOne(double const& value) const { return std::abs(value - one()) <= precision; } bool ConstantsComparator::isZero(double const& value) const { return std::abs(value) <= precision; } bool ConstantsComparator::isInfinity(double const& value) const { return value == infinity(); } bool ConstantsComparator::isEqual(double const& value1, double const& value2) const { return std::abs(value1 - value2) <= precision; } bool ConstantsComparator::isConstant(double const& value) const { return true; } // Explicit instantiations. template class ConstantsComparator; template class ConstantsComparator; template class ConstantsComparator; template class ConstantsComparator; #ifdef STORM_HAVE_CARL template class ConstantsComparator; template class ConstantsComparator; template class ConstantsComparator; #endif } }