diff --git a/ortools/constraint_solver/docs/ROUTING.md b/ortools/constraint_solver/docs/ROUTING.md index 033c7ec9ce..f692090934 100644 --- a/ortools/constraint_solver/docs/ROUTING.md +++ b/ortools/constraint_solver/docs/ROUTING.md @@ -21,6 +21,7 @@ and .Net. Each language have different requirements for the code samples. ```cpp #include #include +#include #include #include "ortools/constraint_solver/routing.h" diff --git a/ortools/flatzinc/checker.cc b/ortools/flatzinc/checker.cc index ccec7b85a0..765add9fa0 100644 --- a/ortools/flatzinc/checker.cc +++ b/ortools/flatzinc/checker.cc @@ -15,6 +15,7 @@ #include #include +#include #include #include #include diff --git a/ortools/graph/README.md b/ortools/graph/README.md index aa07036e5a..174837fd01 100644 --- a/ortools/graph/README.md +++ b/ortools/graph/README.md @@ -4,62 +4,65 @@ This directory contains data structures and algorithms for graph and network flow problems. It contains in particular: -* a compact and efficient graph representation - ([EbertGraph](https://dl.acm.org/doi/abs/10.1145/214762.214769)), +* a compact and efficient graph representation, + [`EbertGraph`](https://dl.acm.org/doi/abs/10.1145/214762.214769), which is used for most of the algorithms herein, unless specified otherwise. -* well-tuned algorithms (for example shortest paths and - [Hamiltonian paths](https://en.wikipedia.org/wiki/Hamiltonian_path).) -* hard-to-find algorithms (Hamiltonian paths, push-relabel flow algorithms.) -* other, more common algorithm, that are useful to use with EbertGraph. +* well-tuned algorithms (for example shortest, paths and + [Hamiltonian paths](https://en.wikipedia.org/wiki/Hamiltonian_path)). +* hard-to-find algorithms (Hamiltonian paths, push-relabel flow algorithms). +* other, more common algorithm, that are useful to use with `EbertGraph`. Graph representations: -* [ebert_graph.h](./ebert_graph.h): Entry point for a directed graph class. - -* [digraph.h](./digraph.h): Entry point for a directed graph class. +* [ebert_graph.h](./ebert_graph.h): entry point for a directed graph class. +* [digraph.h](./digraph.h): entry point for a directed graph class. To be deprecated by `ebert_graph.h`. Paths: -* [shortestpaths.h](./shortestpaths.h): Entry point for shortest path computations. +* [shortestpaths.h](./shortestpaths.h): entry point for shortest paths. Includes [Dijkstra](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm) and - [Bellman-Ford](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm) algorithms. - -* [hamiltonian_path.h](./hamiltonian_path.h): Entry point for computing minimum + [Bellman-Ford](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm) + algorithms. These implementations are being deprecated. +* [hamiltonian_path.h](./hamiltonian_path.h): entry point for computing minimum [Hamiltonian paths](https://en.wikipedia.org/wiki/Hamiltonian_path) and cycles on directed graphs with costs on arcs, using a dynamic-programming - algorithm (Does not need `ebert_graph.h` or `digraph.h`.) + algorithm. (It does not need `ebert_graph.h` or `digraph.h`.) Graph decompositions: -* [connected_components.h](./connected_components.h): Entry point for computing connected - components in an undirected graph. (Does not need `ebert_graph.h` or `digraph.h`.) +* [connected_components.h](./connected_components.h): entry point for computing + connected components in an undirected graph. (It does not need `ebert_graph.h` + or `digraph.h`.) -* [strongly_connected_components.h](./strongly_connected_components.h): Entry point for - computing the strongly connected components of a directed graph, based on an algorithm of Tarjan. +* [strongly_connected_components.h](./strongly_connected_components.h): entry + point for computing the strongly connected components of a directed graph, + based on Tarjan's algorithm. -* [cliques.h](./cliques.h): Entry point for computing maximum cliques and clique covers in a directed graph, - based on the Bron-Kerbosch algorithm. (Does not need `ebert_graph.h` or `digraph.h`.) +* [cliques.h](./cliques.h): entry point for computing maximum cliques and + clique covers in a directed graph, based on the Bron-Kerbosch algorithm. + (It does not need `ebert_graph.h` or `digraph.h`.) Flow algorithms: -* [linear_assignment.h](./linear_assignment.h): Entry point for solving linear sum assignment problems - (classical assignment problems where the total cost is the sum of the costs - of each arc used) on directed graphs with arc costs, based on a push-relabel - algorithm of Goldberg and Kennedy. +* [linear_assignment.h](./linear_assignment.h): entry point for solving linear + sum assignment problems (classical assignment problems where the total cost is + the sum of the costs of each arc used) on directed graphs with arc costs, + based on the Goldberg-Kennedy push-relabel algorithm. -* [max_flow.h](./max_flow.h): Entry point for computing maximum flows on directed graphs with - arc capacities, based on a push-relabel algorithm of Goldberg and Tarjan. +* [max_flow.h](./max_flow.h): entry point for computing maximum flows on + directed graphs with arc capacities, based on the Goldberg-Tarjan + push-relabel algorithm. -* [min_cost_flow.h](./min_cost_flow.h): Entry point for computing minimum-cost flows on directed - graphs with arc capacities, arc costs, and supplies/demands at nodes, based on - a push-relabel algorithm of Goldberg and Tarjan. +* [min_cost_flow.h](./min_cost_flow.h): entry point for computing minimum-cost + flows on directed graphs with arc capacities, arc costs, and supplies/demands + at nodes, based on the Goldberg-Tarjan push-relabel algorithm. ## Wrappers -* [python](python): the SWIG code that makes the wrapper available in Python, +* [python](python): the SWIG code that makes the wrapper available in Python and its unit tests. -* [java](java): the SWIG code that makes the wrapper available in Java, +* [java](java): the SWIG code that makes the wrapper available in Java and its unit tests. -* [csharp](csharp): the SWIG code that makes the wrapper available in C#, +* [csharp](csharp): the SWIG code that makes the wrapper available in C# and its unit tests. ## Samples diff --git a/ortools/graph/min_cost_flow.cc b/ortools/graph/min_cost_flow.cc index 9ec3d56869..de9c960e5a 100644 --- a/ortools/graph/min_cost_flow.cc +++ b/ortools/graph/min_cost_flow.cc @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/ortools/graph/perfect_matching.cc b/ortools/graph/perfect_matching.cc index f1dd4d10a3..5f9bf246ca 100644 --- a/ortools/graph/perfect_matching.cc +++ b/ortools/graph/perfect_matching.cc @@ -15,6 +15,7 @@ #include #include +#include #include #include #include diff --git a/ortools/java/com/google/ortools/BUILD.bazel b/ortools/java/com/google/ortools/BUILD.bazel index 871cb8e936..ece1787556 100644 --- a/ortools/java/com/google/ortools/BUILD.bazel +++ b/ortools/java/com/google/ortools/BUILD.bazel @@ -14,11 +14,11 @@ # Utilities to load native libraries in java or-tools. cc_binary( name = "libjniortools.so", - target_compatible_with = select({ - "@platforms//os:linux": [], - "//conditions:default": ["@platforms//:incompatible"], - }), linkshared = True, + target_compatible_with = select({ + "@platforms//os:linux": [], + "//conditions:default": ["@platforms//:incompatible"], + }), visibility = ["//visibility:public"], deps = [ "//ortools/algorithms/java:knapsacksolver_cc", @@ -32,11 +32,11 @@ cc_binary( cc_binary( name = "libjniortools.dylib", - target_compatible_with = select({ - "@platforms//os:osx": [], - "//conditions:default": ["@platforms//:incompatible"], - }), linkshared = True, + target_compatible_with = select({ + "@platforms//os:osx": [], + "//conditions:default": ["@platforms//:incompatible"], + }), visibility = ["//visibility:public"], deps = [ "//ortools/algorithms/java:knapsacksolver_cc", @@ -50,11 +50,11 @@ cc_binary( cc_binary( name = "jniortools.dll", - target_compatible_with = select({ - "@platforms//os:windows": [], - "//conditions:default": ["@platforms//:incompatible"], - }), linkshared = True, + target_compatible_with = select({ + "@platforms//os:windows": [], + "//conditions:default": ["@platforms//:incompatible"], + }), visibility = ["//visibility:public"], deps = [ "//ortools/algorithms/java:knapsacksolver_cc", @@ -71,9 +71,9 @@ java_library( srcs = ["Loader.java"], visibility = ["//visibility:public"], runtime_deps = select({ - "@platforms//os:linux": ["//ortools/java/com/google/ortools:libjniortools.so"], - "@platforms//os:osx": ["//ortools/java/com/google/ortools:libjniortools.dylib"], - "@platforms//os:windows": ["//ortools/java/com/google/ortools:jniortools.dll"], + "@platforms//os:linux": ["//ortools/java/com/google/ortools:libjniortools.so"], + "@platforms//os:osx": ["//ortools/java/com/google/ortools:libjniortools.dylib"], + "@platforms//os:windows": ["//ortools/java/com/google/ortools:jniortools.dll"], }), deps = [ "@maven//:net_java_dev_jna_jna", diff --git a/ortools/java/com/google/ortools/Loader.java b/ortools/java/com/google/ortools/Loader.java index 8e3cd089e2..ca8f38902f 100644 --- a/ortools/java/com/google/ortools/Loader.java +++ b/ortools/java/com/google/ortools/Loader.java @@ -105,8 +105,8 @@ public class Loader { if (!loaded) { try { // prints the name of the Operating System - //System.out.println("OS: " + System.getProperty("os.name")); - //System.out.println("Library: " + System.mapLibraryName("jniortools")); + // System.out.println("OS: " + System.getProperty("os.name")); + // System.out.println("Library: " + System.mapLibraryName("jniortools")); System.loadLibrary("jniortools"); loaded = true;