30 template<
class ListType>
38 ListType newLst(lst.size());
44 newLst[elemI] = oldToNew[lst[elemI]];
52 template<
class ListType>
63 lst[elemI] = oldToNew[lst[elemI]];
69 template<
class ListType>
77 ListType newLst(lst.size());
81 if (oldToNew[elemI] >= 0)
83 newLst[oldToNew[elemI]] = lst[elemI];
87 newLst[elemI] = lst[elemI];
94 template<
class ListType>
102 ListType newLst(lst.size());
106 if (oldToNew[elemI] >= 0)
108 newLst[oldToNew[elemI]] = lst[elemI];
112 newLst[elemI] = lst[elemI];
116 lst.transfer(newLst);
120 template<
class Container>
129 typename Container::iterator iter = lst.begin();
136 iter() = oldToNew[iter()];
142 template<
class Container>
149 Container newLst(lst.size());
153 typename Container::iterator iter = lst.begin();
160 newLst.insert(oldToNew[iter.key()], iter());
164 lst.transfer(newLst);
176 if (order.size() != lst.size())
180 order.setSize(lst.size());
185 order[elemI] = elemI;
207 for (label i = 0; i < order.size() - 1; ++i)
209 if (lst[order[i]] == lst[order[i+1]])
211 order[n++] = order[i];
227 if (order.size() > 1)
230 for (label i = 0; i < order.size() - 1; ++i)
232 if (lst[order[i]] != lst[order[i+1]])
234 order[n++] = order[i];
242 template<
class T,
class ListType>
251 if (select.
size() < lst.size())
253 FatalErrorIn(
"subset(const UList<T>&, const T&, const ListType&)")
254 <<
"select is of size " << select.
size()
255 <<
"; but it must index a list of size " << lst.size()
259 ListType newLst(lst.size());
264 if (select[elemI] == value)
266 newLst[nElem++] = lst[elemI];
269 newLst.setSize(nElem);
275 template<
class T,
class ListType>
284 if (select.
size() < lst.size())
286 FatalErrorIn(
"inplaceSubset(const UList<T>&, const T&, ListType&)")
287 <<
"select is of size " << select.
size()
288 <<
"; but it must index a list of size " << lst.size()
295 if (select[elemI] == value)
299 lst[nElem] = lst[elemI];
309 template<
class BoolListType,
class ListType>
312 const BoolListType& select,
319 ListType newLst(lst.size());
326 newLst[nElem++] = lst[elemI];
329 newLst.setSize(nElem);
335 template<
class BoolListType,
class ListType>
338 const BoolListType& select,
352 lst[nElem] = lst[elemI];
364 template<
class InList,
class OutList>
375 forAll(pointEdges, pointI)
377 const InList& pEdges = pointEdges[pointI];
381 nPointsPerEdge[pEdges[j]]++;
388 forAll(nPointsPerEdge, edgeI)
390 edges[edgeI].
setSize(nPointsPerEdge[edgeI]);
395 forAll(pointEdges, pointI)
397 const InList& pEdges = pointEdges[pointI];
401 label edgeI = pEdges[j];
403 edges[edgeI][nPointsPerEdge[edgeI]++] = pointI;
409 template<
class ListType>
413 typename ListType::const_reference t,
419 for (label i = start; i < l.size(); i++)
432 template<
class ListType>
436 typename ListType::const_reference t,
443 for (label i = start; i < l.size(); i++)
455 for (label i = start; i < l.size(); i++)
467 template<
class ListType>
472 typename ListType::const_reference t
482 template<
class ListType>
486 const typename ListType::const_reference initValue,
488 typename ListType::const_reference setValue
491 ListType l(sz, initValue);
497 template<
class ListType>
500 if (start >= l.size())
507 for (label i = start+1; i < l.size(); i++)
519 template<
class ListType>
522 if (start >= l.size())
529 for (label i = start+1; i < l.size(); i++)
541 template<
class ListType>
545 typename ListType::const_reference t,
549 if (start >= l.size())
555 label high = l.size() - 1;
559 label mid = (low + high)/2;
579 template<
class ListType>
583 typename ListType::const_reference t,
587 if (start >= l.size())
593 label high = l.size() - 1;
595 while ((high - low) > 1)
597 label mid = (low + high)/2;
627 template<
class Container,
class T,
int nRows>
634 lst[rowI] = Container(elems[rowI]);
640 template<
class Container,
class T,
int nRows,
int nColumns>
645 Container cols(nColumns);
650 cols[colI] = elems[rowI][colI];