MCPcopy Index your code
hub / github.com/PyVRP/PyVRP / PYBIND11_MODULE

Function PYBIND11_MODULE

pyvrp/cpp/search/bindings.cpp:42–616  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40using pyvrp::search::SwapTails;
41
42PYBIND11_MODULE(_search, m)
43{
44 py::class_<NodeOperator>(m, "NodeOperator");
45 py::class_<RouteOperator>(m, "RouteOperator");
46
47 py::class_<OperatorStatistics>(
48 m, "OperatorStatistics", DOC(pyvrp, search, OperatorStatistics))
49 .def_readonly("num_evaluations", &OperatorStatistics::numEvaluations)
50 .def_readonly("num_applications", &OperatorStatistics::numApplications);
51
52 py::class_<Exchange<1, 0>, NodeOperator>(
53 m, "Exchange10", DOC(pyvrp, search, Exchange))
54 .def(py::init<pyvrp::ProblemData const &>(),
55 py::arg("data"),
56 py::keep_alive<1, 2>()) // keep data alive
57 .def_property_readonly("statistics",
58 &Exchange<1, 0>::statistics,
59 py::return_value_policy::reference_internal)
60 .def("evaluate",
61 &Exchange<1, 0>::evaluate,
62 py::arg("U"),
63 py::arg("V"),
64 py::arg("cost_evaluator"))
65 .def("apply", &Exchange<1, 0>::apply, py::arg("U"), py::arg("V"))
66 .def_static("supports", &supports<Exchange<1, 0>>, py::arg("data"));
67
68 py::class_<Exchange<2, 0>, NodeOperator>(
69 m, "Exchange20", DOC(pyvrp, search, Exchange))
70 .def(py::init<pyvrp::ProblemData const &>(),
71 py::arg("data"),
72 py::keep_alive<1, 2>()) // keep data alive
73 .def_property_readonly("statistics",
74 &Exchange<2, 0>::statistics,
75 py::return_value_policy::reference_internal)
76 .def("evaluate",
77 &Exchange<2, 0>::evaluate,
78 py::arg("U"),
79 py::arg("V"),
80 py::arg("cost_evaluator"))
81 .def("apply", &Exchange<2, 0>::apply, py::arg("U"), py::arg("V"))
82 .def_static("supports", &supports<Exchange<2, 0>>, py::arg("data"));
83
84 py::class_<Exchange<3, 0>, NodeOperator>(
85 m, "Exchange30", DOC(pyvrp, search, Exchange))
86 .def(py::init<pyvrp::ProblemData const &>(),
87 py::arg("data"),
88 py::keep_alive<1, 2>()) // keep data alive
89 .def_property_readonly("statistics",
90 &Exchange<3, 0>::statistics,
91 py::return_value_policy::reference_internal)
92 .def("evaluate",
93 &Exchange<3, 0>::evaluate,
94 py::arg("U"),
95 py::arg("V"),
96 py::arg("cost_evaluator"))
97 .def("apply", &Exchange<3, 0>::apply, py::arg("U"), py::arg("V"))
98 .def_static("supports", &supports<Exchange<3, 0>>, py::arg("data"));
99

Callers

nothing calls this directly

Calls 14

PerturbationParamsClass · 0.85
PerturbationManagerClass · 0.85
atMethod · 0.80
betweenMethod · 0.80
afterMethod · 0.80
profileMethod · 0.80
beforeMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
distanceMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected