Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
binary_search.h File Reference
#include <cmath>
#include <cstdint>
#include <functional>
#include <utility>
#include "absl/functional/function_ref.h"
#include "absl/log/check.h"
#include "absl/numeric/int128.h"
#include "absl/types/span.h"
#include "ortools/base/logging.h"

Go to the source code of this file.

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.
 
namespace  operations_research::internal
 End of the interface. Below is the implementation.
 

Functions

template<class Point >
Point operations_research::BinarySearch (Point x_true, Point x_false, std::function< bool(Point)> f)
 
template<class Point >
Point operations_research::BinarySearchMidpoint (Point x, Point y)
 
template<class Point , class Value >
std::pair< Point, Value > operations_research::ConvexMinimum (absl::Span< const Point > sorted_points, std::function< Value(Point)> f)
 
template<class Point , class Value >
std::pair< Point, Value > operations_research::ConvexMinimum (bool is_to_the_right, std::pair< Point, Value > current_min, absl::Span< const Point > sorted_points, std::function< Value(Point)> f)
 
template<class Point , class Value >
std::pair< Point, Value > operations_research::RangeConvexMinimum (Point begin, Point end, absl::FunctionRef< Value(Point)> f)
 Searches in the range [begin, end), where Point supports basic arithmetic.
 
template<class Point , class Value >
std::pair< Point, Value > operations_research::RangeConvexMinimum (std::pair< Point, Value > current_min, Point begin, Point end, absl::FunctionRef< Value(Point)> f)
 
template<class T >
bool operations_research::internal::IsNanGeneric (const T &)
 
template<>
bool operations_research::internal::IsNanGeneric (const float &x)
 
template<>
bool operations_research::internal::IsNanGeneric (const double &x)
 
template<>
bool operations_research::internal::IsNanGeneric (const long double &x)
 
template<typename T >
bool operations_research::internal::AreNumbersOfSameSign (const T &x, const T &y)
 
template<typename IntT >
constexpr bool operations_research::internal::UsesTwosComplement ()