Browse Source

support for intervals in matrices

Former-commit-id: e8d9d85162
tempestpy_adaptions
sjunges 9 years ago
parent
commit
1ec453e587
  1. 7
      src/adapters/CarlAdapter.h
  2. 7
      src/storage/SparseMatrix.cpp
  3. 3
      src/utility/constants.cpp

7
src/adapters/CarlAdapter.h

@ -34,6 +34,12 @@ namespace carl {
std::hash<Pol> h; std::hash<Pol> h;
return h(f.nominator()) ^ h(f.denominator()); return h(f.nominator()) ^ h(f.denominator());
} }
template<typename Number>
inline size_t hash_value(carl::Interval<Number> const& i) {
std::hash<Interval<Number>> h;
return h(i);
}
} }
namespace storm { namespace storm {
@ -43,6 +49,7 @@ namespace storm {
typedef carl::FactorizedPolynomial<RawPolynomial> Polynomial; typedef carl::FactorizedPolynomial<RawPolynomial> Polynomial;
typedef carl::Relation CompareRelation; typedef carl::Relation CompareRelation;
typedef carl::RationalFunction<Polynomial> RationalFunction; typedef carl::RationalFunction<Polynomial> RationalFunction;
typedef carl::Interval<double> Interval;
} }
#endif #endif

7
src/storage/SparseMatrix.cpp

@ -1012,11 +1012,18 @@ namespace storm {
template class SparseMatrix<int>; template class SparseMatrix<int>;
template std::ostream& operator<<(std::ostream& out, SparseMatrix<int> const& matrix); template std::ostream& operator<<(std::ostream& out, SparseMatrix<int> const& matrix);
#ifdef STORM_HAVE_CARL #ifdef STORM_HAVE_CARL
// Rat Function
template class MatrixEntry<typename SparseMatrix<RationalFunction>::index_type, RationalFunction>; template class MatrixEntry<typename SparseMatrix<RationalFunction>::index_type, RationalFunction>;
template std::ostream& operator<<(std::ostream& out, MatrixEntry<uint_fast64_t, RationalFunction> const& entry); template std::ostream& operator<<(std::ostream& out, MatrixEntry<uint_fast64_t, RationalFunction> const& entry);
template class SparseMatrixBuilder<RationalFunction>; template class SparseMatrixBuilder<RationalFunction>;
template class SparseMatrix<RationalFunction>; template class SparseMatrix<RationalFunction>;
template std::ostream& operator<<(std::ostream& out, SparseMatrix<RationalFunction> const& matrix); template std::ostream& operator<<(std::ostream& out, SparseMatrix<RationalFunction> const& matrix);
// Intervals
template class MatrixEntry<typename SparseMatrix<Interval>::index_type, Interval>;
template std::ostream& operator<<(std::ostream& out, MatrixEntry<uint_fast64_t, Interval> const& entry);
template class SparseMatrixBuilder<Interval>;
template class SparseMatrix<Interval>;
template std::ostream& operator<<(std::ostream& out, SparseMatrix<Interval> const& matrix);
#endif #endif

3
src/utility/constants.cpp

@ -259,6 +259,9 @@ namespace storm {
template RationalFunction& simplify(RationalFunction& value); template RationalFunction& simplify(RationalFunction& value);
template RationalFunction&& simplify(RationalFunction&& value); template RationalFunction&& simplify(RationalFunction&& value);
template Interval one();
template Interval zero();
template storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction> simplify(storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction> matrixEntry); template storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction> simplify(storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction> matrixEntry);
template storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>& simplify(storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>& matrixEntry); template storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>& simplify(storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>& matrixEntry);
template storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>&& simplify(storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>&& matrixEntry); template storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>&& simplify(storm::storage::MatrixEntry<storm::storage::sparse::state_type, RationalFunction>&& matrixEntry);

Loading…
Cancel
Save