40 namespace Gecode {
namespace Float {
namespace Arithmetic {
47 template<
class A,
class B,
class C>
52 template<
class A,
class B,
class C>
57 template<
class A,
class B,
class C>
61 :
MixTernaryPropagator<A,
PC_FLOAT_BND,B,
PC_FLOAT_BND,C,
PC_FLOAT_BND>(home,share,p,x0,x1,x2) {}
63 template<
class A,
class B,
class C>
66 return new (home)
Min<A,B,C>(home,share,*
this);
69 template<
class A,
class B,
class C>
76 template<
class A,
class B,
class C>
96 template<
class A,
class B,
class C>
101 template<
class A,
class B,
class C>
106 template<
class A,
class B,
class C>
110 :
MixTernaryPropagator<A,
PC_FLOAT_BND,B,
PC_FLOAT_BND,C,
PC_FLOAT_BND>(home,share,p,x0,x1,x2) {}
112 template<
class A,
class B,
class C>
115 return new (home)
Max<A,B,C>(home,share,*
this);
118 template<
class A,
class B,
class C>
125 template<
class A,
class B,
class C>
153 assert(x.
size() > 0);
161 for (
int i=x.
size();
i--; ) {
167 if (x.
same(home,y)) {
169 for (
int i=x.
size();
i--; )
204 assert(x.
size() > 0);
207 for (
int i = x.
size()-1;
i--; ) {
216 for (
int i = x.
size();
i--; ) {
222 if (x[
i].
max() < maxmin) {
249 template<
class A,
class B>
254 template<
class A,
class B>
259 template<
class A,
class B>
265 template<
class A,
class B>
274 template<
class A,
class B>