summaryrefslogtreecommitdiff
path: root/impl/Operator.hpp
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@carlo-laptop>2012-04-27 13:33:58 +1000
committerCarlo Zancanaro <carlo@carlo-laptop>2012-04-27 13:33:58 +1000
commit2c22cee1f8fa87c527449a8bdc668ea311fdaf64 (patch)
tree561d7cc1193765418d402c2265aeb39837c101a7 /impl/Operator.hpp
parent76a4f0fcf3a9bf54ef910cdb2c0bebea37182391 (diff)
Bit more work. maxFixpoint should be working now.
Diffstat (limited to 'impl/Operator.hpp')
-rw-r--r--impl/Operator.hpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/impl/Operator.hpp b/impl/Operator.hpp
index d6b92f2..3e11443 100644
--- a/impl/Operator.hpp
+++ b/impl/Operator.hpp
@@ -34,9 +34,9 @@ struct Maximum : public Operator<T> {
}
};
template<typename T>
-struct Minimumm : public Operator<T> {
+struct Minimum : public Operator<T> {
virtual T operator() (const std::vector< Expression<T>* >& args, const VariableAssignment<T>& assignment) const {
- T value = -infinity<T>();
+ T value = infinity<T>();
for (typename std::vector< Expression<T>* >::const_iterator it = args.begin();
it != args.end();
++it) {
@@ -47,6 +47,17 @@ struct Minimumm : public Operator<T> {
}
};
+template<typename T>
+struct Constant : public Operator<T> {
+ Constant(const T& val)
+ : _value(val) { }
+ T operator() (const std::vector< Expression<T>* >& args, const VariableAssignment<T>& ass) const {
+ return _value;
+ }
+ private:
+ const T _value;
+};
+
#include "VariableAssignment.hpp"
#include "Expression.hpp"