Esempio n. 1
0
 inline ExecStatus
 Weights<View>::post(Home home, const SharedArray<int>& elements,
                     const SharedArray<int>& weights,
                     View x, Gecode::Int::IntView y) {
   if (elements.size() != weights.size())
     throw ArgumentSizeMismatch("Weights");
   Region r(home);
   int* els_arr = r.alloc<int>(elements.size());
   for (int i=elements.size(); i--;)
     els_arr[i] = elements[i];
   IntSet els(els_arr, elements.size());
   IntSetRanges er(els);
   GECODE_ME_CHECK(x.intersectI(home, er));
   (void) new (home) Weights(home,elements,weights,x,y);
   return ES_OK;
 }
Esempio n. 2
0
 forceinline
 FloatValArgs::FloatValArgs(const SharedArray<FloatVal>& x)
   : PrimArgArray<FloatVal>(x.size()) {
   for (int i=x.size(); i--;)
     a[i] = x[i];
 }
Esempio n. 3
0
File: array.hpp Progetto: lquan/CSAI
 forceinline
 IntArgs::IntArgs(const SharedArray<int>& x)
   : PrimArgArray<int>(x.size()) {
   for (int i=x.size(); i--;)
     a[i] = x[i];
 }