string cv__str__(const cv& v) { ostringstream sout; for (long i = 0; i < v.size(); ++i) { sout << v(i); if (i+1 < v.size()) sout << "\n"; } return sout.str(); }
double cv__getitem__(cv& m, long r) { if (r < 0) { r = m.size() + r; // negative index } if (r > m.size()-1 || r < 0) { PyErr_SetString( PyExc_IndexError, "index out of range" ); boost::python::throw_error_already_set(); } return m(r); }
void cv__setitem__(cv& c, long p, double val) { if (p < 0) { p = c.size() + p; // negative index } if (p > c.size()-1) { PyErr_SetString( PyExc_IndexError, "index out of range" ); boost::python::throw_error_already_set(); } c(p) = val; }
string cv__repr__ (const cv& v) { std::ostringstream sout; sout << "dlib.vector(["; for (long i = 0; i < v.size(); ++i) { sout << v(i); if (i+1 < v.size()) sout << ", "; } sout << "])"; return sout.str(); }
cv cv__getitem2__(cv& m, py::slice r) { size_t start, stop, step, slicelength; if (!r.compute(m.size(), &start, &stop, &step, &slicelength)) throw py::error_already_set(); cv temp(slicelength); for (size_t i = 0; i < slicelength; ++i) { temp(i) = m(start); start += step; } return temp; }
long cv__len__(cv& c) { return c.size(); }