%PDF- %PDF-
| Direktori : /proc/thread-self/root/usr/lib/python3/dist-packages/pythran/pythonic/bisect/ |
| Current File : //proc/thread-self/root/usr/lib/python3/dist-packages/pythran/pythonic/bisect/bisect.hpp |
#ifndef PYTHONIC_BISECT_BISECT_HPP
#define PYTHONIC_BISECT_BISECT_HPP
#include "pythonic/include/bisect/bisect.hpp"
#include "pythonic/builtins/ValueError.hpp"
#include "pythonic/utils/functor.hpp"
#include <iterator>
PYTHONIC_NS_BEGIN
namespace bisect
{
template <class X, class A>
long bisect(X const &x, A const &a, long lo,
details::bisect_fun<X, A> const &fun)
{
if (lo < 0)
throw types::ValueError("lo must be non-negative");
return std::distance(x.begin(), fun(x.begin() + lo, x.end(), a));
}
template <class X, class A>
long bisect(X const &x, A const &a, long lo, long hi,
details::bisect_fun<X, A> const &fun)
{
if (lo < 0)
throw types::ValueError("lo must be non-negative");
return std::distance(x.begin(), fun(x.begin() + lo, x.begin() + hi, a));
}
}
PYTHONIC_NS_END
#endif