MCPcopy Create free account
hub / github.com/Gecode/gecode / isDistinct

Function isDistinct

gecode/int/gcc/post.hpp:137–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

135 */
136 template<class Card>
137 inline bool
138 isDistinct(ViewArray<IntView>& x, ViewArray<Card>& k) {
139 if (Card::propagate) {
140 Region r;
141 ViewRanges<IntView>* xrange = r.alloc<ViewRanges<IntView> >(x.size());
142 for (int i = x.size(); i--; ){
143 ViewRanges<IntView> iter(x[i]);
144 xrange[i] = iter;
145 }
146 Iter::Ranges::NaryUnion drl(r, &xrange[0], x.size());
147 if (static_cast<unsigned int>(k.size()) == Iter::Ranges::size(drl)) {
148 for (int i=k.size(); i--;)
149 if (k[i].min() != 1 || k[i].max() != 1)
150 return false;
151 return true;
152 } else {
153 return false;
154 }
155 } else {
156 for (int i=k.size(); i--;)
157 if (k[i].min() != 0 || k[i].max() != 1)
158 return false;
159 return true;
160 }
161 }
162
163}}}
164

Callers

nothing calls this directly

Calls 4

sizeFunction · 0.50
sizeMethod · 0.45
minMethod · 0.45
maxMethod · 0.45

Tested by

no test coverage detected