Commit 8da213cc authored by Davis King's avatar Davis King

Made len() work on dlib.range objects.

parent 10caab26
...@@ -140,6 +140,14 @@ string sparse_vector__repr__ (const std::vector<std::pair<unsigned long,double> ...@@ -140,6 +140,14 @@ string sparse_vector__repr__ (const std::vector<std::pair<unsigned long,double>
return sout.str(); return sout.str();
} }
unsigned long range_len(const std::pair<unsigned long, unsigned long>& r)
{
if (r.second > r.first)
return r.second-r.first;
else
return 0;
}
template <typename T> template <typename T>
void resize(T& v, unsigned long n) { v.resize(n); } void resize(T& v, unsigned long n) { v.resize(n); }
...@@ -174,11 +182,12 @@ void bind_basic_types() ...@@ -174,11 +182,12 @@ void bind_basic_types()
typedef pair<unsigned long,unsigned long> range_type; typedef pair<unsigned long,unsigned long> range_type;
class_<range_type>("range", "This object is used to represent a range of elements in an array.", init<>() ) class_<range_type>("range", "This object is used to represent a range of elements in an array.", init<>() )
.def(init<unsigned long,unsigned long>()) .def(init<unsigned long,unsigned long>())
.def_readwrite("begin",&range_type::first, "The index of the first element in the range.") .def_readwrite("begin",&range_type::first, "The index of the first element in the range. This is represented using an unsigned integer.")
.def_readwrite("end",&range_type::second, "One past the index of the last element in the range.") .def_readwrite("end",&range_type::second, "One past the index of the last element in the range. This is represented using an unsigned integer.")
.def("__str__", range__str__) .def("__str__", range__str__)
.def("__repr__", range__repr__) .def("__repr__", range__repr__)
.def("__iter__", &make_range_iterator) .def("__iter__", &make_range_iterator)
.def("__len__", &range_len)
.def_pickle(serialize_pickle<range_type>()); .def_pickle(serialize_pickle<range_type>());
class_<range_iter>("_range_iter") class_<range_iter>("_range_iter")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment