import ROOT
from ROOT.VecOps import RVec, Argsort, Take, Sort, Reverse
v1[0], v1[1], v1[2] = 6, 4, 5
v2 = sorted(v1)
print("Sort vector {}: {}".format(v1, v2))
print("Sort vector {}: {}".format(v1, v2))
print("Reverse vector {}: {}".format(v1, v2))
print("Indices that sort the vector {}: {}".format(v1, v2))
v3[0], v3[1], v3[2] = 9, 7, 8
print("Sort vector {} respective to the previously determined indices: {}".format(v3, v4))
print("Take the two first and last elements of vector {}: {}, {}".format(v1, v2, v3))
print("Sort the vector {}, take the two last elements and reverse the selection: {}".format(v1, v2))
ROOT::VecOps::RVec< T > RVec
RVec< T > Reverse(const RVec< T > &v)
Return copy of reversed vector.
RVec< T > Take(const RVec< T > &v, const RVec< typename RVec< T >::size_type > &i)
Return elements of a vector at given indices.
RVec< typename RVec< T >::size_type > Argsort(const RVec< T > &v)
Return an RVec of indices that sort the input RVec.
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)