summaryrefslogtreecommitdiff
path: root/impl/Operator.hpp
diff options
context:
space:
mode:
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"