diff --git a/.api/index.html b/.api/index.html new file mode 100644 index 00000000..c9863a85 --- /dev/null +++ b/.api/index.html @@ -0,0 +1,172 @@ + + + + + + + API — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/index.html b/.api/optimizers/index.html new file mode 100644 index 00000000..cef03bd8 --- /dev/null +++ b/.api/optimizers/index.html @@ -0,0 +1,180 @@ + + + + + + + Optimizers — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.html new file mode 100644 index 00000000..282aef92 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.html @@ -0,0 +1,463 @@ + + + + + + + Robust::ColumnAndConstraintGeneration — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/index.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/index.html new file mode 100644 index 00000000..c6a0b9fc --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/index.html @@ -0,0 +1,246 @@ + + + + + + + Column-and-Constraint Generation — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.html new file mode 100644 index 00000000..11d0b662 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.html @@ -0,0 +1,138 @@ + + + + + + + Bilevel — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.html new file mode 100644 index 00000000..f9d191a2 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.html @@ -0,0 +1,153 @@ + + + + + + + Dualize — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.html new file mode 100644 index 00000000..d65a0555 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.html @@ -0,0 +1,132 @@ + + + + + + + Separation and Separators — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.html new file mode 100644 index 00000000..269ad654 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.html @@ -0,0 +1,186 @@ + + + + + + + Robust::CCGStabilizers::NoStabilization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.html new file mode 100644 index 00000000..7323f960 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.html @@ -0,0 +1,132 @@ + + + + + + + Stabilization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.html new file mode 100644 index 00000000..71f88747 --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.html @@ -0,0 +1,211 @@ + + + + + + + Robust::CCGStabilizers::TrustRegion — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.html b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.html new file mode 100644 index 00000000..8de2170f --- /dev/null +++ b/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.html @@ -0,0 +1,186 @@ + + + + + + + Trust Region Stabilization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/optimizers/robust-optimization/index.html b/.api/optimizers/robust-optimization/index.html new file mode 100644 index 00000000..a2734aa5 --- /dev/null +++ b/.api/optimizers/robust-optimization/index.html @@ -0,0 +1,129 @@ + + + + + + + Robust Optimization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/problems/ProblemsFLP.html b/.api/problems/ProblemsFLP.html new file mode 100644 index 00000000..541ea9c0 --- /dev/null +++ b/.api/problems/ProblemsFLP.html @@ -0,0 +1,217 @@ + + + + + + + Facility Location Problem (FLP) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/problems/ProblemsGAP.html b/.api/problems/ProblemsGAP.html new file mode 100644 index 00000000..785c4d08 --- /dev/null +++ b/.api/problems/ProblemsGAP.html @@ -0,0 +1,224 @@ + + + + + + + Generalized Assignment Problem (GAP) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/problems/ProblemsKP.html b/.api/problems/ProblemsKP.html new file mode 100644 index 00000000..02d82211 --- /dev/null +++ b/.api/problems/ProblemsKP.html @@ -0,0 +1,211 @@ + + + + + + + Knapsack Problem (KP) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/problems/ProblemsMKP.html b/.api/problems/ProblemsMKP.html new file mode 100644 index 00000000..1a6640fb --- /dev/null +++ b/.api/problems/ProblemsMKP.html @@ -0,0 +1,229 @@ + + + + + + + Multiple Knapsack Problem (MKP) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/problems/ProblemsSRP.html b/.api/problems/ProblemsSRP.html new file mode 100644 index 00000000..3ddd6ee2 --- /dev/null +++ b/.api/problems/ProblemsSRP.html @@ -0,0 +1,284 @@ + + + + + + + Staff Rostering Problem (SRP) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/problems/index.html b/.api/problems/index.html new file mode 100644 index 00000000..3834b66b --- /dev/null +++ b/.api/problems/index.html @@ -0,0 +1,129 @@ + + + + + + + Problems — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.api/tolerances.html b/.api/tolerances.html new file mode 100644 index 00000000..748af2b7 --- /dev/null +++ b/.api/tolerances.html @@ -0,0 +1,256 @@ + + + + + + + Tolerances and Numerics — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..26701add --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 2a30b1f3797558244d03e1b750588e0b +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/.api/index.doctree b/.doctrees/.api/index.doctree new file mode 100644 index 00000000..066f1580 Binary files /dev/null and b/.doctrees/.api/index.doctree differ diff --git a/.doctrees/.api/optimizers/index.doctree b/.doctrees/.api/optimizers/index.doctree new file mode 100644 index 00000000..d09bcf64 Binary files /dev/null and b/.doctrees/.api/optimizers/index.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.doctree new file mode 100644 index 00000000..a949efe5 Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/index.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/index.doctree new file mode 100644 index 00000000..46cec66d Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/index.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.doctree new file mode 100644 index 00000000..07b26f38 Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.doctree new file mode 100644 index 00000000..afd97d1c Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.doctree new file mode 100644 index 00000000..41c3018f Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.doctree new file mode 100644 index 00000000..7cd81772 Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.doctree new file mode 100644 index 00000000..f08a2751 Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.doctree new file mode 100644 index 00000000..65749317 Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.doctree b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.doctree new file mode 100644 index 00000000..bde583bd Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.doctree differ diff --git a/.doctrees/.api/optimizers/robust-optimization/index.doctree b/.doctrees/.api/optimizers/robust-optimization/index.doctree new file mode 100644 index 00000000..3ce8f76c Binary files /dev/null and b/.doctrees/.api/optimizers/robust-optimization/index.doctree differ diff --git a/.doctrees/.api/problems/ProblemsFLP.doctree b/.doctrees/.api/problems/ProblemsFLP.doctree new file mode 100644 index 00000000..9a5d49b2 Binary files /dev/null and b/.doctrees/.api/problems/ProblemsFLP.doctree differ diff --git a/.doctrees/.api/problems/ProblemsGAP.doctree b/.doctrees/.api/problems/ProblemsGAP.doctree new file mode 100644 index 00000000..df9d9edc Binary files /dev/null and b/.doctrees/.api/problems/ProblemsGAP.doctree differ diff --git a/.doctrees/.api/problems/ProblemsKP.doctree b/.doctrees/.api/problems/ProblemsKP.doctree new file mode 100644 index 00000000..f61e54ad Binary files /dev/null and b/.doctrees/.api/problems/ProblemsKP.doctree differ diff --git a/.doctrees/.api/problems/ProblemsMKP.doctree b/.doctrees/.api/problems/ProblemsMKP.doctree new file mode 100644 index 00000000..56daa063 Binary files /dev/null and b/.doctrees/.api/problems/ProblemsMKP.doctree differ diff --git a/.doctrees/.api/problems/ProblemsSRP.doctree b/.doctrees/.api/problems/ProblemsSRP.doctree new file mode 100644 index 00000000..52dd9826 Binary files /dev/null and b/.doctrees/.api/problems/ProblemsSRP.doctree differ diff --git a/.doctrees/.api/problems/index.doctree b/.doctrees/.api/problems/index.doctree new file mode 100644 index 00000000..48d7a211 Binary files /dev/null and b/.doctrees/.api/problems/index.doctree differ diff --git a/.doctrees/.api/tolerances.doctree b/.doctrees/.api/tolerances.doctree new file mode 100644 index 00000000..9abf4e29 Binary files /dev/null and b/.doctrees/.api/tolerances.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/BranchAndBound.doctree b/.doctrees/api/classes/branch-and-bound/BranchAndBound.doctree new file mode 100644 index 00000000..86fa7773 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/BranchAndBound.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/BranchAndBoundCallback.doctree b/.doctrees/api/classes/branch-and-bound/BranchAndBoundCallback.doctree new file mode 100644 index 00000000..b792df20 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/BranchAndBoundCallback.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.doctree b/.doctrees/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.doctree new file mode 100644 index 00000000..acc90894 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/cuts/KnapsackCover.doctree b/.doctrees/api/classes/branch-and-bound/cuts/KnapsackCover.doctree new file mode 100644 index 00000000..5a87ad32 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/cuts/KnapsackCover.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/cuts/index.doctree b/.doctrees/api/classes/branch-and-bound/cuts/index.doctree new file mode 100644 index 00000000..1870de9d Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/cuts/index.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/heuristics/LocalBranching.doctree b/.doctrees/api/classes/branch-and-bound/heuristics/LocalBranching.doctree new file mode 100644 index 00000000..d0755358 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/heuristics/LocalBranching.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/heuristics/RENS.doctree b/.doctrees/api/classes/branch-and-bound/heuristics/RENS.doctree new file mode 100644 index 00000000..d2cdb39f Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/heuristics/RENS.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/heuristics/SimpleRounding.doctree b/.doctrees/api/classes/branch-and-bound/heuristics/SimpleRounding.doctree new file mode 100644 index 00000000..0cb5b1b4 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/heuristics/SimpleRounding.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/heuristics/index.doctree b/.doctrees/api/classes/branch-and-bound/heuristics/index.doctree new file mode 100644 index 00000000..2ae5fd6c Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/heuristics/index.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/index.doctree b/.doctrees/api/classes/branch-and-bound/index.doctree new file mode 100644 index 00000000..9a33257b Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/index.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/node-selection/BestBound.doctree b/.doctrees/api/classes/branch-and-bound/node-selection/BestBound.doctree new file mode 100644 index 00000000..db0c2259 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/node-selection/BestBound.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/node-selection/BestEstimate.doctree b/.doctrees/api/classes/branch-and-bound/node-selection/BestEstimate.doctree new file mode 100644 index 00000000..6d7d6e5e Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/node-selection/BestEstimate.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/node-selection/BreadthFirst.doctree b/.doctrees/api/classes/branch-and-bound/node-selection/BreadthFirst.doctree new file mode 100644 index 00000000..93c9bcf9 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/node-selection/BreadthFirst.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/node-selection/DepthFirst.doctree b/.doctrees/api/classes/branch-and-bound/node-selection/DepthFirst.doctree new file mode 100644 index 00000000..45d66c8e Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/node-selection/DepthFirst.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/node-selection/WorstBound.doctree b/.doctrees/api/classes/branch-and-bound/node-selection/WorstBound.doctree new file mode 100644 index 00000000..53487c87 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/node-selection/WorstBound.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/node-selection/index.doctree b/.doctrees/api/classes/branch-and-bound/node-selection/index.doctree new file mode 100644 index 00000000..c69e4388 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/node-selection/index.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.doctree new file mode 100644 index 00000000..0ffa9037 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/LeastInfeasible.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/LeastInfeasible.doctree new file mode 100644 index 00000000..ce26fc12 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/LeastInfeasible.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/LocalBranching.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/LocalBranching.doctree new file mode 100644 index 00000000..c2045672 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/LocalBranching.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/MostInfeasible.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/MostInfeasible.doctree new file mode 100644 index 00000000..b1bc06ab Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/MostInfeasible.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/PseudoCost.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/PseudoCost.doctree new file mode 100644 index 00000000..6e13b1dc Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/PseudoCost.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/StrongBranching.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/StrongBranching.doctree new file mode 100644 index 00000000..74a355d7 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/StrongBranching.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/UniformlyRandom.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/UniformlyRandom.doctree new file mode 100644 index 00000000..614c3431 Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/UniformlyRandom.doctree differ diff --git a/.doctrees/api/classes/branch-and-bound/variable-selection/index.doctree b/.doctrees/api/classes/branch-and-bound/variable-selection/index.doctree new file mode 100644 index 00000000..373dad5e Binary files /dev/null and b/.doctrees/api/classes/branch-and-bound/variable-selection/index.doctree differ diff --git a/.doctrees/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.doctree b/.doctrees/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.doctree new file mode 100644 index 00000000..7c8a04df Binary files /dev/null and b/.doctrees/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.doctree differ diff --git a/.doctrees/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.doctree b/.doctrees/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.doctree new file mode 100644 index 00000000..3314ca0f Binary files /dev/null and b/.doctrees/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.doctree differ diff --git a/.doctrees/api/classes/column-and-constraint-generation/index.doctree b/.doctrees/api/classes/column-and-constraint-generation/index.doctree new file mode 100644 index 00000000..47b15b6c Binary files /dev/null and b/.doctrees/api/classes/column-and-constraint-generation/index.doctree differ diff --git a/.doctrees/api/classes/column-generation/ArtificialCosts.doctree b/.doctrees/api/classes/column-generation/ArtificialCosts.doctree new file mode 100644 index 00000000..68c09688 Binary files /dev/null and b/.doctrees/api/classes/column-generation/ArtificialCosts.doctree differ diff --git a/.doctrees/api/classes/column-generation/DantzigWolfeDecomposition.doctree b/.doctrees/api/classes/column-generation/DantzigWolfeDecomposition.doctree new file mode 100644 index 00000000..5e5f84f0 Binary files /dev/null and b/.doctrees/api/classes/column-generation/DantzigWolfeDecomposition.doctree differ diff --git a/.doctrees/api/classes/column-generation/FarkasPricing.doctree b/.doctrees/api/classes/column-generation/FarkasPricing.doctree new file mode 100644 index 00000000..6f2044b3 Binary files /dev/null and b/.doctrees/api/classes/column-generation/FarkasPricing.doctree differ diff --git a/.doctrees/api/classes/column-generation/IntegerMaster.doctree b/.doctrees/api/classes/column-generation/IntegerMaster.doctree new file mode 100644 index 00000000..74b1309a Binary files /dev/null and b/.doctrees/api/classes/column-generation/IntegerMaster.doctree differ diff --git a/.doctrees/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.doctree b/.doctrees/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.doctree new file mode 100644 index 00000000..969c3bea Binary files /dev/null and b/.doctrees/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.doctree differ diff --git a/.doctrees/api/classes/column-generation/index.doctree b/.doctrees/api/classes/column-generation/index.doctree new file mode 100644 index 00000000..6309ca2e Binary files /dev/null and b/.doctrees/api/classes/column-generation/index.doctree differ diff --git a/.doctrees/api/classes/column-generation/stabilization/Neame.doctree b/.doctrees/api/classes/column-generation/stabilization/Neame.doctree new file mode 100644 index 00000000..cae115a9 Binary files /dev/null and b/.doctrees/api/classes/column-generation/stabilization/Neame.doctree differ diff --git a/.doctrees/api/classes/column-generation/stabilization/Wentges.doctree b/.doctrees/api/classes/column-generation/stabilization/Wentges.doctree new file mode 100644 index 00000000..5394fa2f Binary files /dev/null and b/.doctrees/api/classes/column-generation/stabilization/Wentges.doctree differ diff --git a/.doctrees/api/classes/column-generation/stabilization/index.doctree b/.doctrees/api/classes/column-generation/stabilization/index.doctree new file mode 100644 index 00000000..b7743090 Binary files /dev/null and b/.doctrees/api/classes/column-generation/stabilization/index.doctree differ diff --git a/.doctrees/api/classes/common/Annotation.doctree b/.doctrees/api/classes/common/Annotation.doctree new file mode 100644 index 00000000..b141aca2 Binary files /dev/null and b/.doctrees/api/classes/common/Annotation.doctree differ diff --git a/.doctrees/api/classes/common/Column.doctree b/.doctrees/api/classes/common/Column.doctree new file mode 100644 index 00000000..64fc1898 Binary files /dev/null and b/.doctrees/api/classes/common/Column.doctree differ diff --git a/.doctrees/api/classes/common/Constant.doctree b/.doctrees/api/classes/common/Constant.doctree new file mode 100644 index 00000000..1f4d79dd Binary files /dev/null and b/.doctrees/api/classes/common/Constant.doctree differ diff --git a/.doctrees/api/classes/common/Ctr.doctree b/.doctrees/api/classes/common/Ctr.doctree new file mode 100644 index 00000000..ba57fd41 Binary files /dev/null and b/.doctrees/api/classes/common/Ctr.doctree differ diff --git a/.doctrees/api/classes/common/CtrType.doctree b/.doctrees/api/classes/common/CtrType.doctree new file mode 100644 index 00000000..3dc8d079 Binary files /dev/null and b/.doctrees/api/classes/common/CtrType.doctree differ diff --git a/.doctrees/api/classes/common/Env.doctree b/.doctrees/api/classes/common/Env.doctree new file mode 100644 index 00000000..77897328 Binary files /dev/null and b/.doctrees/api/classes/common/Env.doctree differ diff --git a/.doctrees/api/classes/common/Expr.doctree b/.doctrees/api/classes/common/Expr.doctree new file mode 100644 index 00000000..521449c9 Binary files /dev/null and b/.doctrees/api/classes/common/Expr.doctree differ diff --git a/.doctrees/api/classes/common/LinExpr.doctree b/.doctrees/api/classes/common/LinExpr.doctree new file mode 100644 index 00000000..427af47c Binary files /dev/null and b/.doctrees/api/classes/common/LinExpr.doctree differ diff --git a/.doctrees/api/classes/common/Model.doctree b/.doctrees/api/classes/common/Model.doctree new file mode 100644 index 00000000..1eb4ae4f Binary files /dev/null and b/.doctrees/api/classes/common/Model.doctree differ diff --git a/.doctrees/api/classes/common/Param.doctree b/.doctrees/api/classes/common/Param.doctree new file mode 100644 index 00000000..814d3a86 Binary files /dev/null and b/.doctrees/api/classes/common/Param.doctree differ diff --git a/.doctrees/api/classes/common/QuadExpr.doctree b/.doctrees/api/classes/common/QuadExpr.doctree new file mode 100644 index 00000000..4285cdc5 Binary files /dev/null and b/.doctrees/api/classes/common/QuadExpr.doctree differ diff --git a/.doctrees/api/classes/common/Row.doctree b/.doctrees/api/classes/common/Row.doctree new file mode 100644 index 00000000..0a42810c Binary files /dev/null and b/.doctrees/api/classes/common/Row.doctree differ diff --git a/.doctrees/api/classes/common/SolutionDual.doctree b/.doctrees/api/classes/common/SolutionDual.doctree new file mode 100644 index 00000000..0b55a674 Binary files /dev/null and b/.doctrees/api/classes/common/SolutionDual.doctree differ diff --git a/.doctrees/api/classes/common/SolutionPrimal.doctree b/.doctrees/api/classes/common/SolutionPrimal.doctree new file mode 100644 index 00000000..a8c398c5 Binary files /dev/null and b/.doctrees/api/classes/common/SolutionPrimal.doctree differ diff --git a/.doctrees/api/classes/common/TempCtr.doctree b/.doctrees/api/classes/common/TempCtr.doctree new file mode 100644 index 00000000..46db3224 Binary files /dev/null and b/.doctrees/api/classes/common/TempCtr.doctree differ diff --git a/.doctrees/api/classes/common/TempVar.doctree b/.doctrees/api/classes/common/TempVar.doctree new file mode 100644 index 00000000..4c7376b8 Binary files /dev/null and b/.doctrees/api/classes/common/TempVar.doctree differ diff --git a/.doctrees/api/classes/common/Var.doctree b/.doctrees/api/classes/common/Var.doctree new file mode 100644 index 00000000..69d2d8b0 Binary files /dev/null and b/.doctrees/api/classes/common/Var.doctree differ diff --git a/.doctrees/api/classes/common/VarType.doctree b/.doctrees/api/classes/common/VarType.doctree new file mode 100644 index 00000000..fb6b879b Binary files /dev/null and b/.doctrees/api/classes/common/VarType.doctree differ diff --git a/.doctrees/api/classes/common/index.doctree b/.doctrees/api/classes/common/index.doctree new file mode 100644 index 00000000..f2ab4549 Binary files /dev/null and b/.doctrees/api/classes/common/index.doctree differ diff --git a/.doctrees/api/classes/external-bilevel/MibS.doctree b/.doctrees/api/classes/external-bilevel/MibS.doctree new file mode 100644 index 00000000..4a16a8dd Binary files /dev/null and b/.doctrees/api/classes/external-bilevel/MibS.doctree differ diff --git a/.doctrees/api/classes/external-bilevel/Optimizers_MibS.doctree b/.doctrees/api/classes/external-bilevel/Optimizers_MibS.doctree new file mode 100644 index 00000000..c3dfac1c Binary files /dev/null and b/.doctrees/api/classes/external-bilevel/Optimizers_MibS.doctree differ diff --git a/.doctrees/api/classes/external-bilevel/index.doctree b/.doctrees/api/classes/external-bilevel/index.doctree new file mode 100644 index 00000000..7b4c2188 Binary files /dev/null and b/.doctrees/api/classes/external-bilevel/index.doctree differ diff --git a/.doctrees/api/classes/external-mip/GLPK.doctree b/.doctrees/api/classes/external-mip/GLPK.doctree new file mode 100644 index 00000000..edb65898 Binary files /dev/null and b/.doctrees/api/classes/external-mip/GLPK.doctree differ diff --git a/.doctrees/api/classes/external-mip/Gurobi.doctree b/.doctrees/api/classes/external-mip/Gurobi.doctree new file mode 100644 index 00000000..5d470c5d Binary files /dev/null and b/.doctrees/api/classes/external-mip/Gurobi.doctree differ diff --git a/.doctrees/api/classes/external-mip/HiGHS.doctree b/.doctrees/api/classes/external-mip/HiGHS.doctree new file mode 100644 index 00000000..ca09283b Binary files /dev/null and b/.doctrees/api/classes/external-mip/HiGHS.doctree differ diff --git a/.doctrees/api/classes/external-mip/Mosek.doctree b/.doctrees/api/classes/external-mip/Mosek.doctree new file mode 100644 index 00000000..a64b23b3 Binary files /dev/null and b/.doctrees/api/classes/external-mip/Mosek.doctree differ diff --git a/.doctrees/api/classes/external-mip/Optimizers_GLPK.doctree b/.doctrees/api/classes/external-mip/Optimizers_GLPK.doctree new file mode 100644 index 00000000..e546d9e4 Binary files /dev/null and b/.doctrees/api/classes/external-mip/Optimizers_GLPK.doctree differ diff --git a/.doctrees/api/classes/external-mip/Optimizers_Gurobi.doctree b/.doctrees/api/classes/external-mip/Optimizers_Gurobi.doctree new file mode 100644 index 00000000..35d593ea Binary files /dev/null and b/.doctrees/api/classes/external-mip/Optimizers_Gurobi.doctree differ diff --git a/.doctrees/api/classes/external-mip/Optimizers_HiGHS.doctree b/.doctrees/api/classes/external-mip/Optimizers_HiGHS.doctree new file mode 100644 index 00000000..08c9f1ee Binary files /dev/null and b/.doctrees/api/classes/external-mip/Optimizers_HiGHS.doctree differ diff --git a/.doctrees/api/classes/external-mip/Optimizers_Mosek.doctree b/.doctrees/api/classes/external-mip/Optimizers_Mosek.doctree new file mode 100644 index 00000000..aaa3ceb1 Binary files /dev/null and b/.doctrees/api/classes/external-mip/Optimizers_Mosek.doctree differ diff --git a/.doctrees/api/classes/external-mip/Osi/OsiCbc.doctree b/.doctrees/api/classes/external-mip/Osi/OsiCbc.doctree new file mode 100644 index 00000000..fa9b1850 Binary files /dev/null and b/.doctrees/api/classes/external-mip/Osi/OsiCbc.doctree differ diff --git a/.doctrees/api/classes/external-mip/Osi/OsiClp.doctree b/.doctrees/api/classes/external-mip/Osi/OsiClp.doctree new file mode 100644 index 00000000..c3404bfb Binary files /dev/null and b/.doctrees/api/classes/external-mip/Osi/OsiClp.doctree differ diff --git a/.doctrees/api/classes/external-mip/Osi/OsiCplex.doctree b/.doctrees/api/classes/external-mip/Osi/OsiCplex.doctree new file mode 100644 index 00000000..d859815b Binary files /dev/null and b/.doctrees/api/classes/external-mip/Osi/OsiCplex.doctree differ diff --git a/.doctrees/api/classes/external-mip/Osi/OsiSymphony.doctree b/.doctrees/api/classes/external-mip/Osi/OsiSymphony.doctree new file mode 100644 index 00000000..eb423000 Binary files /dev/null and b/.doctrees/api/classes/external-mip/Osi/OsiSymphony.doctree differ diff --git a/.doctrees/api/classes/external-mip/Osi/index.doctree b/.doctrees/api/classes/external-mip/Osi/index.doctree new file mode 100644 index 00000000..ba6985c6 Binary files /dev/null and b/.doctrees/api/classes/external-mip/Osi/index.doctree differ diff --git a/.doctrees/api/classes/external-mip/index.doctree b/.doctrees/api/classes/external-mip/index.doctree new file mode 100644 index 00000000..4e698d4b Binary files /dev/null and b/.doctrees/api/classes/external-mip/index.doctree differ diff --git a/.doctrees/api/classes/index.doctree b/.doctrees/api/classes/index.doctree new file mode 100644 index 00000000..8b9b7045 Binary files /dev/null and b/.doctrees/api/classes/index.doctree differ diff --git a/.doctrees/api/classes/universal-callbacks/Callback.doctree b/.doctrees/api/classes/universal-callbacks/Callback.doctree new file mode 100644 index 00000000..77f14fc8 Binary files /dev/null and b/.doctrees/api/classes/universal-callbacks/Callback.doctree differ diff --git a/.doctrees/api/classes/universal-callbacks/CallbackFactory.doctree b/.doctrees/api/classes/universal-callbacks/CallbackFactory.doctree new file mode 100644 index 00000000..3bfba555 Binary files /dev/null and b/.doctrees/api/classes/universal-callbacks/CallbackFactory.doctree differ diff --git a/.doctrees/api/classes/universal-callbacks/LazyCutCallback.doctree b/.doctrees/api/classes/universal-callbacks/LazyCutCallback.doctree new file mode 100644 index 00000000..12a2ac92 Binary files /dev/null and b/.doctrees/api/classes/universal-callbacks/LazyCutCallback.doctree differ diff --git a/.doctrees/api/classes/universal-callbacks/UserCutCallback.doctree b/.doctrees/api/classes/universal-callbacks/UserCutCallback.doctree new file mode 100644 index 00000000..a219c8a6 Binary files /dev/null and b/.doctrees/api/classes/universal-callbacks/UserCutCallback.doctree differ diff --git a/.doctrees/api/classes/universal-callbacks/index.doctree b/.doctrees/api/classes/universal-callbacks/index.doctree new file mode 100644 index 00000000..7ba8f38d Binary files /dev/null and b/.doctrees/api/classes/universal-callbacks/index.doctree differ diff --git a/.doctrees/api/constants/index.doctree b/.doctrees/api/constants/index.doctree new file mode 100644 index 00000000..52b78282 Binary files /dev/null and b/.doctrees/api/constants/index.doctree differ diff --git a/.doctrees/api/constants/tolerances.doctree b/.doctrees/api/constants/tolerances.doctree new file mode 100644 index 00000000..ac53e3ca Binary files /dev/null and b/.doctrees/api/constants/tolerances.doctree differ diff --git a/.doctrees/api/index.doctree b/.doctrees/api/index.doctree new file mode 100644 index 00000000..49f3ae7c Binary files /dev/null and b/.doctrees/api/index.doctree differ diff --git a/.doctrees/api/types/common/VarType.doctree b/.doctrees/api/types/common/VarType.doctree new file mode 100644 index 00000000..3f086c3d Binary files /dev/null and b/.doctrees/api/types/common/VarType.doctree differ diff --git a/.doctrees/api/types/index.doctree b/.doctrees/api/types/index.doctree new file mode 100644 index 00000000..40c610c0 Binary files /dev/null and b/.doctrees/api/types/index.doctree differ diff --git a/.doctrees/api/types/universal-callbacks/CallbackEvent.doctree b/.doctrees/api/types/universal-callbacks/CallbackEvent.doctree new file mode 100644 index 00000000..ea3a50e0 Binary files /dev/null and b/.doctrees/api/types/universal-callbacks/CallbackEvent.doctree differ diff --git a/.doctrees/api/types/universal-callbacks/index.doctree b/.doctrees/api/types/universal-callbacks/index.doctree new file mode 100644 index 00000000..108283a8 Binary files /dev/null and b/.doctrees/api/types/universal-callbacks/index.doctree differ diff --git a/.doctrees/developer_guide/build-the-doc.doctree b/.doctrees/developer_guide/build-the-doc.doctree new file mode 100644 index 00000000..f72b5f00 Binary files /dev/null and b/.doctrees/developer_guide/build-the-doc.doctree differ diff --git a/.doctrees/developer_guide/index.doctree b/.doctrees/developer_guide/index.doctree new file mode 100644 index 00000000..20917e68 Binary files /dev/null and b/.doctrees/developer_guide/index.doctree differ diff --git a/.doctrees/developer_guide/tests.doctree b/.doctrees/developer_guide/tests.doctree new file mode 100644 index 00000000..d1a48308 Binary files /dev/null and b/.doctrees/developer_guide/tests.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle new file mode 100644 index 00000000..b8f49d23 Binary files /dev/null and b/.doctrees/environment.pickle differ diff --git a/.doctrees/examples/bilevel-problem.doctree b/.doctrees/examples/bilevel-problem.doctree new file mode 100644 index 00000000..196586fe Binary files /dev/null and b/.doctrees/examples/bilevel-problem.doctree differ diff --git a/.doctrees/examples/facility-location-problem.doctree b/.doctrees/examples/facility-location-problem.doctree new file mode 100644 index 00000000..4caa3d14 Binary files /dev/null and b/.doctrees/examples/facility-location-problem.doctree differ diff --git a/.doctrees/examples/generalized-assignment-problem.doctree b/.doctrees/examples/generalized-assignment-problem.doctree new file mode 100644 index 00000000..02d87e11 Binary files /dev/null and b/.doctrees/examples/generalized-assignment-problem.doctree differ diff --git a/.doctrees/examples/index.doctree b/.doctrees/examples/index.doctree new file mode 100644 index 00000000..e5af2f8a Binary files /dev/null and b/.doctrees/examples/index.doctree differ diff --git a/.doctrees/examples/knapsack-problem.doctree b/.doctrees/examples/knapsack-problem.doctree new file mode 100644 index 00000000..1a2fc52d Binary files /dev/null and b/.doctrees/examples/knapsack-problem.doctree differ diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree new file mode 100644 index 00000000..3f5ab6ec Binary files /dev/null and b/.doctrees/index.doctree differ diff --git a/.doctrees/installation/global_installation.doctree b/.doctrees/installation/global_installation.doctree new file mode 100644 index 00000000..4b0a0f7e Binary files /dev/null and b/.doctrees/installation/global_installation.doctree differ diff --git a/.doctrees/installation/index.doctree b/.doctrees/installation/index.doctree new file mode 100644 index 00000000..fa1f01df Binary files /dev/null and b/.doctrees/installation/index.doctree differ diff --git a/.doctrees/installation/linking.doctree b/.doctrees/installation/linking.doctree new file mode 100644 index 00000000..61ac7d09 Binary files /dev/null and b/.doctrees/installation/linking.doctree differ diff --git a/.doctrees/installation/local_installation.doctree b/.doctrees/installation/local_installation.doctree new file mode 100644 index 00000000..aa977b15 Binary files /dev/null and b/.doctrees/installation/local_installation.doctree differ diff --git a/.doctrees/installation/mosek-and-socp.doctree b/.doctrees/installation/mosek-and-socp.doctree new file mode 100644 index 00000000..c383e4cd Binary files /dev/null and b/.doctrees/installation/mosek-and-socp.doctree differ diff --git a/.doctrees/installation/options.doctree b/.doctrees/installation/options.doctree new file mode 100644 index 00000000..746965bb Binary files /dev/null and b/.doctrees/installation/options.doctree differ diff --git a/.doctrees/references.doctree b/.doctrees/references.doctree new file mode 100644 index 00000000..3c727a54 Binary files /dev/null and b/.doctrees/references.doctree differ diff --git a/.doctrees/tutorials/basics/benders.doctree b/.doctrees/tutorials/basics/benders.doctree new file mode 100644 index 00000000..0ea360b2 Binary files /dev/null and b/.doctrees/tutorials/basics/benders.doctree differ diff --git a/.doctrees/tutorials/basics/importing_a_model.doctree b/.doctrees/tutorials/basics/importing_a_model.doctree new file mode 100644 index 00000000..668e73d1 Binary files /dev/null and b/.doctrees/tutorials/basics/importing_a_model.doctree differ diff --git a/.doctrees/tutorials/basics/index.doctree b/.doctrees/tutorials/basics/index.doctree new file mode 100644 index 00000000..fc26354e Binary files /dev/null and b/.doctrees/tutorials/basics/index.doctree differ diff --git a/.doctrees/tutorials/basics/modeling_optimization_problems.doctree b/.doctrees/tutorials/basics/modeling_optimization_problems.doctree new file mode 100644 index 00000000..2af524fc Binary files /dev/null and b/.doctrees/tutorials/basics/modeling_optimization_problems.doctree differ diff --git a/.doctrees/tutorials/basics/using_an_external_solver.doctree b/.doctrees/tutorials/basics/using_an_external_solver.doctree new file mode 100644 index 00000000..f8935ebb Binary files /dev/null and b/.doctrees/tutorials/basics/using_an_external_solver.doctree differ diff --git a/.doctrees/tutorials/bilevel-optimization/index.doctree b/.doctrees/tutorials/bilevel-optimization/index.doctree new file mode 100644 index 00000000..f308d467 Binary files /dev/null and b/.doctrees/tutorials/bilevel-optimization/index.doctree differ diff --git a/.doctrees/tutorials/branch-and-bound/basic.doctree b/.doctrees/tutorials/branch-and-bound/basic.doctree new file mode 100644 index 00000000..005984d3 Binary files /dev/null and b/.doctrees/tutorials/branch-and-bound/basic.doctree differ diff --git a/.doctrees/tutorials/branch-and-bound/index.doctree b/.doctrees/tutorials/branch-and-bound/index.doctree new file mode 100644 index 00000000..62a6bfbe Binary files /dev/null and b/.doctrees/tutorials/branch-and-bound/index.doctree differ diff --git a/.doctrees/tutorials/branch-and-bound/priorities.doctree b/.doctrees/tutorials/branch-and-bound/priorities.doctree new file mode 100644 index 00000000..20993599 Binary files /dev/null and b/.doctrees/tutorials/branch-and-bound/priorities.doctree differ diff --git a/.doctrees/tutorials/dantzig-wolfe/dantzig_wolfe.doctree b/.doctrees/tutorials/dantzig-wolfe/dantzig_wolfe.doctree new file mode 100644 index 00000000..9852097b Binary files /dev/null and b/.doctrees/tutorials/dantzig-wolfe/dantzig_wolfe.doctree differ diff --git a/.doctrees/tutorials/dantzig-wolfe/heuristic.doctree b/.doctrees/tutorials/dantzig-wolfe/heuristic.doctree new file mode 100644 index 00000000..add29754 Binary files /dev/null and b/.doctrees/tutorials/dantzig-wolfe/heuristic.doctree differ diff --git a/.doctrees/tutorials/dantzig-wolfe/index.doctree b/.doctrees/tutorials/dantzig-wolfe/index.doctree new file mode 100644 index 00000000..a2c71d88 Binary files /dev/null and b/.doctrees/tutorials/dantzig-wolfe/index.doctree differ diff --git a/.doctrees/tutorials/dantzig-wolfe/stabilization.doctree b/.doctrees/tutorials/dantzig-wolfe/stabilization.doctree new file mode 100644 index 00000000..5a76d8af Binary files /dev/null and b/.doctrees/tutorials/dantzig-wolfe/stabilization.doctree differ diff --git a/.doctrees/tutorials/dantzig-wolfe/strong-branching.doctree b/.doctrees/tutorials/dantzig-wolfe/strong-branching.doctree new file mode 100644 index 00000000..8bec6c55 Binary files /dev/null and b/.doctrees/tutorials/dantzig-wolfe/strong-branching.doctree differ diff --git a/.doctrees/tutorials/index.doctree b/.doctrees/tutorials/index.doctree new file mode 100644 index 00000000..b9605a24 Binary files /dev/null and b/.doctrees/tutorials/index.doctree differ diff --git a/.doctrees/tutorials/mixed-integer-programming/index.doctree b/.doctrees/tutorials/mixed-integer-programming/index.doctree new file mode 100644 index 00000000..97459d8c Binary files /dev/null and b/.doctrees/tutorials/mixed-integer-programming/index.doctree differ diff --git a/.doctrees/tutorials/robust-optimization/index.doctree b/.doctrees/tutorials/robust-optimization/index.doctree new file mode 100644 index 00000000..a9c19a49 Binary files /dev/null and b/.doctrees/tutorials/robust-optimization/index.doctree differ diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/_sources/.api/index.rst.txt b/_sources/.api/index.rst.txt new file mode 100644 index 00000000..83bb2f6a --- /dev/null +++ b/_sources/.api/index.rst.txt @@ -0,0 +1,13 @@ +.. _api: + +API +=== + +.. toctree:: + :maxdepth: 3 + :glob: + + modeling/index + optimizers/index + problems/index + tolerances diff --git a/_sources/.api/optimizers/index.rst.txt b/_sources/.api/optimizers/index.rst.txt new file mode 100644 index 00000000..e356a1fa --- /dev/null +++ b/_sources/.api/optimizers/index.rst.txt @@ -0,0 +1,68 @@ +.. _api_optimizers: + +Optimizers +========== + +Optimizers denote the algorithms which are being used by idol to solve a given ``Model``. +They are set by using the ``Model::use`` method, as done in the following example. + +.. code-block:: cpp + + Env env; + + Model my_model(env); + + my_model.use( Gurobi() ); // setting the optimizer of my_model to Gurobi() + +Here, ``Gurobi`` is actually an ``OptimizerFactory`` which will eventually create an optimizer to solve our model. Indeed, +the "real" optimizer in this case will be an instance of ``Optimizers::Gurobi`` which will be created just in time, +when necessary. + +Typically, a user mostly works with optimizer factories rather than with optimizers. Optimizer factories are like +"building plans" for creating actual optimizers. They usually can be recognized by their ``with_*`` functions allowing +the user to customize this plan. For instance, the ``BranchAndBound`` optimizer factory has a method ``with_node_optimizer`` +allowing the user to pass yet another optimizer factory which will be used to create optimizers for the branch-and-bound +nodes. + +This mechanism is what allows idol to create complex algorithms by combining optimizers together. Here is a second example +which creates a branch-and-bound algorithm in which each node is solved by Gurobi. + +.. code-block:: cpp + + auto branch_and_bound = + + /* The overall algorithm is a branch-and-bound */ + BranchAndBound() + + /* Each node is solved with a Dantzig-Wolfe decomposition algorithm */ + .with_node_solver(Gurobi::ContinuousRelaxation()) + + /* Variables are selected for branching using the most-infeasible rule */ + .with_branching_rule(MostInfeasible()) + + /* Nodes are selected using the best-bound rule */ + .with_node_selection_rule(BestBound()) + + /* Only informational logs will be printed (in blue) */ + .with_log_level(Info, Blue) + + /* The algorithm will run with a time limit of 3600 */ + .with_time_limit(3600) + ) + + my_model.use(branch_and_bound); + +Once an optimizer, or rather, an optimizer factory, has been given, the ``Model::optimize`` method can be called to actually +solve the model. + +.. code-block:: + + my_model.optimize(); + +.. toctree:: + :maxdepth: 3 + :glob: + + mixed-integer-programming/index + robust-optimization/index + bilevel-optimization/index diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.rst.txt new file mode 100644 index 00000000..afe09bfa --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.rst.txt @@ -0,0 +1,6 @@ +.. _api_Robust_ColumnAndConstraintGeneration_doxygen: + +Robust::ColumnAndConstraintGeneration +===================================== + +.. doxygenclass:: idol::Robust::ColumnAndConstraintGeneration diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/index.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/index.rst.txt new file mode 100644 index 00000000..408d4d50 --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/index.rst.txt @@ -0,0 +1,167 @@ +.. _api_ro_ccg: + +Column-and-Constraint Generation +================================ + +The Column-and-Constraint Generation (CCG) algorithm is a classical method for solving two-stage robust optimization problems. +It was originally introduced by :cite:`Zeng2013`. + +In idol, the implementation of CCG alows to solve a class of problems which is slightly more general than classical two-stage robust optimization problems. +This class of problems is defined in the following sub-section. + +Problem Class +------------- + +The CCG algorithm can solve optimization problems of the following form: + +.. math:: + :label: eq:original-problem + + \begin{align} + \min_x \quad & f(x) \\ + \text{s.t.} \quad & x\in X, \\ + & \forall \xi\in\Xi, \ \exists y\in Y(x,\xi), \ G(x,y,\xi) \le 0. + \end{align} + +in which + +- :math:`f` is a given function, +- :math:`X` is a given set, called the *first-stage feasible set*, +- :math:`\Xi` is a given set, called the *uncertainty set*, typically compact, +- :math:`Y(x,\xi)` is a set, defined for all :math:`x\in X` and :math:`\xi\in\Xi`, called the *second-stage feasible set*, and +- :math:`G` is a given vector of functions, defining the so-called *coupling constraints* between the uncertainty, the first- and the second-stage decisions. + +.. admonition:: Regarding Coupling Constraints + + It is clear that coupling constraints are redundant since they can be incorporated into the definition of the second-stage feasible set. + However, we will see that explicitly defining *coupling constraints* may lead to different implementations of the CCG algorithm. + We will dive into this aspect after introducing the concept of *separators*. + +Min-Max-Min Problems +^^^^^^^^^^^^^^^^^^^^ + +Consider the following min-max-min problem: + +.. math:: + + \min_{x\in X} \ \max_{\xi\in\Xi} \ \min_{y\in Y(x,\xi)} \ \psi(x,y,\xi). + +This class of problems is a special case of :math:numref:`eq:original-problem` since it can be written as + +.. math:: + + \begin{align} + \min_{x_0,x} \quad & x_0 \\ + \text{s.t.} \quad & (x_0,x) \in\mathbb R\times X, \\ + & \forall \xi\in\Xi, \ \exists y\in Y(x,\xi), \ \psi(x,y,\xi) \le x_0. + \end{align} + +Here, there is only one coupling constraint, which is :math:`\psi(x,y,\xi) \le x_0`. + +The Algorithm +------------- + +Basic Idea +^^^^^^^^^^ + +The idea of the CCG algorithm is to consider a finite subset of points in :math:`\Xi`, say :math:`\{ \xi^1, \dotsc, \xi^k \}`, +and to solve the following problem instead of :math:numref:`eq:original-problem`: + +.. math:: + :label: eq:master-problem + + \begin{align} + \min_{x_0,x} \quad & f(x) \\ + \text{s.t.} \quad & x\in X, \\ + & \left. \begin{array}{l} + G(x,y^t,\xi^t) \le 0, \\ + y^t\in Y(x,\xi^t) + \end{array} \right\} \quad \forall t=1,...,k. + \end{align} + +Here, a new variable :math:`y^t` has been introduced for each :math:`t=1,...,k`, enforcing that :math:`\exists y^t\in Y(x,\xi^t)`. +Clearly, this problem is a relaxation of :math:numref:`eq:original-problem` since any feasible point of :math:numref:`eq:original-problem` is also feasible for this problem. + +Now, given a solution :math:`\hat x\in X` of the above problem, one needs to check whether :math:`\hat x` is feasible for :math:numref:`eq:original-problem`. +Thus, one seeks a scenario :math:`\xi^*\in\Xi` such that, either :math:`Y(\hat x, \xi^*)` is empty, or :math:`G(\hat x,y,\xi^*) > 0` for all :math:`y\in Y(\hat x, \xi^*)`. +If no such scenario exists, then :math:`\hat x` is feasible for :math:numref:`eq:original-problem`. Otherwise, the new scenario :math:`\xi^*` is added to the set of considered scenarios and the process is repeated. + +Identifying a missing scenario is called *separation*, and can be done by solving the following problem: + +.. math:: + :name: eq:separation-problem + + \max_{\xi\in \Xi} \ \max_{\ell=1,...,L} \left\{ \ \min_{ y\in Y(\hat x,\xi) } \ G_\ell(\hat x,y,\xi) \right\}. + +If the optimal value of the separation problem is non-positive, then :math:`\hat x` is feasible for :math:numref:`eq:original-problem`. +Otherwise, the solution of the separation problem gives a new scenario :math:`\xi^*` to be added to the set of scenarios. + +Note that we use the convention :math:`\max \emptyset = -\infty` and :math:`\min \emptyset = +\infty`. + +Separators +^^^^^^^^^^ + +Clearly, the separation problem :math:numref:`eq:separation-problem` can be solved in many different ways. In idol, +it is therefore possible to give a user-defined functor, called a *separator*, which solves the separation problem. + +Note that some of the most common ways to solve the separation problem are already implemented in idol. See :ref:`this page `. + +If you wish to implement your own separator, beware that it should return a solution of + +.. math:: + + \max_{\xi\in \Xi} \ \min_{ y\in Y(\hat x,\xi) } \ G_\ell(\hat x,y,\xi), + +for a given :math:`\ell\in\{1,...,L\}`. + +Then, a scenario :math:`\xi^{\ell^*}` is added if, and only if, + +.. math:: + + \ell^* \in \underset{\ell=1,...,L}{\text{argmax}} \ \min_{ y\in Y(\hat x,\xi^\ell) } \ G_\ell(\hat x,y,\xi^\ell) > \varepsilon_\text{feas}. + +See :ref:`the dedicated page ` for more details. + +On the Impact of Coupling Constraints +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We now discuss the impact of the definition of the coupling constraints :math:`G` on the implementation of the CCG algorithm. +To this end, let :math:`\hat x\in X` be a given point. + +As discussed in the previous sections, one needs to check whether :math:`\hat x` is feasible for :math:numref:`eq:original-problem` +by solving the separation problem :math:numref:`eq:separation-problem`. + +Arguably, one obtains an equivalent problem to :math:numref:`eq:original-problem` by defining the second-stage feasible set as + +.. math:: + + \tilde Y(x,\xi) = \{ y\in Y(x,\xi) \ | \ G(x,y,\xi) \le 0 \}, + +and by considering the following problem: + +.. math:: + + \begin{align} + \min_x \quad & f(x) \\ + \text{s.t.} \quad & x\in X, \\ + & \forall \xi\in\Xi, \ \exists y\in \tilde Y(\hat x,\xi). + \end{align} + +Then, the separation problem becomes + +.. math:: + + \max_{\xi\in\Xi} \ \min_{ y\in \tilde Y(\hat x,\xi) } \ 0, + +which is a feasibility problem. + +Though the two approaches are equivalent, in the sense that they will both lead to a solution of :math:numref:`eq:original-problem`, +they may lead to different computational performances. An interested reader may refer to, e.g., :cite:`Ayoub2016` for more details. + +.. toctree:: + :maxdepth: 2 + :glob: + + ColumnAndConstraintGeneration.doxygen.rst + separators/index + stabilization/index diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.rst.txt new file mode 100644 index 00000000..ec417f51 --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.rst.txt @@ -0,0 +1,6 @@ +.. _api_ro_ccg_MaxMinBilevel: + +Bilevel +======= + +.. doxygenclass:: idol::Robust::CCGSeparators::Bilevel diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.rst.txt new file mode 100644 index 00000000..4253269f --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.rst.txt @@ -0,0 +1,6 @@ +.. _api_ro_ccg_MaxMinDualize: + +Dualize +======= + +.. doxygenclass:: idol::Robust::CCGSeparators::Dualize diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.rst.txt new file mode 100644 index 00000000..6d367358 --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.rst.txt @@ -0,0 +1,12 @@ +.. _api_ro_ccg_separators: + +Separation and Separators +========================= + +.. toctree:: + :maxdepth: 2 + :glob: + + Bilevel + Dualize + diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.rst.txt new file mode 100644 index 00000000..2d21235d --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.rst.txt @@ -0,0 +1,6 @@ +.. _api_ro_ccg_stabilization_NoStabilization: + +Robust::CCGStabilizers::NoStabilization +======================================= + +.. doxygenclass:: idol::Robust::CCGStabilizers::NoStabilization diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.rst.txt new file mode 100644 index 00000000..67830868 --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.rst.txt @@ -0,0 +1,11 @@ +.. _api_ro_ccg_stabilization: + +Stabilization +============= + +.. toctree:: + :maxdepth: 2 + :glob: + + Robust::CCGStabilizers::NoStabilization.doxgen.rst + trust-region/index \ No newline at end of file diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.rst.txt new file mode 100644 index 00000000..29a8f89d --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.rst.txt @@ -0,0 +1,6 @@ +.. _api_ro_ccg_stabilization_TrustRegion: + +Robust::CCGStabilizers::TrustRegion +======================================= + +.. doxygenclass:: idol::Robust::CCGStabilizers::TrustRegion diff --git a/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.rst.txt b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.rst.txt new file mode 100644 index 00000000..b645a9f2 --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.rst.txt @@ -0,0 +1,84 @@ +.. _api_ro_ccg_stabilization_trust_region: + +Trust Region Stabilization +========================== + +In this section, we discuss stabilization of the CCG algorithm **under the specific setting of binary first-stage decisions**, i.e., :math:`X \subseteq \{0,1\}^{n_x}`. +This procedure is inspried by the work of :cite:`Baena2020` on Benders decomposition. + +Let :math:`\bar x` be a given stability center. The following constraint is called a *local branching constraint*: + +.. math:: + + \Delta(x,\bar x) := \sum_{i:\bar x_i = 1} (1 - y_i) + \sum_{i:\bar x_i = 0} y_i \le \rho, + +with :math:`\rho` a given radius. Additionally, we call *reversed local branching constraint* the following constraint: + +.. math:: + + \Delta(x,\bar x) \ge \rho + 1. + +At each iteration, the stabilized CCG algorithm solves the following problem instead of :math:numref:`eq:master-problem`: + +.. math:: + + \begin{align} + \min_{x_0,x} \quad & f(x) \\ + \text{s.t.} \quad & x\in X, \\ + & \left. \begin{array}{l} + G(x,y^t,\xi^t) \le 0, \\ + y^t\in Y(x,\xi^t) + \end{array} \right\} \quad \forall t=1,...,k, \\ + & \Delta(x,\bar x) \le \rho, \\ + & \Delta(x,\bar x') \ge \rho' + 1 \quad \forall (\bar x', \rho') \in R, + \end{align} + +for some set :math:`R\subseteq X\times\mathbb N` of reversed local branching constraints. + +We now state the algorithm. + +.. raw:: html + +
+        \begin{algorithm}
+        \caption{Stabilized CCG Algorithm}
+        \begin{algorithmic}
+        \REQUIRE An initial radius \( \rho\in\{ 1,\dotsc, n_x \} \) and an initial point \( \bar x\in X \).
+        \STATE Initialize \( k \gets 0 \), \( UB \gets +\infty \), \( LB \gets -\infty \), \( R \gets \emptyset \)
+        \STATE Solve the restricted master problem (RMP)
+        \IF{the RMP is infeasible}
+            \IF{ \( \rho \ge n_x \) }
+                \STATE STOP, \( UB \) is the optimal value.
+            \ENDIF
+            \STATE Add a reversed local branching constraint, \( R \gets R \cup (\bar x, \rho) \)
+            \STATE Increase \( \rho \)
+        \ELSE
+            \STATE Let \( x^k \) be the solution of the RMP and \( v^k \) be its value
+            \STATE Solve the separation problem, let \( \xi^k \) be the solution and \( s^k \) be its value
+            \IF{ \( s^k \le \varepsilon_\text{feas} \) }
+                \STATE \( UB \gets \min\{ UB, v^k \} \)
+                \STATE Solve the RMP without the stabilization constraints, let $\underline v^k$ be its value, set \( LB \gets \underline v^k \)
+                \IF{ \( UB - LB \le \varepsilon \) }
+                    \STATE STOP, \( UB \) is the optimal value.
+                \ENDIF
+                \STATE Add a reversed local branching constraint, \( R \gets R \cup (x^k, \rho) \)
+                \STATE Update the stability center \( \bar x \gets x^k \)
+                \STATE Optionally, reset \( \rho \gets 1 \)
+            \ENDIF
+            \STATE \( k \gets k + 1 \)
+            \STATE Go back to step 2
+        \ENDIF
+        \end{algorithmic}
+        \end{algorithm}
+    
+ + +Note that if :math:`\rho \ge n_x`, the stabilized CCG is exactly the CCG algorithm. + +.. toctree:: + :maxdepth: 2 + :glob: + + Robust::CCGStabilizers::TrustRegion.doxgen.rst \ No newline at end of file diff --git a/_sources/.api/optimizers/robust-optimization/index.rst.txt b/_sources/.api/optimizers/robust-optimization/index.rst.txt new file mode 100644 index 00000000..15f3c4af --- /dev/null +++ b/_sources/.api/optimizers/robust-optimization/index.rst.txt @@ -0,0 +1,10 @@ +.. _api_optimizers_ro: + +Robust Optimization +=================== + +.. toctree:: + :maxdepth: 2 + :glob: + + column-and-constraint-generation/index diff --git a/_sources/.api/problems/ProblemsFLP.rst.txt b/_sources/.api/problems/ProblemsFLP.rst.txt new file mode 100644 index 00000000..ed8155a7 --- /dev/null +++ b/_sources/.api/problems/ProblemsFLP.rst.txt @@ -0,0 +1,4 @@ +Facility Location Problem (FLP) +=============================== + +.. doxygennamespace:: idol::Problems::FLP diff --git a/_sources/.api/problems/ProblemsGAP.rst.txt b/_sources/.api/problems/ProblemsGAP.rst.txt new file mode 100644 index 00000000..f550c328 --- /dev/null +++ b/_sources/.api/problems/ProblemsGAP.rst.txt @@ -0,0 +1,4 @@ +Generalized Assignment Problem (GAP) +==================================== + +.. doxygennamespace:: idol::Problems::GAP diff --git a/_sources/.api/problems/ProblemsKP.rst.txt b/_sources/.api/problems/ProblemsKP.rst.txt new file mode 100644 index 00000000..4ce82f7f --- /dev/null +++ b/_sources/.api/problems/ProblemsKP.rst.txt @@ -0,0 +1,4 @@ +Knapsack Problem (KP) +===================== + +.. doxygennamespace:: idol::Problems::KP diff --git a/_sources/.api/problems/ProblemsMKP.rst.txt b/_sources/.api/problems/ProblemsMKP.rst.txt new file mode 100644 index 00000000..0adce681 --- /dev/null +++ b/_sources/.api/problems/ProblemsMKP.rst.txt @@ -0,0 +1,4 @@ +Multiple Knapsack Problem (MKP) +=============================== + +.. doxygennamespace:: idol::Problems::MKP diff --git a/_sources/.api/problems/ProblemsSRP.rst.txt b/_sources/.api/problems/ProblemsSRP.rst.txt new file mode 100644 index 00000000..793ffc56 --- /dev/null +++ b/_sources/.api/problems/ProblemsSRP.rst.txt @@ -0,0 +1,4 @@ +Staff Rostering Problem (SRP) +=============================== + +.. doxygennamespace:: idol::Problems::SRP diff --git a/_sources/.api/problems/index.rst.txt b/_sources/.api/problems/index.rst.txt new file mode 100644 index 00000000..c3886b36 --- /dev/null +++ b/_sources/.api/problems/index.rst.txt @@ -0,0 +1,10 @@ +.. _api_problems: + +Problems +======== + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/_sources/.api/tolerances.rst.txt b/_sources/.api/tolerances.rst.txt new file mode 100644 index 00000000..1e97ee68 --- /dev/null +++ b/_sources/.api/tolerances.rst.txt @@ -0,0 +1,4 @@ +Tolerances and Numerics +======================= + +.. doxygenfile:: numericals.h \ No newline at end of file diff --git a/_sources/api/classes/branch-and-bound/BranchAndBound.rst.txt b/_sources/api/classes/branch-and-bound/BranchAndBound.rst.txt new file mode 100644 index 00000000..7384770b --- /dev/null +++ b/_sources/api/classes/branch-and-bound/BranchAndBound.rst.txt @@ -0,0 +1,29 @@ +BranchAndBound +============== + +This class is an optimizer factory which creates a new branch-and-bound algorithm. +It can be used to create customized branch-and-bound algorithms with a large degree of freedom. + +.. seealso:: + + If you are not familiar with optimizers and optimizer factories, please refer to :ref:`this page `. + +.. admonition:: Example + + Here, we create a simple branch-and-bound algorithm where branching is done on integer variables which are being + relaxed. Each node is solved by the external solver GLPK. Nodes are selected according to the "best-bound" + rule while variables are selected according to the "most-infeasible" branching rule. + + The created algorithm also incorporates sub-tree exploration of maximum depth 2. + + .. code-block:: + + model.use( + BranchAndBound() + .with_node_optimizer( GLPK::ContinuousRelaxation() ) + .with_branching_rule( MostInfeasible() ) + .with_node_selection_rule( BestBound() ) + .with_subtree_depth(2) + ); + +.. doxygenclass:: idol::BranchAndBound diff --git a/_sources/api/classes/branch-and-bound/BranchAndBoundCallback.rst.txt b/_sources/api/classes/branch-and-bound/BranchAndBoundCallback.rst.txt new file mode 100644 index 00000000..52c6f174 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/BranchAndBoundCallback.rst.txt @@ -0,0 +1,72 @@ +BranchAndBoundCallback +====================== + +This class can be used to create callbacks to run on idol's :ref:`branch-and-bound implementation `. + +.. warning:: + + BranchAndBoundCallback-s is an *advanced* feature. + + Please, make sure that what you are trying do cannot be done with + a :ref:`solver-independent callback ` first, or with pre-existing callbacks, e.g., + :ref:`UserCutCallback ` or :ref:`LazyCutCallback `. + + The advantage of using a :ref:`BranchAndBoundCallback ` instead of a standard + solver-independent :ref:`Callback ` lies in the possibility to access specific information regarding + the execution of the branch-and-bound algorithm. For instance, accessing a node's information, or the current + relaxation model being solved. + +.. admonition:: Example + + Here is an example of callback which prints out the event triggering it and, when the event corresponds to `NodeLoaded`, + prints the node's model to be solved. + + .. code-block:: + + class MyCallback : public BranchAndBoundCallbackFactory { + public: + class Strategy : public BranchAndBoundCallback { + protected: + void operator()(CallbackEvent t_event) override { + + std::cout << "MyCallback is called for " << t_event << std::endl; + + if (t_event != NodeLoaded) { + return; + } + + std::cout << "The problem being solve at node " << node().id() << std::endl; + std::cout << relaxation() << std::endl; + + } + }; + + BranchAndBoundCallback *operator()() override { + return new Strategy(); + } + + [[nodiscard]] BranchAndBoundCallbackFactory *clone() const override { + return new MyCallback(*this); + } + }; + + Then, this callback can be used as follows. + + .. code-block:: + + model.use( + BranchAndBound() + .with_node_optimizer(GLPK::ContinuousRelaxation()) + .with_branching_rule(MostInfeasible()) + .with_node_selection_rule(DepthFirst()) + .with_callback(MyCallback()); + ); + +.. hint:: + + By default, most of the objects returned by BranchAndBoundCallback methods are const. If you wish to access non-const + versions (e.g., if you want to perform non-standard updates to the relaxed model or want to change the node's current + information manually), you should use the advanced interface obtained by calling ``BranchAndBoundCallback::advanced_interface``. + +.. doxygenclass:: idol::BranchAndBoundCallback + :protected-members: diff --git a/_sources/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.rst.txt b/_sources/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.rst.txt new file mode 100644 index 00000000..a94a06f9 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.rst.txt @@ -0,0 +1,5 @@ +BranchAndBoundCallbackFactory +============================= + +.. doxygenclass:: idol::BranchAndBoundCallbackFactory + :protected-members: diff --git a/_sources/api/classes/branch-and-bound/cuts/KnapsackCover.rst.txt b/_sources/api/classes/branch-and-bound/cuts/KnapsackCover.rst.txt new file mode 100644 index 00000000..44d2fb60 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/cuts/KnapsackCover.rst.txt @@ -0,0 +1,4 @@ +Cuts::KnapsackCover +=================== + +.. doxygenclass:: idol::Cuts::KnapsackCover diff --git a/_sources/api/classes/branch-and-bound/cuts/index.rst.txt b/_sources/api/classes/branch-and-bound/cuts/index.rst.txt new file mode 100644 index 00000000..4ff9d8fa --- /dev/null +++ b/_sources/api/classes/branch-and-bound/cuts/index.rst.txt @@ -0,0 +1,10 @@ +Cutting Planes +============== + +.. toctree:: + :maxdepth: 1 + :glob: + + * + + diff --git a/_sources/api/classes/branch-and-bound/heuristics/LocalBranching.rst.txt b/_sources/api/classes/branch-and-bound/heuristics/LocalBranching.rst.txt new file mode 100644 index 00000000..37c62452 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/heuristics/LocalBranching.rst.txt @@ -0,0 +1,4 @@ +Heuristics::LocalBranching +========================== + +.. doxygenclass:: idol::Heuristics::LocalBranching diff --git a/_sources/api/classes/branch-and-bound/heuristics/RENS.rst.txt b/_sources/api/classes/branch-and-bound/heuristics/RENS.rst.txt new file mode 100644 index 00000000..3b951da0 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/heuristics/RENS.rst.txt @@ -0,0 +1,4 @@ +Heuristics::RENS +================ + +.. doxygenclass:: idol::Heuristics::RENS diff --git a/_sources/api/classes/branch-and-bound/heuristics/SimpleRounding.rst.txt b/_sources/api/classes/branch-and-bound/heuristics/SimpleRounding.rst.txt new file mode 100644 index 00000000..0a0e0e74 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/heuristics/SimpleRounding.rst.txt @@ -0,0 +1,4 @@ +Heuristics::SimpleRounding +========================== + +.. doxygenclass:: idol::Heuristics::SimpleRounding diff --git a/_sources/api/classes/branch-and-bound/heuristics/index.rst.txt b/_sources/api/classes/branch-and-bound/heuristics/index.rst.txt new file mode 100644 index 00000000..d59a952f --- /dev/null +++ b/_sources/api/classes/branch-and-bound/heuristics/index.rst.txt @@ -0,0 +1,10 @@ +Heuristics +========== + +.. toctree:: + :maxdepth: 1 + :glob: + + * + + diff --git a/_sources/api/classes/branch-and-bound/index.rst.txt b/_sources/api/classes/branch-and-bound/index.rst.txt new file mode 100644 index 00000000..63035c91 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/index.rst.txt @@ -0,0 +1,12 @@ +Branch-and-Bound Algorithm +========================== + +.. toctree:: + :maxdepth: 2 + :glob: + + * + variable-selection/index + node-selection/index + heuristics/index + cuts/index diff --git a/_sources/api/classes/branch-and-bound/node-selection/BestBound.rst.txt b/_sources/api/classes/branch-and-bound/node-selection/BestBound.rst.txt new file mode 100644 index 00000000..466ba897 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/node-selection/BestBound.rst.txt @@ -0,0 +1,4 @@ +BestBound +========= + +.. doxygenclass:: idol::BestBound diff --git a/_sources/api/classes/branch-and-bound/node-selection/BestEstimate.rst.txt b/_sources/api/classes/branch-and-bound/node-selection/BestEstimate.rst.txt new file mode 100644 index 00000000..7242d970 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/node-selection/BestEstimate.rst.txt @@ -0,0 +1,6 @@ +BestEstimate +============ + +The "best estimate" node selection rule was introduced in *J. J. H. Forrest, J. P. H. Hirst, J. A. Tomlin, (1974) Practical Solution of Large Mixed Integer Programming Problems with Umpire. Management Science 20(5):736-773*. + +.. doxygenclass:: idol::BestEstimate diff --git a/_sources/api/classes/branch-and-bound/node-selection/BreadthFirst.rst.txt b/_sources/api/classes/branch-and-bound/node-selection/BreadthFirst.rst.txt new file mode 100644 index 00000000..f579e0ba --- /dev/null +++ b/_sources/api/classes/branch-and-bound/node-selection/BreadthFirst.rst.txt @@ -0,0 +1,4 @@ +BreadthFirst +============ + +.. doxygenclass:: idol::BreadthFirst diff --git a/_sources/api/classes/branch-and-bound/node-selection/DepthFirst.rst.txt b/_sources/api/classes/branch-and-bound/node-selection/DepthFirst.rst.txt new file mode 100644 index 00000000..31c0f920 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/node-selection/DepthFirst.rst.txt @@ -0,0 +1,4 @@ +DepthFirst +========== + +.. doxygenclass:: idol::DepthFirst diff --git a/_sources/api/classes/branch-and-bound/node-selection/WorstBound.rst.txt b/_sources/api/classes/branch-and-bound/node-selection/WorstBound.rst.txt new file mode 100644 index 00000000..3e009532 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/node-selection/WorstBound.rst.txt @@ -0,0 +1,4 @@ +WorstBound +========== + +.. doxygenclass:: idol::WorstBound diff --git a/_sources/api/classes/branch-and-bound/node-selection/index.rst.txt b/_sources/api/classes/branch-and-bound/node-selection/index.rst.txt new file mode 100644 index 00000000..09ffa958 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/node-selection/index.rst.txt @@ -0,0 +1,10 @@ +Node Selection Rules +==================== + +.. toctree:: + :maxdepth: 1 + :glob: + + * + + diff --git a/_sources/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.rst.txt new file mode 100644 index 00000000..1723395c --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.rst.txt @@ -0,0 +1,4 @@ +FirstInfeasibleFound +==================== + +.. doxygenclass:: idol::FirstInfeasibleFound diff --git a/_sources/api/classes/branch-and-bound/variable-selection/LeastInfeasible.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/LeastInfeasible.rst.txt new file mode 100644 index 00000000..84dc1d37 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/LeastInfeasible.rst.txt @@ -0,0 +1,4 @@ +LeastInfeasible +=============== + +.. doxygenclass:: idol::LeastInfeasible diff --git a/_sources/api/classes/branch-and-bound/variable-selection/LocalBranching.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/LocalBranching.rst.txt new file mode 100644 index 00000000..37c62452 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/LocalBranching.rst.txt @@ -0,0 +1,4 @@ +Heuristics::LocalBranching +========================== + +.. doxygenclass:: idol::Heuristics::LocalBranching diff --git a/_sources/api/classes/branch-and-bound/variable-selection/MostInfeasible.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/MostInfeasible.rst.txt new file mode 100644 index 00000000..e47c57c9 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/MostInfeasible.rst.txt @@ -0,0 +1,4 @@ +MostInfeasible +============== + +.. doxygenclass:: idol::MostInfeasible diff --git a/_sources/api/classes/branch-and-bound/variable-selection/PseudoCost.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/PseudoCost.rst.txt new file mode 100644 index 00000000..2ccb7772 --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/PseudoCost.rst.txt @@ -0,0 +1,4 @@ +PseudoCost +========== + +.. doxygenclass:: idol::PseudoCost diff --git a/_sources/api/classes/branch-and-bound/variable-selection/StrongBranching.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/StrongBranching.rst.txt new file mode 100644 index 00000000..8c96f18c --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/StrongBranching.rst.txt @@ -0,0 +1,4 @@ +StrongBranching +=============== + +.. doxygenclass:: idol::StrongBranching diff --git a/_sources/api/classes/branch-and-bound/variable-selection/UniformlyRandom.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/UniformlyRandom.rst.txt new file mode 100644 index 00000000..a34f4a6c --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/UniformlyRandom.rst.txt @@ -0,0 +1,4 @@ +UniformlyRandom +=============== + +.. doxygenclass:: idol::UniformlyRandom diff --git a/_sources/api/classes/branch-and-bound/variable-selection/index.rst.txt b/_sources/api/classes/branch-and-bound/variable-selection/index.rst.txt new file mode 100644 index 00000000..3d0a084c --- /dev/null +++ b/_sources/api/classes/branch-and-bound/variable-selection/index.rst.txt @@ -0,0 +1,10 @@ +Branching Rules +=============== + +.. toctree:: + :maxdepth: 1 + :glob: + + * + + diff --git a/_sources/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.rst.txt b/_sources/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.rst.txt new file mode 100644 index 00000000..afe09bfa --- /dev/null +++ b/_sources/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.rst.txt @@ -0,0 +1,6 @@ +.. _api_Robust_ColumnAndConstraintGeneration_doxygen: + +Robust::ColumnAndConstraintGeneration +===================================== + +.. doxygenclass:: idol::Robust::ColumnAndConstraintGeneration diff --git a/_sources/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.rst.txt b/_sources/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.rst.txt new file mode 100644 index 00000000..b0b7d157 --- /dev/null +++ b/_sources/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.rst.txt @@ -0,0 +1,4 @@ +Optimizers::Robust::ColumnAndConstraintGeneration +================================================= + +.. doxygenclass:: idol::Optimizers::Robust::ColumnAndConstraintGeneration diff --git a/_sources/api/classes/column-and-constraint-generation/index.rst.txt b/_sources/api/classes/column-and-constraint-generation/index.rst.txt new file mode 100644 index 00000000..3808c7a1 --- /dev/null +++ b/_sources/api/classes/column-and-constraint-generation/index.rst.txt @@ -0,0 +1,8 @@ +Column-and-Constraint Generation Algorithm +========================================== + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/_sources/api/classes/column-generation/ArtificialCosts.rst.txt b/_sources/api/classes/column-generation/ArtificialCosts.rst.txt new file mode 100644 index 00000000..6fbeae5c --- /dev/null +++ b/_sources/api/classes/column-generation/ArtificialCosts.rst.txt @@ -0,0 +1,4 @@ +DantzigWolfe::ArtificialCosts +============================= + +.. doxygenclass:: idol::DantzigWolfe::ArtificialCosts diff --git a/_sources/api/classes/column-generation/DantzigWolfeDecomposition.rst.txt b/_sources/api/classes/column-generation/DantzigWolfeDecomposition.rst.txt new file mode 100644 index 00000000..918445ae --- /dev/null +++ b/_sources/api/classes/column-generation/DantzigWolfeDecomposition.rst.txt @@ -0,0 +1,9 @@ +DantzigWolfeDecomposition +========================= + +.. hint:: + + This page documents on the `DantzigWolfeDecomposition` optimizer factory. Note that there are also + :ref:`Dantzig-Wolfe Decomposition tutorials `. + +.. doxygenclass:: idol::DantzigWolfeDecomposition diff --git a/_sources/api/classes/column-generation/FarkasPricing.rst.txt b/_sources/api/classes/column-generation/FarkasPricing.rst.txt new file mode 100644 index 00000000..1de6106c --- /dev/null +++ b/_sources/api/classes/column-generation/FarkasPricing.rst.txt @@ -0,0 +1,4 @@ +DantzigWolfe::FarkasPricing +=========================== + +.. doxygenclass:: idol::DantzigWolfe::FarkasPricing diff --git a/_sources/api/classes/column-generation/IntegerMaster.rst.txt b/_sources/api/classes/column-generation/IntegerMaster.rst.txt new file mode 100644 index 00000000..caa0f997 --- /dev/null +++ b/_sources/api/classes/column-generation/IntegerMaster.rst.txt @@ -0,0 +1,9 @@ +Heuristics::IntegerMaster +========================= + +.. warning:: + + This heuristic can only be used with a :code:`BranchAndBound` optimizer in which nodes are solved by + :code:`DantzigWolfeDecomposition`. + +.. doxygenclass:: idol::Heuristics::IntegerMaster diff --git a/_sources/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.rst.txt b/_sources/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.rst.txt new file mode 100644 index 00000000..5fb77aee --- /dev/null +++ b/_sources/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.rst.txt @@ -0,0 +1,4 @@ +Optimizers::DantzigWolfeDecomposition +===================================== + +.. doxygenclass:: idol::Optimizers::DantzigWolfeDecomposition diff --git a/_sources/api/classes/column-generation/index.rst.txt b/_sources/api/classes/column-generation/index.rst.txt new file mode 100644 index 00000000..dca08d98 --- /dev/null +++ b/_sources/api/classes/column-generation/index.rst.txt @@ -0,0 +1,10 @@ +Column Generation Algorithm +=========================== + +.. toctree:: + :maxdepth: 1 + :glob: + + * + stabilization/index + diff --git a/_sources/api/classes/column-generation/stabilization/Neame.rst.txt b/_sources/api/classes/column-generation/stabilization/Neame.rst.txt new file mode 100644 index 00000000..ed2377a2 --- /dev/null +++ b/_sources/api/classes/column-generation/stabilization/Neame.rst.txt @@ -0,0 +1,4 @@ +DantzigWolfe::Neame +=================== + +.. doxygenclass:: idol::DantzigWolfe::Neame diff --git a/_sources/api/classes/column-generation/stabilization/Wentges.rst.txt b/_sources/api/classes/column-generation/stabilization/Wentges.rst.txt new file mode 100644 index 00000000..1303efa0 --- /dev/null +++ b/_sources/api/classes/column-generation/stabilization/Wentges.rst.txt @@ -0,0 +1,4 @@ +DantzigWolfe::Wentges +===================== + +.. doxygenclass:: idol::DantzigWolfe::Wentges diff --git a/_sources/api/classes/column-generation/stabilization/index.rst.txt b/_sources/api/classes/column-generation/stabilization/index.rst.txt new file mode 100644 index 00000000..25288e1e --- /dev/null +++ b/_sources/api/classes/column-generation/stabilization/index.rst.txt @@ -0,0 +1,8 @@ +Stabilization +============= + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/_sources/api/classes/common/Annotation.rst.txt b/_sources/api/classes/common/Annotation.rst.txt new file mode 100644 index 00000000..a81f38fd --- /dev/null +++ b/_sources/api/classes/common/Annotation.rst.txt @@ -0,0 +1,27 @@ +Annotation +========== + +Annotations are additional information associated to an optimization object (e.g., a constraint or a variable). +The Annotation class takes two template arguments: an optimization object type and a value type. For instance, we +can create an annotation for constraints of type :code:`unsigned int` as follows. + +.. code:: cpp + + Env env; + + const unsigned int default_value = 0; + + Annotation annotation(env, "my_annotation", default_value); + +Note that annotations are global, i.e., they do not relate to a given optimization model and can, therefore, be accessed +anywhere in the code. Thus, given a constraint called :code:`constraint`, the value of the annotation can be accessed +by calling the :code:`Ctr::get` method. + +.. code:: cpp + + std::cout << "My annotation is " << constraint.get(annotation) << std::endl; // "0", i.e., the default_value value + +Annotations are, in particular, used to give decomposition instructions to idol when designing a Branch-and-Price algorithm. +To learn more, check our `Branch-and-Price tutorials `_. + +.. doxygenclass:: idol::Annotation diff --git a/_sources/api/classes/common/Column.rst.txt b/_sources/api/classes/common/Column.rst.txt new file mode 100644 index 00000000..4f16f907 --- /dev/null +++ b/_sources/api/classes/common/Column.rst.txt @@ -0,0 +1,6 @@ +.. _api_Column: + +Column +====== + +.. doxygenclass:: idol::Column diff --git a/_sources/api/classes/common/Constant.rst.txt b/_sources/api/classes/common/Constant.rst.txt new file mode 100644 index 00000000..910e997b --- /dev/null +++ b/_sources/api/classes/common/Constant.rst.txt @@ -0,0 +1,6 @@ +.. _api_Constant: + +Constant +======== + +.. doxygenclass:: idol::Constant diff --git a/_sources/api/classes/common/Ctr.rst.txt b/_sources/api/classes/common/Ctr.rst.txt new file mode 100644 index 00000000..483b7feb --- /dev/null +++ b/_sources/api/classes/common/Ctr.rst.txt @@ -0,0 +1,6 @@ +.. _api_Ctr: + +Ctr +=== + +.. doxygenclass:: idol::Ctr diff --git a/_sources/api/classes/common/CtrType.rst.txt b/_sources/api/classes/common/CtrType.rst.txt new file mode 100644 index 00000000..ab331e89 --- /dev/null +++ b/_sources/api/classes/common/CtrType.rst.txt @@ -0,0 +1,6 @@ +.. _api_CtrType: + +CtrType +======= + +.. doxygenenum:: idol::CtrType diff --git a/_sources/api/classes/common/Env.rst.txt b/_sources/api/classes/common/Env.rst.txt new file mode 100644 index 00000000..1eee279a --- /dev/null +++ b/_sources/api/classes/common/Env.rst.txt @@ -0,0 +1,4 @@ +Env +=== + +.. doxygenclass:: idol::Env diff --git a/_sources/api/classes/common/Expr.rst.txt b/_sources/api/classes/common/Expr.rst.txt new file mode 100644 index 00000000..89fb9869 --- /dev/null +++ b/_sources/api/classes/common/Expr.rst.txt @@ -0,0 +1,6 @@ +.. _api_Expr: + +Expr +==== + +.. doxygenclass:: idol::Expr diff --git a/_sources/api/classes/common/LinExpr.rst.txt b/_sources/api/classes/common/LinExpr.rst.txt new file mode 100644 index 00000000..4068df68 --- /dev/null +++ b/_sources/api/classes/common/LinExpr.rst.txt @@ -0,0 +1,22 @@ +LinExpr +======= + +This class is used to represent linear expressions in the modeling interface of idol. + +It consists in a set of linear terms which represent products of keys (typically, variables) and scalars. + +.. admonition:: Example + + In this example, we create a linear expression representing the following linear expression. + + .. math:: + + 3 x_0 + 2 x_1 + + .. code-block:: cpp + + auto x = model.add_vars(Dim<1>(2), 0, Inf, Continuous, "x"); + + LinExpr lin_expr = 3 * x[0] + 2 * x[1]; + +.. doxygenclass:: idol::LinExpr diff --git a/_sources/api/classes/common/Model.rst.txt b/_sources/api/classes/common/Model.rst.txt new file mode 100644 index 00000000..e02e8fac --- /dev/null +++ b/_sources/api/classes/common/Model.rst.txt @@ -0,0 +1,55 @@ +.. _api_model: + +Model +===== + +The Model class is probably the most central of idol. It is used to represent a mathematical optimization problem of the +following general form. + +.. math:: + + \begin{array}{lll} + \textrm{minimize } & \displaystyle \sum_{j=1}^n a_{0j}x_j + \sum_{j=1}^n\sum_{k=1}^n q_{jk}^0x_jx_k + b_0\\ + \textrm{subject to } & \displaystyle \sum_{j=1}^n a_{ij}x_j + \sum_{j=1}^n\sum_{k=1}^n q^i_{jk}x_jx_k \le b_i & i=1,...,m \\ + & l_j \le x_j \le u_j & j=1,...,m \\ + & x_j\in\mathbb Z & j\in J_I, + \end{array} + +Here, :math:`x_1, ..., x_n` are the decision variables with bounds :math:`[l_1,u_1],...,[l_n,u_n]` (possibly, +:math:`l_j = -\infty` or :math:`u_j = +\infty`). Note that some variables have integrality requirements (i.e., those whose +indices are in :math:`J_I`). Other entities are input parameters of the problem and must typically have real values +(e.g., :math:`c_j, a_{ij}, q_{jk}^i` and :math:`b_i\in\mathbb R`). Alternatively, optimization problems can also be maximization +problems. + +.. admonition:: Example: + + Here is a short example which builds and solves the following optimization problem. + + .. math:: + + \begin{array}{ll} + \textrm{minimize } & -x_0 - 1.5 x_1 + 3 \\ + \textrm{subject to } & x_0 + 2 x_1 \le 1.5 \\ + & 0 \le x_0 \le 1 \\ + & 0 \le x_1 \le 1 + \end{array} + + .. code-block:: cpp + + Env env; + + Model model(env); + + auto x = model.add_vars(Dim<1>(2), 0, 1, Continuous, "x"); + + auto c = model.add_ctr(x[0] + 2 * x[1] <= 1.5); + + model.set_obj_expr(-x[0] - 1.5 * x[1] + 3); + + model.use(Gurobi()); + + model.optimize(); + + std::cout << "Best obj = " << model.get_best_obj() << std::endl; + +.. doxygenclass:: idol::Model diff --git a/_sources/api/classes/common/Param.rst.txt b/_sources/api/classes/common/Param.rst.txt new file mode 100644 index 00000000..1684f2f3 --- /dev/null +++ b/_sources/api/classes/common/Param.rst.txt @@ -0,0 +1,6 @@ +.. _api_Param: + +Param +===== + +.. doxygenclass:: idol::Param diff --git a/_sources/api/classes/common/QuadExpr.rst.txt b/_sources/api/classes/common/QuadExpr.rst.txt new file mode 100644 index 00000000..ba0e9a74 --- /dev/null +++ b/_sources/api/classes/common/QuadExpr.rst.txt @@ -0,0 +1,4 @@ +QuadExpr +======== + +.. doxygenclass:: idol::QuadExpr diff --git a/_sources/api/classes/common/Row.rst.txt b/_sources/api/classes/common/Row.rst.txt new file mode 100644 index 00000000..c3f40773 --- /dev/null +++ b/_sources/api/classes/common/Row.rst.txt @@ -0,0 +1,6 @@ +.. _api_Row: + +Row +=== + +.. doxygenclass:: idol::Row diff --git a/_sources/api/classes/common/SolutionDual.rst.txt b/_sources/api/classes/common/SolutionDual.rst.txt new file mode 100644 index 00000000..b9b94f30 --- /dev/null +++ b/_sources/api/classes/common/SolutionDual.rst.txt @@ -0,0 +1,6 @@ +.. _api_Solution_Dual: + +Solution::Dual +============== + +.. doxygenclass:: idol::Solution::Dual diff --git a/_sources/api/classes/common/SolutionPrimal.rst.txt b/_sources/api/classes/common/SolutionPrimal.rst.txt new file mode 100644 index 00000000..76334ab7 --- /dev/null +++ b/_sources/api/classes/common/SolutionPrimal.rst.txt @@ -0,0 +1,6 @@ +.. _api_Solution_Primal: + +Solution::Primal +================ + +.. doxygenclass:: idol::Solution::Primal diff --git a/_sources/api/classes/common/TempCtr.rst.txt b/_sources/api/classes/common/TempCtr.rst.txt new file mode 100644 index 00000000..ee27bcce --- /dev/null +++ b/_sources/api/classes/common/TempCtr.rst.txt @@ -0,0 +1,6 @@ +.. _api_TempCtr: + +TempCtr +======= + +.. doxygenclass:: idol::TempCtr diff --git a/_sources/api/classes/common/TempVar.rst.txt b/_sources/api/classes/common/TempVar.rst.txt new file mode 100644 index 00000000..a7ed4792 --- /dev/null +++ b/_sources/api/classes/common/TempVar.rst.txt @@ -0,0 +1,6 @@ +.. _api_mip_variables_TempVar: + +TempVar +======= + +.. doxygenclass:: idol::TempVar diff --git a/_sources/api/classes/common/Var.rst.txt b/_sources/api/classes/common/Var.rst.txt new file mode 100644 index 00000000..f1f34999 --- /dev/null +++ b/_sources/api/classes/common/Var.rst.txt @@ -0,0 +1,6 @@ +.. _api_variables_Var: + +Var +=== + +.. doxygenclass:: idol::Var diff --git a/_sources/api/classes/common/VarType.rst.txt b/_sources/api/classes/common/VarType.rst.txt new file mode 100644 index 00000000..75c7d75e --- /dev/null +++ b/_sources/api/classes/common/VarType.rst.txt @@ -0,0 +1,6 @@ +.. _api_variables_VarType: + +VarType +======= + +.. doxygenenum:: idol::VarType diff --git a/_sources/api/classes/common/index.rst.txt b/_sources/api/classes/common/index.rst.txt new file mode 100644 index 00000000..2940c6bf --- /dev/null +++ b/_sources/api/classes/common/index.rst.txt @@ -0,0 +1,12 @@ +.. _classes_common: + +Common +====== + +.. toctree:: + :maxdepth: 1 + :glob: + + * + + diff --git a/_sources/api/classes/external-bilevel/MibS.rst.txt b/_sources/api/classes/external-bilevel/MibS.rst.txt new file mode 100644 index 00000000..8e17661d --- /dev/null +++ b/_sources/api/classes/external-bilevel/MibS.rst.txt @@ -0,0 +1,4 @@ +Bilevel::Mibs +============= + +.. doxygenclass:: idol::Bilevel::MibS diff --git a/_sources/api/classes/external-bilevel/Optimizers_MibS.rst.txt b/_sources/api/classes/external-bilevel/Optimizers_MibS.rst.txt new file mode 100644 index 00000000..286a87fe --- /dev/null +++ b/_sources/api/classes/external-bilevel/Optimizers_MibS.rst.txt @@ -0,0 +1,4 @@ +Optimizers::Bilevel::Mibs +========================= + +.. doxygenclass:: idol::Optimizers::Bilevel::MibS diff --git a/_sources/api/classes/external-bilevel/index.rst.txt b/_sources/api/classes/external-bilevel/index.rst.txt new file mode 100644 index 00000000..b2e2114f --- /dev/null +++ b/_sources/api/classes/external-bilevel/index.rst.txt @@ -0,0 +1,8 @@ +External Bilevel Solvers +======================== + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/_sources/api/classes/external-mip/GLPK.rst.txt b/_sources/api/classes/external-mip/GLPK.rst.txt new file mode 100644 index 00000000..24b1b493 --- /dev/null +++ b/_sources/api/classes/external-mip/GLPK.rst.txt @@ -0,0 +1,4 @@ +GLPK +==== + +.. doxygenclass:: idol::GLPK diff --git a/_sources/api/classes/external-mip/Gurobi.rst.txt b/_sources/api/classes/external-mip/Gurobi.rst.txt new file mode 100644 index 00000000..06c2f356 --- /dev/null +++ b/_sources/api/classes/external-mip/Gurobi.rst.txt @@ -0,0 +1,4 @@ +Gurobi +====== + +.. doxygenclass:: idol::Gurobi diff --git a/_sources/api/classes/external-mip/HiGHS.rst.txt b/_sources/api/classes/external-mip/HiGHS.rst.txt new file mode 100644 index 00000000..630ba8b7 --- /dev/null +++ b/_sources/api/classes/external-mip/HiGHS.rst.txt @@ -0,0 +1,4 @@ +HiGHS +===== + +.. doxygenclass:: idol::HiGHS diff --git a/_sources/api/classes/external-mip/Mosek.rst.txt b/_sources/api/classes/external-mip/Mosek.rst.txt new file mode 100644 index 00000000..ce11678d --- /dev/null +++ b/_sources/api/classes/external-mip/Mosek.rst.txt @@ -0,0 +1,4 @@ +Mosek +===== + +.. doxygenclass:: idol::Mosek diff --git a/_sources/api/classes/external-mip/Optimizers_GLPK.rst.txt b/_sources/api/classes/external-mip/Optimizers_GLPK.rst.txt new file mode 100644 index 00000000..e751bad2 --- /dev/null +++ b/_sources/api/classes/external-mip/Optimizers_GLPK.rst.txt @@ -0,0 +1,4 @@ +Optimizers::GLPK +================ + +.. doxygenclass:: idol::Optimizers::GLPK diff --git a/_sources/api/classes/external-mip/Optimizers_Gurobi.rst.txt b/_sources/api/classes/external-mip/Optimizers_Gurobi.rst.txt new file mode 100644 index 00000000..85ba65fa --- /dev/null +++ b/_sources/api/classes/external-mip/Optimizers_Gurobi.rst.txt @@ -0,0 +1,4 @@ +Optimizers::Gurobi +================== + +.. doxygenclass:: idol::Optimizers::Gurobi diff --git a/_sources/api/classes/external-mip/Optimizers_HiGHS.rst.txt b/_sources/api/classes/external-mip/Optimizers_HiGHS.rst.txt new file mode 100644 index 00000000..155705fa --- /dev/null +++ b/_sources/api/classes/external-mip/Optimizers_HiGHS.rst.txt @@ -0,0 +1,4 @@ +Optimizers::HiGHS +================= + +.. doxygenclass:: idol::Optimizers::HiGHS diff --git a/_sources/api/classes/external-mip/Optimizers_Mosek.rst.txt b/_sources/api/classes/external-mip/Optimizers_Mosek.rst.txt new file mode 100644 index 00000000..3dc87036 --- /dev/null +++ b/_sources/api/classes/external-mip/Optimizers_Mosek.rst.txt @@ -0,0 +1,4 @@ +Optimizers::Mosek +================= + +.. doxygenclass:: idol::Optimizers::Mosek diff --git a/_sources/api/classes/external-mip/Osi/OsiCbc.rst.txt b/_sources/api/classes/external-mip/Osi/OsiCbc.rst.txt new file mode 100644 index 00000000..8a98a4c5 --- /dev/null +++ b/_sources/api/classes/external-mip/Osi/OsiCbc.rst.txt @@ -0,0 +1,4 @@ +OsiCbc +====== + +.. doxygenclass:: idol::OsiCbc diff --git a/_sources/api/classes/external-mip/Osi/OsiClp.rst.txt b/_sources/api/classes/external-mip/Osi/OsiClp.rst.txt new file mode 100644 index 00000000..8b924606 --- /dev/null +++ b/_sources/api/classes/external-mip/Osi/OsiClp.rst.txt @@ -0,0 +1,4 @@ +OsiClp +====== + +.. doxygenclass:: idol::OsiClp diff --git a/_sources/api/classes/external-mip/Osi/OsiCplex.rst.txt b/_sources/api/classes/external-mip/Osi/OsiCplex.rst.txt new file mode 100644 index 00000000..927ddf8e --- /dev/null +++ b/_sources/api/classes/external-mip/Osi/OsiCplex.rst.txt @@ -0,0 +1,4 @@ +OsiCplex +======== + +.. doxygenclass:: idol::OsiCplex diff --git a/_sources/api/classes/external-mip/Osi/OsiSymphony.rst.txt b/_sources/api/classes/external-mip/Osi/OsiSymphony.rst.txt new file mode 100644 index 00000000..928f06a5 --- /dev/null +++ b/_sources/api/classes/external-mip/Osi/OsiSymphony.rst.txt @@ -0,0 +1,4 @@ +OsiSymphony +=========== + +.. doxygenclass:: idol::OsiSymphony diff --git a/_sources/api/classes/external-mip/Osi/index.rst.txt b/_sources/api/classes/external-mip/Osi/index.rst.txt new file mode 100644 index 00000000..a4bb869a --- /dev/null +++ b/_sources/api/classes/external-mip/Osi/index.rst.txt @@ -0,0 +1,34 @@ +COIN-OR/Osi (Cplex, Xpress, Cbc, ...) +===================================== + +Idol can be linked with the `coin-or/Osi `_ library (*Open Solver Interface*) to use any solver having an osi interface. + +.. hint:: + + At the moment, only Cplex has been properly tested and can be used as follows. + + .. code-block:: + + model.use(OsiCplex()); + +.. hint:: + + Note that Osi can also be used with *any* Osi object by directly passing the interface as an argument. + + .. code-block:: + + model.use(Osi(OsiCpxSolverInterface())); // same as: model.use(OsiCplex()); + +.. warning:: + + Though idol has dedicated optimizers for Symphony, Cbc and Clp, it seems that the osi interface for these solvers do not + fully fulfill the interface requirement to have a stable usage. + +.. toctree:: + :maxdepth: 1 + :glob: + + * + +.. doxygenclass:: idol::Osi + diff --git a/_sources/api/classes/external-mip/index.rst.txt b/_sources/api/classes/external-mip/index.rst.txt new file mode 100644 index 00000000..6fb86245 --- /dev/null +++ b/_sources/api/classes/external-mip/index.rst.txt @@ -0,0 +1,9 @@ +External MIP solvers +==================== + +.. toctree:: + :maxdepth: 2 + :glob: + + * + Osi/index diff --git a/_sources/api/classes/index.rst.txt b/_sources/api/classes/index.rst.txt new file mode 100644 index 00000000..45ca55f1 --- /dev/null +++ b/_sources/api/classes/index.rst.txt @@ -0,0 +1,36 @@ +.. _classes: + +Class List +========== + +Mixed-Integer Programming +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 2 + :glob: + + common/index + external-mip/index + universal-callbacks/index + branch-and-bound/index + column-generation/index + +Bilevel Optimization +^^^^^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 2 + :glob: + + external-bilevel/index + +Robust Optimization +^^^^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 2 + :glob: + + column-and-constraint-generation/index + diff --git a/_sources/api/classes/universal-callbacks/Callback.rst.txt b/_sources/api/classes/universal-callbacks/Callback.rst.txt new file mode 100644 index 00000000..7f3c2f3a --- /dev/null +++ b/_sources/api/classes/universal-callbacks/Callback.rst.txt @@ -0,0 +1,83 @@ +Callback +======== + +Callbacks are user-defined functions which are invoked during the execution of branch-and-bound algorithms at certain +key steps of the procedure. These key points are called :ref:`events ` in idol. +Callback functions can be used to monitor the algorithm's progress, control its behavior, or perform additional processing. + +UserCutCallback and LazyCutCallback +----------------------------------- + +A common use of callbacks is to implement custom cut generation procedures at each node of the branch-and-bound tree. Note that +idol offers out-of-the-box callback routines for cut separation. Namely, :ref:`UserCutCallback ` +and :ref:`LazyCutCallback `. Yet, it is totally possible to define your own cut generation procedure +by using the ``Callback::add_user_cut`` and ``Callback::add_lazy_cut`` methods inside your callback. + +In a nutshell, :ref:`UserCutCallback ` (or, similarly, ``Callback::add_user_cut``) are intended for +cuts which have a potential to improve the quality of the relaxation but whose presence in the model is not necessary for the +branch-and-bound to converge to an optimal solution. :ref:`UserCutCallback ` callbacks are called when +a non-valid solution has been found. + +:ref:`LazyCutCallback ` (or, similarly, ``Callback::add_lazy_cut``), +instead, are intended to generate constraints which should be part of the model but which were omitted in the model for some reason. +A typical reason for omitting constraints in a model's definition is the large number of such constraints. +:ref:`LazyCutCallback ` callbacks are called when a valid solution has been found. + +Creating your own callback +-------------------------- + +If you want to create your own callback, you should first create a new class which inherits the ``Callback`` class and +overrides the ``operator()(CallbackEvent)`` method. + +Note that callbacks cannot be given "as-is" to an optimizer but must be passed through a ``CallbackFactory``. A callback +factory is a class whose role is to create a new callback object whenever it is needed. Every callback factories must be +a child (or little child) of the ``CallbackFactory`` class. + +.. admonition:: Example + + We now give an example of callback which prints out every valid solution found. + + .. code-block:: + + class MyCallback : public CallbackFactory { + public: + + class Strategy { // Real callback implementation + protected: + void operator()(CallbackEvent t_event) { + + if (t_event != IncumbentSolution) { + return; + } + + std::cout << primal_solution() << std::endl; + } + } + + Callback* operator()() { // Creates a new callback object + return new Strategy(); + } + + CallbackFactory* clone() const { // Creates a copy of the callback factory + return new MyCallback(*this); + } + + } + + Later, it is then possible to use this callback in compliant optimizers like :ref:`Gurobi ` or :ref:`BranchAndBound `. + + .. code-block:: + + model.use( + Gurobi().with_callback(MyCallback(); + ); + + model.optimize(); + +.. hint:: + + Note that there also exists more advanced callbacks which are specific to idol's branch-and-bound implementation. + For these advanced feature, see :ref:`BranchAndBoundCallback `. + +.. doxygenclass:: idol::Callback + :protected-members: diff --git a/_sources/api/classes/universal-callbacks/CallbackFactory.rst.txt b/_sources/api/classes/universal-callbacks/CallbackFactory.rst.txt new file mode 100644 index 00000000..4c4689b5 --- /dev/null +++ b/_sources/api/classes/universal-callbacks/CallbackFactory.rst.txt @@ -0,0 +1,5 @@ +CallbackFactory +=============== + +.. doxygenclass:: idol::CallbackFactory + :protected-members: diff --git a/_sources/api/classes/universal-callbacks/LazyCutCallback.rst.txt b/_sources/api/classes/universal-callbacks/LazyCutCallback.rst.txt new file mode 100644 index 00000000..f0500634 --- /dev/null +++ b/_sources/api/classes/universal-callbacks/LazyCutCallback.rst.txt @@ -0,0 +1,58 @@ +LazyCutCallback +=============== + +Lazy cuts are essentially constraints which are part of an optimization model but which have been omitted in the current +definition of the model. Lazy cuts typically arise in models with a large number of constraints. Instead of enumerating +then all, it may be judicious to omit some of them to get a smaller optimization model. Then, the returned solution is +checked for feasibility against the whole set of constraints. If a violated constraint is identified, we add the +constraint to the model and resolve. If not, then all the constraints are satisfied and the solution is optimal for the +original model in which all constraints materializes. + +The LazyCutCallback can be used to implement lazy cut constraint generation on the fly, during the optimization process. + +Consider the following optimization problem: + +.. math:: + + \begin{align} + \min_x \ & c^\top x \\ + \text{s.t.} \ & x\in X, \\ + & \xi^\top x \le \xi_0 \quad (\xi_0,\xi) \in \Xi, + \end{align} + +in which assume that :math:`|\Xi|` is large (potentially infinite). The idea is to start by solving the following +relaxed master problem in which constraints associated to :math:`(\xi_0,\xi)` have been omitted. + +.. math:: + + \begin{align} + \min_x \ & c^\top x \\ + \text{s.t.} \ & x\in X. + \end{align} + +If we assume that this problem is feasible and bounded, we can denote by :math:`x^*` a solution of this problem. Then, +we search for a violated constraint ":math:`\xi^\top x \le \xi_0`" for some :math:`(\xi_0,\xi)\in\Xi`. Observe that +a constraint is violated if, and only if, the following holds: + +.. math:: + + \left(\exists(\xi_0,\xi)\in\Xi, \ \xi^\top x^* > \xi_0\right) + \Leftrightarrow + \left(\max_{(\xi_0,\xi)\in\Xi} \xi_0 - \xi^\top x^* < 0\right). + +Thus, the LazyCutCallback automatically solve the optimization problem on the right handside and checks for its value. +A new constraint is added if, and only if, + +.. math:: + \max_{\xi\in\Xi} \xi_0 - \xi^\top x^* < -\varepsilon, + +with :math:`\varepsilon` a given tolerance (by default, :code:`Tolerance::Feasibility`). + + +.. hint:: + + You may also be interested by a tutorial showing how you can implement a simple Benders Decomposition using lazy + cuts. :ref:`See Benders Decomposition tutorial `. + + +.. doxygenclass:: idol::LazyCutCallback \ No newline at end of file diff --git a/_sources/api/classes/universal-callbacks/UserCutCallback.rst.txt b/_sources/api/classes/universal-callbacks/UserCutCallback.rst.txt new file mode 100644 index 00000000..e154b017 --- /dev/null +++ b/_sources/api/classes/universal-callbacks/UserCutCallback.rst.txt @@ -0,0 +1,4 @@ +UserCutCallback +=============== + +.. doxygenclass:: idol::UserCutCallback \ No newline at end of file diff --git a/_sources/api/classes/universal-callbacks/index.rst.txt b/_sources/api/classes/universal-callbacks/index.rst.txt new file mode 100644 index 00000000..e97ddd7e --- /dev/null +++ b/_sources/api/classes/universal-callbacks/index.rst.txt @@ -0,0 +1,8 @@ +Universal Callbacks +=================== + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/_sources/api/constants/index.rst.txt b/_sources/api/constants/index.rst.txt new file mode 100644 index 00000000..b949e0b4 --- /dev/null +++ b/_sources/api/constants/index.rst.txt @@ -0,0 +1,15 @@ +.. _constants: + +Constants +========= + +Common +^^^^^^ + +.. toctree:: + :maxdepth: 1 + :glob: + + tolerances + + diff --git a/_sources/api/constants/tolerances.rst.txt b/_sources/api/constants/tolerances.rst.txt new file mode 100644 index 00000000..1e97ee68 --- /dev/null +++ b/_sources/api/constants/tolerances.rst.txt @@ -0,0 +1,4 @@ +Tolerances and Numerics +======================= + +.. doxygenfile:: numericals.h \ No newline at end of file diff --git a/_sources/api/index.rst.txt b/_sources/api/index.rst.txt new file mode 100644 index 00000000..d0d1ccf9 --- /dev/null +++ b/_sources/api/index.rst.txt @@ -0,0 +1,11 @@ +.. _api: + +API +=== + +.. toctree:: + :maxdepth: 1 + :glob: + + classes/index + types/index diff --git a/_sources/api/types/common/VarType.rst.txt b/_sources/api/types/common/VarType.rst.txt new file mode 100644 index 00000000..75c7d75e --- /dev/null +++ b/_sources/api/types/common/VarType.rst.txt @@ -0,0 +1,6 @@ +.. _api_variables_VarType: + +VarType +======= + +.. doxygenenum:: idol::VarType diff --git a/_sources/api/types/index.rst.txt b/_sources/api/types/index.rst.txt new file mode 100644 index 00000000..5aa47dc3 --- /dev/null +++ b/_sources/api/types/index.rst.txt @@ -0,0 +1,15 @@ +.. _types: + +Type List +========= + +Common +^^^^^^ + +.. toctree:: + :maxdepth: 2 + :glob: + + common/index + + diff --git a/_sources/api/types/universal-callbacks/CallbackEvent.rst.txt b/_sources/api/types/universal-callbacks/CallbackEvent.rst.txt new file mode 100644 index 00000000..0a4f03c0 --- /dev/null +++ b/_sources/api/types/universal-callbacks/CallbackEvent.rst.txt @@ -0,0 +1,4 @@ +Events +====== + +.. doxygenenum:: idol::CallbackEvent \ No newline at end of file diff --git a/_sources/api/types/universal-callbacks/index.rst.txt b/_sources/api/types/universal-callbacks/index.rst.txt new file mode 100644 index 00000000..63f8b988 --- /dev/null +++ b/_sources/api/types/universal-callbacks/index.rst.txt @@ -0,0 +1,8 @@ +Class List +========== + +.. toctree:: + :maxdepth: 1 + :glob: + + * diff --git a/_sources/developer_guide/build-the-doc.rst.txt b/_sources/developer_guide/build-the-doc.rst.txt new file mode 100644 index 00000000..4d331aef --- /dev/null +++ b/_sources/developer_guide/build-the-doc.rst.txt @@ -0,0 +1,61 @@ +.. highlight:: sh +.. _dev_build_the_doc: + +Build the doc! +============== + +This page explains how to build the documentation on a local machine. + +Dependencies +------------ + +Description +^^^^^^^^^^^ + +The documentation is built using `doxygen`_ and a bunch of other tools, in particular: + +* `doxygen`_ the C++ documentation generator; +* `Sphinx`_ the python documentation generator; +* `sphinx-rtd-theme `_ a Sphinx theme used to render the + HTML version of the documentation; +* `sphinx-sitemap `_ a Sphinx extension + to generate multi-version and multi-language sitemaps.org compliant sitemaps for the HTML version + of a Sphinx documentation; +* `sphinx-copybutton `_ a Sphinx extension which + automatically adds buttons on code-blocks environments to copy its content; +* `Breathe`_ the Sphinx plugin for integrating doxygen outputs into Sphinx. + +For a detailed description on how these tools interact, please refer to `this article `_. + +Installation guide (Ubuntu) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:: + + sudo apt-get install doxygen # installs the last version of doxygen + + sudo apt-get install python3-sphinx # installs the last version of Sphinx + + sudo apt-get install python3-breathe # installs the last version of Breathe + + pip3 install sphinx-sitemap sphinx-rtd-theme sphinx-copybutton # installs theme and extensions + +Build instructions +------------------ + +By default, CMake automatically creates a ``doc`` target. All you have to do to build the documentation website +is to build this target. For instance, inside a ``build`` directory, the following command can be used. + +:: + + cmake .. && make doc + +Note that you do not need to use ``make`` and use the following generic command. + +:: + + cmake --build . --target doc + +.. _doxygen: https://doxygen.nl/ +.. _Sphinx: https://www.sphinx-doc.org/en/master/ +.. _Breathe: https://github.com/breathe-doc/breathe \ No newline at end of file diff --git a/_sources/developer_guide/index.rst.txt b/_sources/developer_guide/index.rst.txt new file mode 100644 index 00000000..e222b3ee --- /dev/null +++ b/_sources/developer_guide/index.rst.txt @@ -0,0 +1,11 @@ +.. _dev: + +Developer guide +=============== + +.. toctree:: + :maxdepth: 2 + :glob: + + build-the-doc + tests \ No newline at end of file diff --git a/_sources/developer_guide/tests.rst.txt b/_sources/developer_guide/tests.rst.txt new file mode 100644 index 00000000..bd9cfb10 --- /dev/null +++ b/_sources/developer_guide/tests.rst.txt @@ -0,0 +1,91 @@ +.. _tests: + +Unit and integration tests +========================== + +This page explains how to build the unit and integration tests on a local machine. + +Dependencies +------------ + +Tests are managed by the C++ unit testing framework `Catch2 `_. + +When CMake is told to create test targets, it will automatically look for an installation of Catch2 on your +machine. If it cannot be found, CMake will attempt to download Catch2 from its GitHub repository. + + +Installation guide (Ubuntu) +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: shell + + git clone https://github.com/catchorg/Catch2.git # Clone Catch2 repository + + cd Catch2 # go inside the new directory + + cmake -Bbuild -H. -DBUILD_TESTING=OFF # Create install target + + sudo cmake --build build/ --target install # Build and install + + +Build instructions +------------------ + +By default, CMake will not create test targets nor look for Catch2. To tell CMake to generate them, you +need to set the CMake option ``BUILD_TESTS`` to ``YES``. + + +.. admonition:: Example + + The following will tell CMake to create targets for tests. + + .. code-block:: + + cmake -DBUILD_TESTS=YES .. + + For instance, we can now build all the existing tests + + .. code-block:: + + make tests + + and run them. + + .. code-block:: + + ./tests/tests + +Code coverage options +--------------------- + +Code coverage is done via ``gcov``. + +If you want to active code coverage options, you shall set the CMake option ``WITH_TEST_COVERAGE`` to ``YES``. +Note that this only has an effect when ``BUILD_TESTS`` is also set to ``YES``. + +.. admonition:: Example + + The following command will tell CMake to generate targets for tests with code coverage options. + + .. code-block:: + + cmake -DBUILD_TESTS=YES -DWITH_CODE_COVERAGE=YES .. + + Then, you should build and run the tests. + + .. code-block:: + + make tests && ./tests/tests + + Once you are there, you may generate a report to a file called ``coverage.info`` by using ``gcov``. + + .. code-block:: + + lcov --directory . --capture --output-file coverage.info + +Also note that this forces ``g++`` to be used for compiling. + +.. tip:: + + Code coverage reports are also automatically generated at every push action on idol's GitHub repository and + are available on `codecov `_. diff --git a/_sources/examples/bilevel-problem.rst.txt b/_sources/examples/bilevel-problem.rst.txt new file mode 100644 index 00000000..e72f1e4a --- /dev/null +++ b/_sources/examples/bilevel-problem.rst.txt @@ -0,0 +1,5 @@ +Toy Example +=========== + +.. literalinclude:: ../../examples/bilevel.example.cpp + :language: cpp diff --git a/_sources/examples/facility-location-problem.rst.txt b/_sources/examples/facility-location-problem.rst.txt new file mode 100644 index 00000000..ca3b050d --- /dev/null +++ b/_sources/examples/facility-location-problem.rst.txt @@ -0,0 +1,6 @@ +Facility Location Problem +========================= + + +.. literalinclude:: ../../examples/facility.example.cpp + :language: cpp diff --git a/_sources/examples/generalized-assignment-problem.rst.txt b/_sources/examples/generalized-assignment-problem.rst.txt new file mode 100644 index 00000000..c4a1f82c --- /dev/null +++ b/_sources/examples/generalized-assignment-problem.rst.txt @@ -0,0 +1,5 @@ +Generalized Assignment Problem +============================== + +.. literalinclude:: ../../examples/assignment.example.cpp + :language: cpp diff --git a/_sources/examples/index.rst.txt b/_sources/examples/index.rst.txt new file mode 100644 index 00000000..d54083dc --- /dev/null +++ b/_sources/examples/index.rst.txt @@ -0,0 +1,38 @@ +.. _examples: + +Examples +======== + +Mixed-Integer Programming +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 1 + + knapsack-problem + +Branch-and-Bound +^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 1 + + facility-location-problem + +Column Generation and Branch-and-Price +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. toctree:: + :maxdepth: 1 + + generalized-assignment-problem + +Bilevel Optimization +^^^^^^^^^^^^^^^^^^^^ + + +.. toctree:: + :maxdepth: 1 + + bilevel-problem + diff --git a/_sources/examples/knapsack-problem.rst.txt b/_sources/examples/knapsack-problem.rst.txt new file mode 100644 index 00000000..d2cd0398 --- /dev/null +++ b/_sources/examples/knapsack-problem.rst.txt @@ -0,0 +1,5 @@ +Knapsack Problem +================ + +.. literalinclude:: ../../examples/knapsack.example.cpp + :language: cpp diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 00000000..15ed8b72 --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,172 @@ +.. raw:: html + +
+ +

A C++ framework for optimization and complex decision making

+ +

+ Idol is a powerful and flexible library meticulously crafted for developing new mathematical optimization algorithms. +

+ + + Get started now +   + To installation guidelines + + +
+ +What Is Idol? +------------- + +Idol is built to provide researchers with a versatile toolkit to construct, tweak, and experiment with state-of-the-art +methods. Whether you're exploring Branch-and-Price, +Benders decomposition, Column-and-Constraint generation for adjustable robust problems, +or any other cutting-edge method, idol is your trusted companion. + +Getting Started With Idol +------------------------- + +If you are new to idol, I advise you to visit our :ref:`installation guideline `. +In particular, have a look at the :ref:`local installation guideline `. +It is the easiest installation process one could think of since it automatically downloads the latest version of idol and +installs it in a local folder. It's really a mater of seconds before you can start using idol. + +.. admonition:: Example + + Idol has a user-friendly interface which should look natural to people working in optimization. For instance, + here is how one solves a Knapsack Problem using the `Gurobi `_ solver. + + .. code:: cpp + + using namespace idol; + + const unsigned int n_items = 5; + const double[] profit = { 40., 50., 100., 95., 30., }; + const double[] weight = { 2., 3.14, 1.98, 5., 3., }; + const double capacity = 10.; + + Env env; + + Model model(env); + + auto x = model.add_vars(Dim<1>(n_items), 0., 1., Binary, "x"); + + model.add_ctr(idol_Sum(j, Range(n_items), weight[j] * x[j]) <= capacity); + + model.set_obj_expr(idol_Sum(j, Range(n_items), -profit[j] * x[j]); + + model.use(Gurobi()); + + model.optimize(); + +If you want to learn more about idol's modeling interface, be sure to visit :ref:`our introductory tutorials `. + +If you are looking for a Branch-and-Price tutorial, directly got to :ref:`our Dantzig-Wolfe Decomposition tutorials `. + +Is This a MIP Solver? +--------------------- + +The idol library is not a MIP solver in itself. Indeed, it typically needs to call external +solvers (e.g., `GLPK `_ or `Gurobi `_) +as a sub-routine of more complex algorithmic schemes (e.g., Column Generation). +The idea is to work hand in hand with existing fine-tuned and well-engineered optimization +software to enhance their possibilities to solve, e.g., larger problems or problems which +cannot directly be modeled as reasonable MIPs (e.g., :math:`\Sigma_i^P`-hard problems). + +Typically, each subproblem is then solved by an external and dedicated solver. +Currently, the following external solvers can be interfaced with through idol: + +* `Gurobi `_ +* `Mosek `_ +* `GLPK `_ +* `HiGHS `_ + +Current Features +---------------- + +.. warning:: + + Handling quadratic expressions is an experimental feature and extreme care should be taken if used. + +Interfacing External Optimization Solvers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The idol library can be used to interface external solvers like `GLPK `_ +or `Gurobi `_ to solve standalone LPs, QPs, MILPs, MIQPs, and MIQCQPs. + +It offers a unified and common +interface to every solver including standard parameters and branch-and-bound callbacks. +Thus, you can write your code once and test it with different solvers! + +It also provides classical callbacks one would need to implement when solving hard problems like generating user cuts +or lazy constraints. Simply give idol the separation model and let it handle the rest. + +Branch-and-Bound (B&B) Algorithms +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Idol can be used to create a custom branch-and-bound scheme very easily in which virtually anything can be tweaked. + +* **Node-agnostic:** The B&B algorithm can work with any node type as long as the user properly + defines how nodes must be updated. A default node type is already implemented for classical variable branching. This + node type can also be inherited, e.g., to enrich the information carried out from each parent node to its children. +* **Customizable branching rules:** The default branching rules include: most infeasible, least infeasible, first + infeasible found, uniformly random, strong branching (with phases) and pseudo-cost branching. The user can create its + own branching rule if needed. +* **Customizable node selection rules:** The default node selection rules include: best estimate, best bound, worst bound, + depth first, breadth first. The user can create its own node selection rule if needed. +* **Callbacks:** The user can specify its own callback to locally or globally modify a node's problem, submit heuristic + solutions, or influence the execution of the overall tree search. +* **Sub-tree exploration**. The B&B algorithm supports sub-trees exploration to reach valid solutions to the original + problem as quick as possible. + +**Features to come/desired features** + +* *Parallelization of the algorithm*. +* *New branching rules*: reliability branching. +* *Default cutting planes*. + +Column Generation (CG) and Dantzig-Wolfe Decomposition +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Idol can be used to build and custom CG algorithms with the following features. + +* **Infeasible master problem procedures:** Idol can handle infeasible master problems by resorting to Farkas pricing or + by adding artificial variables to the original problem (if this fails, idol will automatically switch to pure phase I + so as to exactly prove infeasibility). +* **Automatic pool clean up:** If the master problem contains too many variables, they can be automatically removed. + This behavior is controlled by user parameters. +* **Stabilization via dual price smoothing:** The CG procedure can be stabilized using dual price smoothing controlled + by user inputs. Default implementation include `Wentges (1997) `_ and + `Neame (2000) `_. +* **Parallel pricing:** Each pricing problem can be solved in parallel. +* **Nested column generation:** A key idea of idol is that every optimizer is seen as a black-box to solve a given optimization model. + As such, a CG algorithm can easily be "plugged in" any algorithmic phase. For instance, solving the pricing of + a CG algorithm can be done by yet another CG algorithm. + +**Features to come/desired features** + +* *Handling identical sub-systems*. + +Benchmark +--------- + +* A benchmark for the **Branch-and-Price** implementation is available for the `Generalized Assignment Problem `_. +* A benchmark for the **Branch-and-Bound** implementation is available for the `Knapsack Problem `_ + +.. image:: https://raw.githubusercontent.com/hlefebvr/idol-benchmark-gap/gh-pages/profile.png + +This is a performance profile computed according to :cite:`Dolan2002`. + +Table of contents +----------------- + +.. toctree:: + :maxdepth: 2 + + installation/index + tutorials/index + api/index + examples/index + developer_guide/index + references diff --git a/_sources/installation/global_installation.rst.txt b/_sources/installation/global_installation.rst.txt new file mode 100644 index 00000000..8736792f --- /dev/null +++ b/_sources/installation/global_installation.rst.txt @@ -0,0 +1,96 @@ +.. _basics_installation: + +.. role:: bash(code) + :language: bash + +Global Installation +=================== + +The installation process is managed by the CMake build system. You will therefore need to have it +installed on your computer (at least version 3.22 is required but it may work with earlier versions). + +.. hint:: + + If you simply want to "try out" idol, we advise you to opt for a :ref:`local installation `. + +Creating the :bash:`install` Target +----------------------------------- + +The first step is to create a :bash:`build` directory. +This is where the library will be compiled before being installed (i.e., copied) on your system. + +.. code-block:: bash + + mkdir build + cd build + +Then, you should call CMake in order to create some targets (in particular, the :bash:`idol` and the :bash:`install` target). +To do so, we recommend you to specify some options in order to link with external solvers that you may have +already installed on your computer. + +.. attention:: + + By default, (i.e., if no options are given to CMake) idol will not be linked with any external solver. + See the last section on this page for more details. + +.. code-block:: bash + + cmake .. + +.. admonition:: Example for Gurobi + + Here is an example of possible CMake command which will create the necessary targets for installing idol with Gurobi. + + .. code-block:: bash + + cmake -DUSE_GUROBI=YES .. + + Note that this example assumes that your environment variable :bash:`GUROBI_HOME` has been correctly configured + (see `this official Gurobi page `_). + +Building +-------- + +Now that targets have been created, we can build idol by running the following command. + +.. code-block:: bash + + make idol + +This will compile the idol C++ library and make it ready to be installed (i.e., copied) on your computer. + +Installing +---------- + +If you want to install idol on your computer, run the following command. + +.. code-block:: bash + + sudo make install + +.. hint:: + + Here, you need superuser rights in order to install idol globally. If you want to install idol on a specific folder, + you may also use the :bash:`CMAKE_INSTALL_PREFIX` CMake option to change the destination folder. + + .. code-block:: bash + + cmake -CMAKE_INSTALL_PREFIX=/my/custom/installation/folder .. + make install + +Linking with External Solvers +------------------------------ + +To link idol with external solvers, specific options need to be passed to CMake. +A detailed list of such options can be found on :ref:`this page `. + +.. hint:: + + Here is a quick guide on how to pass options to CMake. Say you want + to pass the option :bash:`MY_OPTION` to CMake with the value :bash:`MY_VALUE`. Then, you should run the following + command (inside :bash:`build/`). + + .. code-block:: bash + + cmake -DMY_OPTION=MY_VALUE .. + diff --git a/_sources/installation/index.rst.txt b/_sources/installation/index.rst.txt new file mode 100644 index 00000000..a602fb50 --- /dev/null +++ b/_sources/installation/index.rst.txt @@ -0,0 +1,28 @@ +.. _installation: + +Installation +============ + +Welcome to idol! You are here on the installation guidelines. + +Installation Types +------------------ + +There are two ways of installing idol: + +* :ref:`A local installation ` lets CMake automatically download and manage idol's installation on a sub-folder of your + CMake project. +* :ref:`A global installation ` installs idol globally on your computer (e.g., in `/usr/lib`). + +Table of Contents +----------------- + +.. toctree:: + :maxdepth: 1 + :glob: + + local_installation + global_installation + linking + options + mosek-and-socp diff --git a/_sources/installation/linking.rst.txt b/_sources/installation/linking.rst.txt new file mode 100644 index 00000000..1376b2de --- /dev/null +++ b/_sources/installation/linking.rst.txt @@ -0,0 +1,48 @@ +.. _linking: + +.. role:: bash(code) + :language: bash + +Linking Your C++ Project with Idol +================================== + +Idol is built with and for CMake (even though it is still possible to link using :bash:`Makefile` or pure :bash:`gcc, clang, ...`). + +If you are using CMake, here is a minimal :bash:`CMakeLists.txt` which creates a new executable target linked with idol. + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.22) + project(my_project) + + set(CMAKE_CXX_STANDARD 17) + + add_executable(my_target main.cpp) + + find_package(idol REQUIRED) ## Here, we search for the installed library idol + + target_link_library(my_target PUBLIC idol) ## Here, we ask CMake to link with idol + +Note that this will also work when idol is linked with an external solver like Gurobi, Mosek or GLPK. + +The following :bash:`main.cpp` is then a minimal example. + +.. code-block:: cpp + + #include + #include + + int main(int t_argc, const char** t_argv) { + + Env env; + + Model model(env); + + Var x(env, 0., 1., Binary, "x"); + model.add(x); + + // ... + + return 0; + } + diff --git a/_sources/installation/local_installation.rst.txt b/_sources/installation/local_installation.rst.txt new file mode 100644 index 00000000..9ddc4a8a --- /dev/null +++ b/_sources/installation/local_installation.rst.txt @@ -0,0 +1,87 @@ +.. _installation_local: + +.. role:: bash(code) + :language: bash + +Local Installation +================== + +This page is dedicated to local installations of idol. This is the easiest way to get your project working with +idol without installing it globally on your computer. + +.. hint:: + + If you want to install idol globally, please read our :ref:`global installation guide `. + +The idea behind local installations is to let CMake download and manage the installation of idol in a sub-folder of your +project. This is done by using the CMake :bash:`FetchContent_*` directives. + +Using this method, you can also explicitly specify the desired version of idol which you want to use. + +We provide here a minimal :bash:`CMakeLists.txt`. + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.23) + project(my_project) + + set(CMAKE_CXX_STANDARD 17) + + include(FetchContent) + + # Define your CMake options here + set(USE_GUROBI YES) # For instance, tell CMake to link idol with Gurobi + + # Tell CMake which version of idol you desire + FetchContent_Declare( + idol + GIT_REPOSITORY https://github.com/hlefebvr/idol.git + GIT_TAG origin/main # You may also use a tag, e.g., v0.2.4-alpha + ) + + # Ask CMake to download idol and install it to a sub-folder + FetchContent_MakeAvailable(idol) + + # Normal executable definition + add_executable(my_target main.cpp) + + # Link your CMake target with idol as classically done + target_link_libraries(my_target PUBLIC idol) + +.. hint:: + + As you have seen, some options must be set in CMake in order to tell it to link idol with external solvers. + This is done with the :bash:`set` CMake function. Say you want + to set the option :bash:`MY_OPTION` to the value :bash:`MY_VALUE`. Then, you should add the following + function call. + + .. code-block:: bash + + set(MY_OPTION MY_VALUE) + +.. seealso:: + + A list of all possible options which can be set can be found on the :ref:`global installation guide `. + In particular, you will find options to link with Gurobi, Mosek and GLPK. + +Then, here is a starting :bash:`main.cpp`. + +.. code-block:: cpp + + #include + #include + + int main(int t_argc, const char** t_argv) { + + Env env; + + Model model(env); + + Var x(env, 0., 1., Binary, "x"); + model.add(x); + + // ... + + return 0; + } + diff --git a/_sources/installation/mosek-and-socp.rst.txt b/_sources/installation/mosek-and-socp.rst.txt new file mode 100644 index 00000000..38ad89f1 --- /dev/null +++ b/_sources/installation/mosek-and-socp.rst.txt @@ -0,0 +1,56 @@ +.. _mosek_and_socp: + +Using Idol with Eigen +===================== + +This page elaborates on some operations made by idol which require usage of the `Eigen `_ +C++ library. + +We first explain how to link idol with Eigen, then discuss several operations which require the use of Eigen. + +.. warning:: + + Calling functionalities which require Eigen without have linked idol with Eigen will result in an Exception being + thrown. + +"Linking" with Eigen +-------------------- + +Eigen is header-only C++ library. In that sense, no installation is required. One only needs to download Eigen's source +code in order to make their header files accessible. + +Then, all you have to do in order to "link" with Eigen is to set the ``USE_EIGEN`` CMake +option to ``YES``. + +.. admonition:: Example + + This example shows you have to create an install target for idol with Mosek and Eigen. + + .. code-block:: + + cmake -DUSE_MOSEK=YES -DUSE_EIGEN=YES .. + + +Interfacing Mosek for Solving QPs and SOCPs +------------------------------------------- + +The interface of idol +is based on functional expressions, e.g., like + +.. math:: + + \sum_{j=1}^n a_{ij}x_j + \sum_{j=1}^n\sum_{k=1}^n q_{jk}^ix_jx_k \le b_i. + +The C++ Mosek interface, instead, is based on conic expressions, e.g., like + +.. math:: + + (x_0, \textbf{Fx}) \in \mathcal Q^n, + +where :math:`\mathcal Q^n` denotes the second-order cone and :math:`F` is some matrix related to :math:`Q^i`. + +In order to compute :math:`F` and thus, to make the conversion between the Mosek interface and +the idol interface, one needs to compute an eigen value decomposition. + +This is automatically done by idol using `Eigen `_. + diff --git a/_sources/installation/options.rst.txt b/_sources/installation/options.rst.txt new file mode 100644 index 00000000..ec24da50 --- /dev/null +++ b/_sources/installation/options.rst.txt @@ -0,0 +1,176 @@ +.. _cmake_options: + +.. role:: bash(code) + :language: bash + +List of CMake Options +===================== + +Linking with External Solvers +----------------------------- + +For Gurobi (Commercial Solver) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To link with Gurobi, you will need to pass the :bash:`USE_GUROBI` CMake option with value :bash:`YES`. + +By default, CMake will look for Gurobi inside the folder indicated by the environment variable :bash:`GUROBI_HOME` +(see `this official Gurobi page `_). +Note that it is also possible to pass the CMake option :bash:`GUROBI_DIR=/path/to/gurobi/install/dir` in order to specify +another directory to look for Gurobi. + +.. admonition:: Example + + The following will create an :bash:`install` target which will install idol with Gurobi. + + .. code-block:: bash + + cmake -DUSE_GUROBI=YES -DGUROBI_DIR=/path/to/gurobi/install/dir .. + + If you are doing a *local installation*, then the same can be achieved as follows. + + .. code-block:: bash + + set(USE_GUROBI YES) + set(GUROBI_DIR /path/to/gurobi/install/dir) + + +For Mosek (Commercial Solver) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To link with Mosek, you will need to pass the :bash:`USE_MOSEK` CMake option with value :bash:`YES`. + +By default, CMake will look for Mosek inside the folder indicated by the environment variable :bash:`MOSEK_HOME`. +Note that it is also possible to pass the CMake option :bash:`MOSEK_DIR=/path/to/mosek/install/dir` in order to specify +another directory to look for Mosek. + +Note that :bash:`MOSEK_HOME` (or equivalently :bash:`MOSEK_DIR`) should point to the Mosek installation folder where +folders :bash:`h` and :bash:`bin` can be found. For instance, :bash:`MOSEK_HOME=/home//mosek/10.0/tools/platform/linux64x86`. + +.. admonition:: Example + + The following will create an :bash:`install` target which will install idol with Mosek. + + .. code-block:: bash + + cmake -DUSE_MOSEK=YES -DMOSEK_DIR=/path/to/mosek/install/dir .. + + If you are doing a *local installation*, then the same can be achieved as follows. + + .. code-block:: bash + + set(USE_MOSEK YES) + set(MOSEK_DIR /path/to/mosek/install/dir) + +.. attention:: + + If you intend to use Mosek for solving QPs or SOCPs, please :ref:`read this `. + +For GLPK (Open-Source Solver) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To link with GLPK, you will need to pass the :bash:`USE_GLPK` CMake option with value :bash:`YES`. + +By default, CMake will look for GLPK inside the folder indicated by the environment variable :bash:`GLPK_HOME` as well +as in the default installation folders :bash:`/usr/include` and :bash:`/usr/lib`. +Note that it is also possible to pass the CMake option :bash:`GLPK_DIR=/path/to/glpk/install/dir` in order to specify +another directory to look for GLPK. + +.. admonition:: Example + + The following will create an :bash:`install` target which will install idol with GLPK. + + .. code-block:: bash + + cmake -DUSE_GLPK=YES -DGLPK_DIR=/path/to/glpk/install/dir .. + + If you are doing a *local installation*, then the same can be achieved as follows. + + .. code-block:: bash + + set(USE_GLPK YES) + set(GLPK_DIR /path/to/glpk/install/dir) + + +For HiGHS (Open-Source Solver) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To link with GLPK, you will need to pass the :bash:`USE_HIGHS` CMake option with value :bash:`YES`. + +By default, CMake will look for HIGHS inside the default installation folders :bash:`/usr/include` and :bash:`/usr/lib`. +Note that it is also possible to pass the CMake option :bash:`HIGHS_DIR=/path/to/highs/install/dir` in order to specify +another directory to look for GLPK. + +.. admonition:: Example + + The following will create an :bash:`install` target which will install idol with GLPK. + + .. code-block:: bash + + cmake -DUSE_HIGHS=YES -DHIGHS_DIR=/path/to/glpk/install/dir .. + + If you are doing a *local installation*, then the same can be achieved as follows. + + .. code-block:: bash + + set(USE_HIGHS YES) + set(HIGHS_DIR /path/to/glpk/install/dir) + + +Building Examples +----------------- + +:ref:`Examples :` can be found at the root level of the idol repository, inside the directory ``examples``. + +By default, CMake will not generate targets to build these example. To tell CMake to generate them, you +need to set the CMake option ``BUILD_EXAMPLE`` to ``YES``. + +.. admonition:: Example + + The following will tell CMake to create targets for examples. + + .. code-block:: + + cmake -DBUILD_EXAMPLES=YES .. + + For instance, we can now build the Knapsack Problem example, + + .. code-block:: + + make example_knapsack + + and run it. + + .. code-block:: + + cd examples && ./example_knapsack + + +Linking with martinus/robin-hood-hashing +---------------------------------------- + +Internally, idol uses unordered map. Unfortunately, the default :code:`std` implementation is not the best choice when +it comes to performance. To avoid this, if found relevant, users can link idol with the hash map implementation of +`martinus/robin-hood-hashing `_. It's actually a header-only library, so +all you have to do is to tell us where the :code:`robin_hood.hpp` file is. This is done thourgh the CMake option +:code:`ROBINHOOD_DIR=/path/to/robin_hood/folder` together with :code:`USE_ROBINHOOD=YES`. + +Note that, if :code:`ROBINHOOD_DIR` is not specified, :code:`robin_hood.hpp` is searched for in :code:`/usr/include`, +:code:`/usr/include/robin_hood/`, :code:`/usr/local/include/`, :code:`/usr/local/include/robin_hood/` and in the path +stored in the environment variable :code:`ROBINHOOD_HOME`. + + +.. admonition:: Example + + The following will create an :bash:`install` target which will install idol with martinus's robin_hood hash map + implementation. + + .. code-block:: + + cmake -DUSE_ROBINhOOD=YES -DROBINHOOD_DIR=/path/to/robin_hood/folder .. + + +Building Unit and Integration Tests +----------------------------------- + +To build tests for idol, please refer to this :ref:`developer page `. \ No newline at end of file diff --git a/_sources/references.rst.txt b/_sources/references.rst.txt new file mode 100644 index 00000000..c8779726 --- /dev/null +++ b/_sources/references.rst.txt @@ -0,0 +1,7 @@ +References +========== + +The implementation of idol is based on a lot of scientific publications. Here is a selected subset. + +.. bibliography:: + :all: diff --git a/_sources/tutorials/basics/benders.rst.txt b/_sources/tutorials/basics/benders.rst.txt new file mode 100644 index 00000000..32a014b3 --- /dev/null +++ b/_sources/tutorials/basics/benders.rst.txt @@ -0,0 +1,153 @@ +.. _decomposition_benders: + +.. role:: cpp(code) + :language: cpp + +Lazy Cuts and Benders Decomposition +=================================== + +In this section, we will show how to use the LazyCutCallback callback to implement a simple Benders Decomposition +algorithm. + +.. hint:: + + This tutorial regards the `advanced topic` of Benders Decomposition. + Rudimentary notions in the following subjects are recommended: + + - `Benders Decomposition `_ + - `Linear Programming duality `_ + +Mathematical Model +------------------ + +Original Formulation +^^^^^^^^^^^^^^^^^^^^ + +We will base our example on the following model taken from `Blanco, V., (2016), Benders Decomposition, MINLP School: Theory +and Applications `_. + +.. math:: + + \begin{align} + \min_{x,y} \ & 2 x_0 + 3x_1 + 2y \\ + \text{s.t.} \ & x_0 + 2x_1 + y \ge 3, \\ + & 2x_0 - x_1 + 3y \ge 4, \\ + & x,y\ge 0. + \end{align} + +Benders Reformulation +^^^^^^^^^^^^^^^^^^^^^ + +We apply a Benders reformulation to this problem by considering :math:`y` as the complicating variable. +The Benders reformulation reads: + +.. math:: + + \begin{align} + \min_{y,z} \ & 2y + z \\ + \text{s.t.} \ & z \ge \lambda_1 ( 3 - y ) + \lambda_2(4 - 3y) \qquad \forall \lambda \in \Lambda, \\ + & z \ge 0, + \end{align} + +with :math:`\Lambda` defined as the set of all :math:`\lambda\in\mathbb R^2_+` such that + +.. math:: + + \begin{align} + & \lambda_0 + 2 \lambda_1 \le 2, \\ + & 2\lambda_0 - \lambda_1 \le 3. + \end{align} + +Implementation +-------------- + +We are now ready to implement our decomposition method. We will need to define three different things: + +- the master problem; +- the dual space :math:`\Lambda`; +- the shape of the cuts to be added. + +The Master Problem +^^^^^^^^^^^^^^^^^^ + +The master problem is created like any optimization model; see our :ref:`Modeling tutorial `. + +.. code:: + + Env env; + + Model master(env); + + auto y = master.add_var(0, Inf, Continuous, "y"); + auto z = master.add_var(0, Inf, Continuous, "z"); + + master.set_obj_expr(2 * y + z); + +The Dual Space :math:`\Lambda` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To provide the description of the dual space :math:`\Lambda`, we use another Model object which will contain the variables +and constraints defining :math:`\Lambda`. The objective function is not used and can be left to zero. + +.. code:: + + Model dual_space(env); + + auto lambda = dual_space.add_vars(Dim<1>(2), 0, Inf, Continuous, "lambda"); + + dual_space.add_ctr(lambda[0] + 2 + lambda[1] <= 2); + dual_space.add_ctr(2 * lambda[0] - lambda[1] <= 3); + +The Cuts to be Added +^^^^^^^^^^^^^^^^^^^^ + +Finally, we need to define the cuts to be added to the master problem for a given dual variable :math:`\lambda`. +The cuts are always expressed in the "master space". What we mean by this is that, here, :math:`y` should be a *variable* +in the constraint while :math:`\lambda` should be a *constant*. + +This is done as follows. + +.. code:: + + auto benders_cut = z >= !lambda[0] * (3 - y) + !lambda[1] * (4 - 3 * y); + +See how the lambda variables are "turned into" constants by prepending them with an "!" symbol. + +Solving the Model +----------------- + +In this section, we solve our model using GLPK and the LazyCutCallback from idol. + +This is done as follows. + +.. code:: + + master.use( + GLPK() + .add_callback( + LazyCutCallback(dual_space, benders_cut) + .with_separation_optimizer(GLPK()) + ) + ); + + master.optimize(); + + std::cout << save_primal(master) << std::endl; + +See how we specified also an optimizer for solving the separation problem. Here, we use GLPK. + +.. warning:: + + If you are using Gurobi with the LazyCutCallback, make sure to call the :code:`Gurobi::with_lazy_cuts` method. + This is necessary to turn off some parameters of Gurobi which would otherwise lead to wrong solutions. + + .. code:: + + master.use( + Gurobi() + .with_lazy_cuts(true) + .add_callback( + LazyCutCallback(dual_space, benders_cut) + .with_separation_optimizer(Gurobi()) + ) + ); diff --git a/_sources/tutorials/basics/importing_a_model.rst.txt b/_sources/tutorials/basics/importing_a_model.rst.txt new file mode 100644 index 00000000..41279fee --- /dev/null +++ b/_sources/tutorials/basics/importing_a_model.rst.txt @@ -0,0 +1,61 @@ +.. _importing_a_model: + +.. role:: cpp(code) + :language: cpp + +Importing A Model +================= + +In this tutorial, we will see how to import and export an optimization model from and to a file. +This can be useful if you want to read other people's instances of some optimization problem. For instance, +you may want to read instances from the `MIPLIB2017 _` library. + +Reading a Model +--------------- + +Reading a model from a file is implemented in idol through external solvers API. In short, we let external solvers +read and parse the optimization problem from a file and then convert back their representation into idol. This has +the advantage to perfectly adapt to each solver's convention in file formats (some standards are, indeed, ambiguous; e.g., MPS files). + +Not all external solvers have this functionality implemented. As of now, the list of solvers which implement this are +Gurobi and GLPK. + +Now, say you have an instance file stored at :code:`/path/to/my/instance.lp` in LP format. You may read this file by calling +the :code:`read_from_file` static method of the external solver acting as parsing backend. For instance, to use Gurobi, +one would to the following. + +.. code:: + + Env& env; + auto model = Gurobi::read_from_file(env, "/path/to/my/instance.lp"); + +Notice that we gave an environment object as argument in addition to the path to the instance. This environment will be +used to create the model in idol. + +Similarly, to use GLPK as parsing backend, the following is possible. + +.. code:: + + Env& env; + auto model = GLPK::read_from_file(env, "/path/to/my/instance.lp"); + +Writing a Model +--------------- + +To write an optimization model to a file, the easiest way is again to rely on an external solver. +This is done by attaching a solver to a model, then by calling the :code:`Model::write` method. + +.. code:: + + Env env; + Model model = some_function_creating_my_model(env); // this is assumed to create the desired optimization model + + model.use(Gurobi()); // We will use Gurobi as the optimizer + + model.write("instance.lp"); // Creates a new file "instance.lp" storing the model + +Conclusion +---------- + +That's it! You are now capable of reading and writing optimization problems from and to a file! Congratulations! +Make sure to check out our other tutorials to learn more on how to use idol. diff --git a/_sources/tutorials/basics/index.rst.txt b/_sources/tutorials/basics/index.rst.txt new file mode 100644 index 00000000..e04ebf4f --- /dev/null +++ b/_sources/tutorials/basics/index.rst.txt @@ -0,0 +1,13 @@ +.. _tutorials_basics: + +Basics +====== + +.. toctree:: + :maxdepth: 1 + :glob: + + modeling_optimization_problems + using_an_external_solver + importing_a_model + benders diff --git a/_sources/tutorials/basics/modeling_optimization_problems.rst.txt b/_sources/tutorials/basics/modeling_optimization_problems.rst.txt new file mode 100644 index 00000000..69bcda83 --- /dev/null +++ b/_sources/tutorials/basics/modeling_optimization_problems.rst.txt @@ -0,0 +1,249 @@ +.. _modeling_optimization_problems: + +.. role:: cpp(code) + :language: cpp + +Modeling Optimization Problems +============================== + +On this page, we discuss the very basic ideas of idol's modeling API. +All classes which are used for modeling an optimization problem can be accessed by including :code:`#include `. +Let's get started. + +.. warning:: + + The idol library can be found inside the :code:`idol` namespace, thus, be sure to add :code:`using namespace idol;` + where desired or to explicitly refer to classes using this namespace, e.g., by using :code:`idol::Model` instead of :code:`Model`. + +Env +--- + +Every optimization object (like variables and constraints) are managed by an "optimization environment". Essentially, +it is the environment that controls the death and lives of such objects. It is through the environment that idol +manages the different versions each optimization object may have during the execution of your program. + +Typically, only one environment should be used by your code, though it is possible to instantiate many environment (not advised). + +Environments are objects of the ``Env`` class and can be created as follows. + +.. code-block:: + + Env env; // Creates a new optimization environment. + +Model +----- + +The :cpp:`Model` class is used to represent an optimization model of the following form. + +.. math:: + + \begin{array}{lll} + \min\ & \displaystyle \sum_{j=1}^n c_jx_j + \sum_{j=1}^n\sum_{k=1}^n d_{jk}x_jx_k \\ + \textrm{s.t. } & \displaystyle \sum_{j=1}^n a_{ij}x_j + \sum_{j=1}^n\sum_{k=1}^n q^i_{jk}x_jx_k \le b_i & i=1,...,m \\ + & l_j \le x_j \le u_j & j=1,...,m \\ + & x_j\in\mathbb Z & j\in J_I + \end{array} + +Here, :math:`x_j` are the variables of this optimization problem while :math:`c_j, d_{jk}, a_{ij}` and :math:`q_{jk}^i` are given +input parameters for this model. Optionally, :math:`J_I\subseteq\{1,...,n\}` is a set of variable indices +whose value must be integral. + +Constructors of :cpp:`Model` can be used to create a new optimization model in idol. The most common takes a single argument +which is the optimization environment to be used. + +.. code-block:: cpp + + int main(int t_argc, const char** t_argv) { + + Env env; + + Model model(env); + + // The model has been created! + + return 0; + } + +Now, we can define optimization variables and constraints. + +Variables +--------- + +Any variable in idol is associated to at least one :cpp:`Model` object. Typically, exactly one. +We can easily create a new variable by using the constructor of the :cpp:`Var` class and add it to a model by calling the :cpp:`Model::add` method. +For instance, the following piece of code +will create a new variable, called "x", which is continuous and non-negative. + +.. code-block:: cpp + + Var x(env, 0., Inf, Continuous, "x"); + + model.add(x); // Variable x is added to the model + +A more straightforward way of creating variables is by directly calling the ``add_var`` method of the ``Model`` class. +For instance, the following piece of code is equivalent to the previous one. + +.. code-block:: cpp + + model.add_var(0, Inf, Continuous, "x"); + +Note that we did not need to repeat the environment since the model's environment is used by default. + +The idol library also offers simple ways for creating multiple variables at once. +For instance, one can call the :cpp:`Var::make_vector` function. This function requires +an extra parameter specifying the dimension of the new variable. For instance, the following code creates variables :math:`y_{ij}` +with :math:`i=1,...,K` and :math:`j=1,...,T`. + +.. code-block:: cpp + + auto y = Var::array(env, Dim<2>(K, T), 0., Inf, Continuous, "y"); + + model.add_array(y); // Variables y_ij are added to the model + + std::cout << y[0][0] << std::endl; // "y_0_0" + +Alternatively, one can use the ``Model::add_vars`` method. + +.. code-block:: cpp + + auto y= model.add_vars(Dim<2>(K, T), 0., Inf, Continuous, "y"); + + std::cout << y[0][0] << std::endl; // "y_0_0" + +Constraints +----------- + +Similarly to variables, constraints are easily created and added to a given ``Model``. + +Constraints can be created by calling the constructor of the :cpp:`Ctr` class and added to a model by means of :cpp:`Model::add`. +See for instance. + +.. code-block:: cpp + + Env env; + Model model(env); + + Var x_0(env, 0., Inf, Continuous, "x_0"); + Var x_1(env, 0., Inf, Continuous, "x_1"); + Ctr constraint(env, x_0 + x_1 >= 1); + + model.add(x_0); + model.add(x_1); + model.add(constraint); + +A more compact version of this code is obtained by making use of the ``Model::add_vars`` and ``Model::add_ctr`` methods. + +.. code-block:: cpp + + Env env; + Model model(env); + + auto x = model.add_vars(Dim<1>(2), 0., Inf, Continuous, "x"); + auto constraint = model.add_ctr(x + y >= 1); + +As you can see, a constraint is created using the pattern :code:`{expression} {sign} {expression}` where + +* :code:`{sign}` is one of :code:`<=`, :code:`>=` and :code:`==`; +* :code:`{expression}` is an instance of :code:`Expr`. + +The :code:`Expr` class is used to represent a mathematical expression in idol. An expression is composed of three parts: + +* :code:`Expr::linear` will give you access to the linear part of the expression (it is an instance of ``LinExpr``); +* :code:`Expr::quadratic` will give you access to the quadratic part of the expression (it is an instance of ``QuadExpr``); +* :code:`Expr::constant` will return the constant (or offset) of the expression (it is an instance of ``Constant``). + +Typically, however, you will not really care about what composes an expression since an :code:`Expr` object can be created +quite naturally. See for instance the following code. + +.. code-block:: cpp + + Expr expr = 1 + 3 * x[0]; + expr += x[1]; + expr += x[0] + 2 * x[0] * x[1]; + + std::cout << expr << std::endl; // "1 + 4 * x[0] + 1 * x[1] + 2 * x[0] * x[1]" + +As mentioned, you can access parts of an expression as follows. + +.. code-block:: cpp + + for (const auto& [var, coefficient] : expr.linear()) { + std::cout << var << " is multiplied by " << coefficient << std::endl; + } + + /* + "x_0 is multiplied by 4" + "x_1 is multiplied by 1" + */ + +.. admonition:: About constants in expressions + + Without diving into too much detail, we should here precise that each constant multiplying a variable in an :cpp:`Expr` + can actually be composite (e.g., a coefficient in the expression may refer to external optimization variables whose + value is considered fixed in the current model). + + Fixing variables in an optimization problem can be achieved thanks to the ``!`` symbol. + + For instance, here is an expression where ``xi_0`` and ``xi_1`` are seen as parameters. + + .. code-block:: + + Expr expr = (1 + 2 * !xi_0) * x + 3 * !xi_1 * y; + + Here, ``1 + 2 * !xi_0`` is an instance of the ``Constant`` object and can be used as follows. + + .. code-block:: + + Constant constant = 1 + 2 * !xi_0; + + std::cout << constant.numerical() << std::endl; // output: 1 + + for (const auto& [param, coeff] : constant) { + std::cout << coeff << " * " << param << std::endl; // output: 2 * !xi_0 + } + +Objective Function +------------------ + +The objective function of an optimization model can specified by the ``Model::set_obj_expr`` method. + +Here is an example which sets the objective function to :math:`-x_0 + 2 x_1`; + +.. code-block:: + + model.set_obj_expr(-x_0 + 2 * x_1); + +Accessing the Objects of a Model +-------------------------------- + +Once you have your model created, note that you can access all of its components. For instance, we can iterate over +all variables as follows. + +.. code-block:: + + for (const Var& var : model.vars()) { + std::cout << model.get_var_lb(var) << " <= " << var.name() << " <= " << model.get_var_ub(var) << std::endl; + } + +Here, we use the :code:`Model::vars` method to get an iterable set of variables contained in our optimization model. +Then, we use the methods :code:`Model::get_var_lb` and :code:`Model::get_var_ub` to retrieve the lower and upper +bound of each variable in the model. + +.. hint:: + + As you have seen, there is no such thing as :code:`var.get_lb()`. This is because each variable may have a different + lower bound in another model. Thus, there is no such thing as "*the*" lower bound of a variable, but well *a* lower + bound associated to a variable **in a specific model**. + +Similarly, constraints can be accessed using the :code:`Model::ctrs` method. The objective function is retrieved by calling +:code:`Model::get_obj_expr` and :code:`Model::get_obj_sense`. + +What Then? +---------- + +You now know how to model an optimization problem in idol! It's time we do something of this model :-). + +In the following tutorial, we will see how to model the 0-1 Knapsack Problem, a well-known combinatorial problem, and +how to call an external solver, *HiGHS*, to solve it. + +See you there! diff --git a/_sources/tutorials/basics/using_an_external_solver.rst.txt b/_sources/tutorials/basics/using_an_external_solver.rst.txt new file mode 100644 index 00000000..697a65b0 --- /dev/null +++ b/_sources/tutorials/basics/using_an_external_solver.rst.txt @@ -0,0 +1,226 @@ +.. _using_an_external_solver: + +.. role:: cpp(code) + :language: cpp + +Using An External Solver +======================== + +In this tutorial, we will see how to use an external solver like Gurobi or HiGHS to solve +a small combinatorial problem. +The considered problem is the Knapsack Problem; see the `Knapsack Problem wikipedia page `_. + +Modeling +-------- + +The first step is to model our problem using idol. Recall the standard model for the knapsack problem: + +.. math:: + + \begin{array}{lll} + \max\ & \displaystyle \sum_{j=1}^n p_jx_j \\ + \textrm{s.t. } & \displaystyle \sum_{j=1}^n w_jx_j \le W, \\ + & x_j \in \{ 0, 1 \} & j=1,...,n, + \end{array} + +in which :math:`n` denotes the number of items. For each item :math:`j\in\{1,...,n\}`, :math:`p_j` denotes the profit of +item while :math:`i` and :math:`w_j` denotes its weight. Finally, we let :math:`W` denote the knapsack capacity. + +We will assume to have the following input data at hand. + +.. code-block:: cpp + + const unsigned int n = 5; // 5 items + const std::vector p = { 40., 50., 100., 95., 30. }; // profits + const std::vector w = { 2., 3.14, 1.98, 5., 3. }; // weights + const double W = 10; // capacity + +Then, using idol's modeling API contained in :cpp:`#include `, we can create our model easily. +We will first present a naive implementation using only the knowledge introduced in the previous tutorial. +Then, we will show a more compact way of implementing it using the :code:`idol_Sum` macro. + +A first approach +^^^^^^^^^^^^^^^^ + +A first approach to model our knapsack problem in idol is as follows. + +.. code-block:: cpp + + // Create environemnt + Env env; + + // Create a new model + Model model(env); + + // Create a vector for storing the x variables + std::vector x; + x.reserve(n); + + // Create x variables as binary with p_j as objective coefficient + for (unsigned int j = 0 ; j < n ; ++j) { + Var x_j(env, 0., 1., Binary, Column(p[j]), "x_" + std::to_string(j)); + model.add(x_j); + x.emplace_back( x_j ); + } + + // Create expression for the knapsack constraint + Expr knapsack_constraint; + for (unsigned int j = 0 ; j < n ; ++j) { + knapsack_constraint += w[j] * x[j]; + } + + // Create the knapsack constraint + Ctr c(knapsack_constraint <= W); + model.add(c); + + // Define objective sense + model.set_obj_sense(Maximize); + +Here, we used the :cpp:`Model::set_obj_sense` method to set the objective sense of our model. By default, all models are +assumed to be minimization problems. + +A more elegant approach +^^^^^^^^^^^^^^^^^^^^^^^ + +Though our first approach works well, its size can greatly be reduced while improving readability by using the +predefined macro :cpp:`idol_Sum` combined with clever calls to methods of the :code:`Model` class. + +.. code-block:: cpp + + // Create environemnt + Env env; + + // Create a new model + Model model(env); + + // Create x variables + model.add_vars(Dim<1>(n), 0., 1., Binary, "x"); + + // Create the knapsack constraint + model.add(idol_Sum(j, Range(n), w[j] * x[j] ) <= W); + + // Define objective sense + model.set_obj_sense(Maximize); + model.set_obj_expr(idol_Sum(j, Range(n), p[i] * x[i]); + +Here, we directly add :math:`n` variables with the right types and bounds. + +Then, we use the :cpp:`idol_Sum` macro to create the knapsack constraint. +This macro is used as follows :cpp:`idol_Sum({name}, {iteratable}, {expression})` where :cpp:`{name}` will be the name of an index +taking value in the :cpp:`{iteratable}` (here, :cpp:`Range(n)`) while :cpp:`{expression}` is the piece of expression which will be accumulated. + +.. admonition:: About Range + + In the above example, :cpp:`Range` is used to define an iterable ranging from :math:`0` to :math:`n` (note that it is also possible to range from :math:`l` to :math:`n` for :math:`l < n` + by calling :cpp:`Range(l, n)`). + +The objective function is created similarly. + +Solving the problem using an external solver +-------------------------------------------- + +The idol library offers different ways for solving optimization problems. +To select the desired approach for a given model, one must call the :cpp:`Model::use` method and specify the +"optimizer" to be used. + +For instance, the following will set the optimizer to HiGHS for solving our model. + +.. code-block:: cpp + + model.use(HiGHS()); + +.. hint:: + + Here, HiGHS is actually an ``OptimizerFactory`` which will eventually create an optimizer to solve our model. + Indeed, the “real” optimizer in this case will be an instance of ``Optimizers::HiGHS`` which will be created just in + time, when necessary. + + If you want to learn more about optimizers and optimizer factories, please refer to :ref:`this page `. + +Now that the optimizer has been configure, we can solve our problem by calling the ``Model::optimize`` method. + +.. code-block:: + + model.optimize(); + +Accessing the solution +---------------------- + +Finally, you may access pieces of information regarding the solution by using one of the following methods: + +* ``get_status`` returns the current solution status (e.g., ``Optimal``, ``Infeasible``, ``Unbounded``, ...). +* ``get_reason`` returns the reason for the solution status (e.g., the solution reports ``Infeasible`` because of + ``TimeLimit``). +* ``get_best_obj`` returns the best objective value found (i.e., the best objective cost among feasible solutions + considered during the execution of the algorithm). +* ``get_best_bound`` returns the best objective value bound (e.g., a dual bound). +* ``get_relative_gap`` returns the relative optimality gap computed as + +.. math:: + + \textrm{relative_gap} = \left| \frac{ \textrm{best_obj} - \textrm{best_bound} }{ 1e^{-10} + \textrm{best_obj} } \right|. + +* ``get_absolute_gap`` returns the absolute optimality gap computed as + +.. math:: + + \textrm{absolute_gap} = | \textrm{best_obj} - \textrm{best_bound} |. + +* ``get_var_primal`` returns the primal value (when status is ``Optimal`` or ``Feasible``) of a given variable. +* ``get_var_ray`` returns the ray value (when status is ``Unbounded``) of a given variable. +* ``get_ctr_dual`` returns the dual value (when status is ``Optimal`` or ``Feasible`` and for continuous problems) of a given + constraint. +* ``get_ctr_farkas`` returns the Farkas certificate value (when status is ``Infeasible`` and for continuous problems) of a given + constraint. + +Additionally, functions ``save_primal``, ``save_ray``, ``save_dual`` and ``save_farkas`` will create objects of the class +``Solution::Primal`` and ``Solution::Dual`` storing the results of corresponding calls to ``get_var_*`` and ``get_ctr_*`` +methods. + +.. admonition:: Example + + This example shows how to solve a model using HiGHS and retrieves some pieces of information about its solution. + + .. code-block:: + + model.use(HiGHS()); + + model.optimize(); + + const SolutionStatus status = model.get_status(); + + if (status == Optimal) { + + std::cout << "Optimal solution found!" << std::endl; + + Solution::Primal primal_values = save_primal(model); + + std::cout << primal_values << std::endl; + + } else { + + std::cout << "An optimal solution could not be found" << std::endl; + + std::cout << "HiGHS returned status " << status << std::endl; + + std::cout << "The reason for this status is " << model.get_reason() << std::endl; + + if (status == Feasible) { + + std::cout << "The optimality gap is " << model.get_relative_gap() * 100 << " %" << std::endl; + + } else if (status == Unbounded) { + + std::cout << "An unbounded ray is" << std::endl; + + std::cout << save_ray(model) << std::endl; + + } else if (status == Infeasible) { + + std::cout << "A Farkas certificate is" << std::endl; + + std::cout << save_farkas(model) << std::endl; + + } + + } \ No newline at end of file diff --git a/_sources/tutorials/bilevel-optimization/index.rst.txt b/_sources/tutorials/bilevel-optimization/index.rst.txt new file mode 100644 index 00000000..0d216f11 --- /dev/null +++ b/_sources/tutorials/bilevel-optimization/index.rst.txt @@ -0,0 +1,11 @@ +.. _bilevel: + +Bilevel Optimization +==================== + + +.. toctree:: + :maxdepth: 3 + :glob: + + diff --git a/_sources/tutorials/branch-and-bound/basic.rst.txt b/_sources/tutorials/branch-and-bound/basic.rst.txt new file mode 100644 index 00000000..a783c274 --- /dev/null +++ b/_sources/tutorials/branch-and-bound/basic.rst.txt @@ -0,0 +1,11 @@ +.. _tutorials_branch_and_bound_basic: + +.. role:: cpp(code) + :language: cpp + +Branch-and-Bound 101 (to come) +============================== + +.. warning:: + + This tutorial is still under construction. diff --git a/_sources/tutorials/branch-and-bound/index.rst.txt b/_sources/tutorials/branch-and-bound/index.rst.txt new file mode 100644 index 00000000..1a38f2d3 --- /dev/null +++ b/_sources/tutorials/branch-and-bound/index.rst.txt @@ -0,0 +1,11 @@ +.. _tutorials_branch_and_bound: + +Branch-and-Bound +================ + +.. toctree:: + :maxdepth: 1 + :glob: + + basic + priorities diff --git a/_sources/tutorials/branch-and-bound/priorities.rst.txt b/_sources/tutorials/branch-and-bound/priorities.rst.txt new file mode 100644 index 00000000..8d186318 --- /dev/null +++ b/_sources/tutorials/branch-and-bound/priorities.rst.txt @@ -0,0 +1,11 @@ +.. _tutorials_branch_and_bound_priorities: + +.. role:: cpp(code) + :language: cpp + +Branching with Priorities (to come) +=================================== + +.. warning:: + + This tutorial is still under construction. diff --git a/_sources/tutorials/dantzig-wolfe/dantzig_wolfe.rst.txt b/_sources/tutorials/dantzig-wolfe/dantzig_wolfe.rst.txt new file mode 100644 index 00000000..d5095acd --- /dev/null +++ b/_sources/tutorials/dantzig-wolfe/dantzig_wolfe.rst.txt @@ -0,0 +1,298 @@ +.. _tutorials_dantzig_wolfe_gap: + +.. role:: cpp(code) + :language: cpp + +Branch-and-Price 101 +==================== + +In this section, we will show how to use the Branch-and-Price solver to solve the *Generalized Assignment Problem* (GAP) +using an external solver to solve each sub-problem. + +.. hint:: + + This tutorial regards the `advanced topic` of Column Generation and Dantzig-Wolfe decomposition. + Rudimentary notions in the following subjects are recommended: + + - `Column Generation and Branch-and-Price algorithms `_ + - `Dantzig-Wolfe decomposition `_ + - `Generalized Assignment Problem `_. + +.. seealso:: + + A `Benchmark on Generalized Assignment Problem `_ is + available. + +Mathematical Models +------------------- + +In this section, we assume that the reader is familiar with GAP. +Let :math:`m` be the number of agents and let :math:`n` be the number of tasks to be performed. + +Let :math:`c_{ij}` be the cost for assigning task :math:`j` to agent :math:`i`, :math:`w_{ij}` be the resource +consumption of task :math:`j` when performed by agent :math:`i` and let :math:`t_i` be the resource capacity of agent +:math:`i`. + +Original Formulation +^^^^^^^^^^^^^^^^^^^^ + +The Generalized Assignment Problem (GAP) can be modeled as + +.. math:: + + \min_x \quad & \sum_{i=1}^m\sum_{j=1}^n c_{ij} x_{ij} \\ + \textrm{s.t.} \quad & \sum_{j=1}^n w_{ij} x_{ij} \le t_i & i=1,...,m, \\ + & \sum_{i=1}^m x_{ij} = 1 & j = 1,...,n, \\ + & x_{ij}\in\{0,1\} & i=1,...,m, j=1,...,n. + +Here, variable :math:`x_{ij}` encodes the assignment decision and equals 1 if and only if task :math:`j` is assigned to +agent :math:`i`. + +Dantzig-Wolfe Reformulation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Let us enumerate the list of all feasible assignments, i.e., let + +.. math:: + + \{\bar x^e_{ij} \}_{e\in E} = \left\{ x \in \{ 0,1 \}^{mn} : \sum_{j=1}^n w_{ij}x_{ij} \le t_i \quad i=1,...,m \right\}, + +in which :math:`E` denotes a list for their indices. The Dantzig-Wolfe reformulation of GAP reads + +.. math:: + + \min_{\lambda} \quad & \sum_{e\in E} \lambda_e\left( \sum_{i=1}^m\sum_{j=1}^n c_{ij}\bar x_{ij}^e \right) \\ + \textrm{s.t.} \quad & \sum_{e\in E} \lambda_e \left( \sum_{i=1}^m \bar x_{ij}^e \right) = 1 & j=1,...,n, \\ + & \sum_{e\in E} \lambda_e = 1, \\ + & \lambda_e \in \{ 0, 1 \} & \forall e\in E. + +Though this model contains an exponential number of variables (i.e., columns) it can be solved efficiently using +Column Generation and Branch-and-price. In such a case, the pricing problem is a Knapsack Problem. + +Automatic Reformulation +----------------------- + +The simplest way to solve a problem using Column Generation and idol is through its automatic reformulation feature. +To use this, one simply needs to give the *original space formulation* of the problem +and to indicate which constraints should be moved to the pricing problem (here, the knapsack constraints). + +The Original Formulation +^^^^^^^^^^^^^^^^^^^^^^^^ + +To read an instance for GAP, we first need to include the header file located in :code:`"idol/problems/generalized-assignment-problem/GAP_Instance.h"`. +This will allow us to use idol's instance parser for GAP. +Assuming that the instance file is named :code:`instance.txt`, it can be loaded as follows. + +.. code-block:: cpp + + const auto instance = Problems::GAP::read_instance("instance.txt"); + + const unsigned int n_agents = instance.n_agents(); + const unsigned int n_jobs = instance.n_jobs(); + +We are now ready to model our problem (for more details, refer to :ref:`this tutorial on modeling `) + +.. code-block:: cpp + + // Create optimization environment + Env env; + + // Create model + Model model(env); + + // Create assignment variables (x_ij binaries) + auto x = model.add_vars(Dim<2>(n_agents, n_jobs), 0., 1., Binary, "x"); + + // Create knapsack constraints (i.e., capacity constraints) + for (unsigned int i = 0 ; i < n_agents ; ++i) { + model.add_ctr(idol_Sum(j, Range(n_jobs), instance.resource_consumption(i, j) * x[i][j]) <= instance.capacity(i), "capacity_" + std::to_string(i)); + } + + // Create assignment constraints + for (unsigned int j = 0 ; j < n_jobs ; ++j) { + model.add(idol_Sum(i, Range(n_agents), x[i][j]) == 1, "assignment_" + std::to_string(j)); + } + + // Set the objective function + model.set_obj_expr(idol_Sum(i, Range(n_agents), idol_Sum(j, Range(n_jobs), instance.cost(i, j) * x[i][j]))); + +Giving Decomposition Instructions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We are now at the crucial step of indicating which constraint should be moved to the pricing problem. In idol, this is done by using +*annotations*. Annotations are additional information associated to an optimization object (e.g., a constraint or a variable). +Note that annotations are global, i.e., they do not relate to a given optimization model. + +Every annotation is formed with two template arguments: an optimization object type and a value type. Here, we want to add +annotations to constraints, thus, the optimization object type must be :code:`Ctr`. The value type can typically be any desired +type. Here, however, the Dantzig-Wolfe decomposition needs an annotation corresponding to an :code:`unsigned int` which corresponds +to the sub-problem index to which the constraint shall be moved to. Thus, we create the annotation as follows. + +.. code-block:: cpp + + Annotation decomposition(env, "decomposition", MasterId); + +Here, we pass three arguments to the constructor of :code:`Annotation`. First, we pass the optimization +environment which will store the annotation. Then, a name (mandatory) is given to the annotation, here, "decomposition". +Finally, a default value is given and equals "MasterId". This will tell idol that constraints which have not been annotated +should remain in the master problem. + +Now, observe how the annotation is applied to the capacity constraints. + +.. code:: cpp + + for (unsigned int i = 0 ; i < n_agents ; ++i) { + Ctr capacity = model.add_ctr(idol_Sum(j, Range(n_jobs), instance.resource_consumption(i, j) * x[i][j]) <= instance.capacity(i), "capacity_" + std::to_string(i)); + capacity.set(decomposition, i); // <-- Annotating the capacity constraint + } + +Here, the first capacity constraint is moved to the first pricing problem (id: 0), +the second constraint to the second pricing problem (id: 1), and so on. + +Note that another decomposition would be materialized as follows. + +.. code:: cpp + + for (unsigned int i = 0 ; i < n_agents ; ++i) { + Ctr capacity = model.add_ctr(idol_Sum(j, Range(n_jobs), instance.resource_consumption(i, j) * x[i][j]) <= instance.capacity(i), "capacity_" + std::to_string(i)); + capacity.set(decomposition, 0); // <-- Annotating the capacity constraint + } + +Here, all the knapsack constraints would be moved to the same pricing problem (id: 0). + +Creating the Branch-and-Price Algorithm +--------------------------------------- + +Now that the desired decomposition has been specified, we can specify the desired optimizer to solve our model. +Here, we want to solve our problem using a Branch-and-Price algorithm, i.e., a Branch-and-Bound algorithm where each node +in the Branch-and-Bound tree is solved by a Dantzig-Wolfe decomposition. + +To begin with, we need to give some specification about how each sub-problem will be solved. In other words, we need +to specify the optimizer(s) used for pricing during the column generation process. This is done by first creating a +:code:`DantzigWolfe::SubProblem` object. + +.. code:: cpp + + const auto sub_problem_specifications = DantzigWolfe::SubProblem() + .add_optimizer(Gurobi()); + +Then, we can create our Column Generation algorithm (factory) in the following way. + +.. code:: cpp + + const auto column_generation = DantzigWolfeDecomposition(decomposition) + .with_master_optimizer(Gurobi::ContinuousRelaxation()) + .with_default_sub_problem_spec(sub_problem_specifications); + +Here, we are solving the relaxed master problem using Gurobi. We also define our default sub-problem specifications to +be the one we just defined. + +Our remaining task is to embed our Column Generation routine inside of a Branch-and-Bound algorithm. +This can be done as follows. + +.. code:: cpp + + const auto branch_and_bound = BranchAndBound() + /* Each node is solved by Column Generation */ + .with_node_optimizer(column_generation) + + /* Variables are selected for branching using the most-infeasible rule */ + .with_branching_rule(MostInfeasible()) + + /* Nodes are selected using the best-bound rule */ + .with_node_selection_rule(BestBound()) + + /* The algorithm will run with a time limit of 3600 */ + .with_time_limit(3600) + + ); + +Then, we can tell idol to use this algorithm for solving our model by using the :code:`Model::use` method. + +.. code:: cpp + + model.use(branch_and_bound); + +Finally, one can simply call the :code:`Model::optimize` method as follows. + +.. code:: cpp + + model.optimize(); + + +That's it! The problem is being solved by column generation, and possibly branching on fractional variables. + +.. hint:: + + Note that it is possible to obtain logs using the `with_log_level` method on the desired optimizer. + For instance, one may want to have + logs for the branch-and-bound optimizer. Then, one should do as follows. + + .. code:: cpp + + model.use( + BranchAndBound() + + /* ... omitting identical details */ + + .with_log_level(Info, Blue) + ); + +The rest remains unchanged and one can use :code:`Model::optimize` to solve the problem and retrieve the solution +through methods like :code:`Model::get_status` and :code:`Model::get_var_primal`. + +.. admonition:: Example + + Here, we can solve our model using a Dantzig-Wolfe decomposition. + + .. code-block:: + + model.optimize(); + + std::cout << save_primal(model) << std::endl; + + This will produce the following output (e.g.). + + .. code-block:: text + + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [branch-and-bound] + [2023-04-07 13:45:44] [info] [branch-and-bound] + [2023-04-07 13:45:44] [info] [branch-and-bound] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + [2023-04-07 13:45:44] [info] [dantzig-wolfe] + + +----------------------- + | Status: Optimal + | Reason: Proved + | ObjVal: -233.00 + | Values: + | x_1_7 = 1.00 + | x_2_0 = 1.00 + | x_2_1 = 1.00 + | x_1_4 = 1.00 + | x_1_5 = 1.00 + | x_0_6 = 1.00 + | x_0_2 = 1.00 + | x_0_3 = 1.00 + +----------------------- diff --git a/_sources/tutorials/dantzig-wolfe/heuristic.rst.txt b/_sources/tutorials/dantzig-wolfe/heuristic.rst.txt new file mode 100644 index 00000000..d8817e27 --- /dev/null +++ b/_sources/tutorials/dantzig-wolfe/heuristic.rst.txt @@ -0,0 +1,15 @@ +.. _tutorials_dantzig_wolfe_heuristic: + +.. role:: cpp(code) + :language: cpp + +Heuristic Pricing (to come) +=========================== + +Hey, you've implemented your first Branch-and-Price algorithm and are curious about how to use your own heuristic for +pricing during the Column Generation algorithm? Then you are at the right place! If not, make sure to check the +`Generalized Assignment Problem tutorial <_tutorials_dantzig_wolfe>`_. + +.. warning:: + + This tutorial is still under construction. diff --git a/_sources/tutorials/dantzig-wolfe/index.rst.txt b/_sources/tutorials/dantzig-wolfe/index.rst.txt new file mode 100644 index 00000000..3660e1ae --- /dev/null +++ b/_sources/tutorials/dantzig-wolfe/index.rst.txt @@ -0,0 +1,13 @@ +.. _tutorials_dantzig_wolfe: + +Branch-and-Price +================ + +.. toctree:: + :maxdepth: 1 + :glob: + + dantzig_wolfe + strong-branching + stabilization + heuristic \ No newline at end of file diff --git a/_sources/tutorials/dantzig-wolfe/stabilization.rst.txt b/_sources/tutorials/dantzig-wolfe/stabilization.rst.txt new file mode 100644 index 00000000..8e2eaafa --- /dev/null +++ b/_sources/tutorials/dantzig-wolfe/stabilization.rst.txt @@ -0,0 +1,15 @@ +.. _tutorials_dantzig_wolfe_stabilization: + +.. role:: cpp(code) + :language: cpp + +In-Out Stabilization (to come) +============================== + +Hey, you've implemented your first Branch-and-Price algorithm and are curious about how to stabilize your Column +Generation algorithm? Then you are at the right place! If not, make sure to check the +`Generalized Assignment Problem tutorial <_tutorials_dantzig_wolfe>`_. + +.. warning:: + + This tutorial is still under construction. diff --git a/_sources/tutorials/dantzig-wolfe/strong-branching.rst.txt b/_sources/tutorials/dantzig-wolfe/strong-branching.rst.txt new file mode 100644 index 00000000..9e97d1ff --- /dev/null +++ b/_sources/tutorials/dantzig-wolfe/strong-branching.rst.txt @@ -0,0 +1,198 @@ +.. _tutorials_dantzig_wolfe_strong_branching: + +.. role:: cpp(code) + :language: cpp + +Strong Branching +================ + +Hey, you've implemented your first Branch-and-Price algorithm and are curious about how to implement strong branching in +idol? Then you are at the right place! If not, make sure to check the +`Generalized Assignment Problem tutorial <_tutorials_dantzig_wolfe>`_. + +Introduction +------------ + +If you've landed here, you should already know what strong branching is. To be sure though, let's give a small introduction. + +First of all, *Strong Branching* is variable-branching rule. Thus, it is used inside a branch-and-bound algorithm to +select a variable for branching. In particular, among a set of branching candidates whose value must be integer, one must +decide which variable with fractional value in the current relaxation to choose for creating +the child nodes, i.e., for branching. + +The most common rule is the so-called *Most-Infeasible* rule, which selects a variable whose fractional +part is closest to `0.5`. Unfortunately, this rule performs badly in practice. Most importantly, if solving a node is +computationally hard, it makes sense to spend some time in carefully choosing the variable to branch. This is typically +the case when nodes are solved using Column Generation, and that's why we are here. + +The idea of Strong Branching is to evaluate the effect of branching on a variable before branching actually happens. + +To be more clear, let :math:`C` be a set of indices for branching candidates at a given node, i.e., for each :math:`j\in C`, +:math:`x_j` is an integer variable in the original problem but with :math:`x_j^*\notin\mathbb Z` at the current node. +Strong Branching tries to evaluate the effect of applying branching constraints :math:`x_j \le \lfloor x_j^* \rfloor` and +:math:`x_j \ge \lceil x_j^* \rceil` to the current node. To do so, it solves, before branching happens, and for each :math:`j\in C`, +both the left and right child node. Let :math:`z_i^\le` and :math:`z_i^\ge` denote the (optimal) value of the +left and right nodes if branching is performed on :math:`x_j`. The "effect of branching on :math:`x_j`" is then estimated by +computing a score, noted :math:`\text{Score}(j)`, based on :math:`z_j^\le` and :math:`z_j^\ge`. Then Strong Branching +selects the variable with an index :math:`j^*` such that (for minimization problems) + +.. math:: + + j^* \in \text{argmax}\{ \text{Score}(j) : j\in C \}. + +Empirically, Strong Branching is known to produce substantially smaller Branch-and-Bound trees compared to other +branching rules. Unfortunately, computing :math:`\text{Score}(j)` typically requires a lot of time. To avoid this, +several techniques have been designed such as *Restricted Strong Branching* and *Strong Branching with Phases* (see below). + +For more details, please refer to :cite:`ACHTERBERG200542`. + +Scoring Functions +^^^^^^^^^^^^^^^^^ + +Two common scoring functions :math:`\text{Score}(j)` are found in the literature. The *linear* formula :cite:`Linderoth1999` + +.. math:: + + \text{LinearScore}(j) := (1 - \mu) \min(\Delta_j^\le, \Delta_j^\ge) + \mu \max(\Delta_j^\le, \Delta_j^\ge), + +and the *product* formula + +.. math:: + + \text{ProductScore}(j) := \max(\Delta_j^\le, \varepsilon) \max(\Delta_j^\ge, \varepsilon), + +in which :math:`\Delta_j^\le := z_j^\le - z^*` and :math:`\Delta_j^\ge := z_j^\ge - z^*` with :math:`z^*` denoting the +(optimal) value of the current node. Parameters :math:`\mu\in[0,1]` and :math:`\varepsilon > 0` are given. +In idol, :math:`\mu = 1/6` and :math:`\varepsilon = 10^{-6}`. + +Full Strong Branching +^^^^^^^^^^^^^^^^^^^^^ + +*Full Strong Branching* denotes the standard Strong Branching rule which solves all :math:`2|C|` nodes at each branching +decision. The drawback of this approach is that it may take a lot of time to solve all these sub-problems before branching +actually happens. + +Restricted Strong Branching +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +*Restricted Strong Branching* is an attempt to reduce the computational burden of Full Strong Branching. The idea is to +consider only a maximum of :math:`K` branching candidates at each branching decision instead of the whole set :math:`C`. +Thus, :math:`C` is replaced by a smaller set :math:`R\subseteq C` such that :math:`|R| = K` with :math:`K` fixed. +The "restricted branching candidate set" :math:`R` is created by taking the :math:`K` first variables selected by, yet +another, branching rule, e.g., the most-infeasible rule. + +Strong Branching with Look Ahead +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +*Strong Branching with Look Ahead* is similar to *Restricted Strong Branching* yet differs from it by not specifying a +fixed size for the "restricted branching candidate set" :math:`R`. Instead, it considers a look ahead parameter, noted +:math:`L`, and applies the Full Strong Branching rule. However, if the branching candidate does not change after :math:`L` +iterations, the algorithm stops and the current branching candidate is returned. + +Strong Branching with Phases +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +*Strong Branching with Phases* is a combination of the above three approaches which applies different schemes depending +on the level of the current node in the Branch-and-Bound tree. Additionally, it allows to solve each node only approximately +by, e.g., imposing a maximum number of iterations for the underlying Column Generation algorithm. + +Implementation +-------------- + +Full Strong Branching +^^^^^^^^^^^^^^^^^^^^^ + +Enough talking, let's implement strong branching. To do so, we will assume that you followed the previous tutorial +on Generalized Assignment Problem and Branch-and-Price. More specifically, we will assume that you have a variable +:code:`model` of type :code:`Model` which has a decomposable structure specified by the annotation :code:`(Annotation) decomposition`. + +Recall that the Branch-and-Price algorithm is created by the following code. + +.. code:: cpp + + const auto column_generation = + DantzigWolfeDecomposition(decomposition) + .with_master_optimizer(Gurobi::ContinuousRelaxation()) + .with_default_sub_problem_spec( + DantzigWolfe::SubProblem() + .add_optimizer(Gurobi()) + ); + +You should be already familiar with this. What is new is the way in which we create our Branch-and-Bound algorithm. In +particular, we will use the :code:`StrongBranching` class to define our branching rule. We can, for instance, simply +declare + +.. code:: cpp + + const auto branching_rule = + StrongBranching(); + +which will create a new Full Strong Branching rule. Just like any other branching rule, it can be used by calling the +:code:`BranchAndBound::with_branching_rule` method. + +.. code:: cpp + + const auto branch_and_bound = + BranchAndBound() + .with_branching_rule(branching_rule) + .with_node_selection_strategy(BestBound()); + +Then, we can build a Branch-and-Price algorithm and solve our problem as follows. + +.. code:: cpp + + const auto branch_and_price = branch_and_bound + column_generation; + + model.use(branch_and_price); + + model.optimize(); + +Pretty easy no? + +But wait! Here, we only implemented Full Strong Branching which, as we saw, is not computationally convenient... +Let's see how to implemented Restricted Strong Branching! + +Restricted Strong Branching +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To implement Restricted Branching, one simply needs to call the :code:`StrongBranching::with_max_n_variables` method. +This is done as follows. + +.. code:: cpp + + const auto branching_rule = + StrongBranching() + .with_max_n_variables(50); + +Here, we set the maximum number of considered variables equal to :math:`K = 50`. + +Phases +^^^^^^ + +In this section, we will discuss how to implement phases with the strong branching rule. This is done using the +:code:`StrongBranching::add_phase` method. This method takes three arguments: a phase type, which is used to indicate +how each node should be solved, e.g., with some iteration limit, a maximum number of variables to consider, for restricted +strong branching, and a maximum depth, used to trigger the phase based on the level of the current node in the Branch-and-Bound +tree. + +Here is an instance of strong branching with phases which, for nodes whose level is below or equal to 3, applies Full +Strong Branching, then switches to Restricted Strong Branching with :math:`K = 30` and which solves nodes with an iteration +limit of 20. + +.. code:: cpp + + const auto branching_rule = + StrongBranching() + .add_phase(StrongBranchingPhases::WithNodeOptimizer(), std::numeric_limits::max(), 3) + .add_phase(StrongBranchingPhases::WithIterationLimit(20), 30, std::numeric_limits::max()); + +Observe how we used :code:`std::numeric_limits::max()` to remove restrictions on the number of +considered variables and on the maximum depth for the final phase. Note that, by default, if no phase is triggered for a +given depth, e.g., because it was not specified, Full Strong Branching is applied. Here, however, we make sure that the +second phase is always triggered. + +Conclusion +---------- + +Strong Branching is a possible approach to try to reduce the computation time of a Branch-and-Price algorithm. +Another approach, which can be complementary, is stabilization. This is the topic of the next tutorial, see you there! diff --git a/_sources/tutorials/index.rst.txt b/_sources/tutorials/index.rst.txt new file mode 100644 index 00000000..6bcc4bae --- /dev/null +++ b/_sources/tutorials/index.rst.txt @@ -0,0 +1,16 @@ +.. _tutorials: + +Tutorials +========= + +.. toctree:: + :maxdepth: 2 + :glob: + + mixed-integer-programming/index + robust-optimization/index + bilevel-optimization/index + + basics/index + branch-and-bound/index + dantzig-wolfe/index diff --git a/_sources/tutorials/mixed-integer-programming/index.rst.txt b/_sources/tutorials/mixed-integer-programming/index.rst.txt new file mode 100644 index 00000000..ee5a2034 --- /dev/null +++ b/_sources/tutorials/mixed-integer-programming/index.rst.txt @@ -0,0 +1,10 @@ +.. _mip: + +Mixed-Integer Programming +========================= + + +.. toctree:: + :maxdepth: 3 + :glob: + diff --git a/_sources/tutorials/robust-optimization/index.rst.txt b/_sources/tutorials/robust-optimization/index.rst.txt new file mode 100644 index 00000000..2cdb17f4 --- /dev/null +++ b/_sources/tutorials/robust-optimization/index.rst.txt @@ -0,0 +1,10 @@ +.. _robust: + +Robust Optimization +=================== + +.. toctree:: + :maxdepth: 3 + :glob: + + diff --git a/_static/_sphinx_javascript_frameworks_compat.js b/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 00000000..81415803 --- /dev/null +++ b/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..30fee9d0 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/check-solid.svg b/_static/check-solid.svg new file mode 100644 index 00000000..92fad4b5 --- /dev/null +++ b/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/_static/clipboard.min.js b/_static/clipboard.min.js new file mode 100644 index 00000000..54b3c463 --- /dev/null +++ b/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 + + + + diff --git a/_static/copybutton.css b/_static/copybutton.css new file mode 100644 index 00000000..f1916ec7 --- /dev/null +++ b/_static/copybutton.css @@ -0,0 +1,94 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + display: flex; + top: .3em; + right: .3em; + width: 1.7em; + height: 1.7em; + opacity: 0; + transition: opacity 0.3s, border .3s, background-color .3s; + user-select: none; + padding: 0; + border: none; + outline: none; + border-radius: 0.4em; + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; +} + +button.copybtn.success { + border-color: #22863a; + color: #22863a; +} + +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; +} + +div.highlight { + position: relative; +} + +/* Show the copybutton */ +.highlight:hover button.copybtn, button.copybtn.success { + opacity: 1; +} + +.highlight button.copybtn:hover { + background-color: rgb(235, 235, 235); +} + +.highlight button.copybtn:active { + background-color: rgb(187, 187, 187); +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/_static/copybutton.js b/_static/copybutton.js new file mode 100644 index 00000000..2ea7ff3e --- /dev/null +++ b/_static/copybutton.js @@ -0,0 +1,248 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '', false, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/_static/copybutton_funcs.js b/_static/copybutton_funcs.js new file mode 100644 index 00000000..dbe1aaad --- /dev/null +++ b/_static/copybutton_funcs.js @@ -0,0 +1,73 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +export function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/_static/css/badge_only.css b/_static/css/badge_only.css new file mode 100644 index 00000000..c718cee4 --- /dev/null +++ b/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff b/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 00000000..6cb60000 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff2 b/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 00000000..7059e231 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff b/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 00000000..f815f63f Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff2 b/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 00000000..f2c76e5b Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/_static/css/fonts/fontawesome-webfont.eot b/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/_static/css/fonts/fontawesome-webfont.svg b/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e --- /dev/null +++ b/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_static/css/fonts/fontawesome-webfont.ttf b/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/_static/css/fonts/fontawesome-webfont.woff b/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/_static/css/fonts/fontawesome-webfont.woff2 b/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/_static/css/fonts/lato-bold-italic.woff b/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 00000000..88ad05b9 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff differ diff --git a/_static/css/fonts/lato-bold-italic.woff2 b/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 00000000..c4e3d804 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/_static/css/fonts/lato-bold.woff b/_static/css/fonts/lato-bold.woff new file mode 100644 index 00000000..c6dff51f Binary files /dev/null and b/_static/css/fonts/lato-bold.woff differ diff --git a/_static/css/fonts/lato-bold.woff2 b/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 00000000..bb195043 Binary files /dev/null and b/_static/css/fonts/lato-bold.woff2 differ diff --git a/_static/css/fonts/lato-normal-italic.woff b/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 00000000..76114bc0 Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff differ diff --git a/_static/css/fonts/lato-normal-italic.woff2 b/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 00000000..3404f37e Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/_static/css/fonts/lato-normal.woff b/_static/css/fonts/lato-normal.woff new file mode 100644 index 00000000..ae1307ff Binary files /dev/null and b/_static/css/fonts/lato-normal.woff differ diff --git a/_static/css/fonts/lato-normal.woff2 b/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 00000000..3bf98433 Binary files /dev/null and b/_static/css/fonts/lato-normal.woff2 differ diff --git a/_static/css/theme.css b/_static/css/theme.css new file mode 100644 index 00000000..19a446a0 --- /dev/null +++ b/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/_static/design.css b/_static/design.css new file mode 100644 index 00000000..46753c09 --- /dev/null +++ b/_static/design.css @@ -0,0 +1,164 @@ +@media screen and (min-width: 768px){ + + html { + scroll-behavior: smooth; + } + + .wy-nav-content { + font-family: -apple-system, BlinkMacSystemFont, + "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + line-height: 2.5em; + } + + * { + font-weight:300; + } + + h1, h2, h3, h4, h5, h6 { + font-weight:300; + font-family: -apple-system, BlinkMacSystemFont, + "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + } + + .my-button { + display: inline-block; + box-sizing: border-box; + padding: 0.3em 1em; + margin: 0; + font-family: inherit; + font-size: inherit; + font-weight: 500; + line-height: 1.5; + color: #7253ed; + text-decoration: none; + vertical-align: baseline; + cursor: pointer; + background-color: #f7f7f7; + border-width: 0; + border-radius: 4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + appearance: none; + } + + .wy-nav-content-wrap { + background-color:#fcfcfc; + } + + .wy-nav-side { + border-right: 1px solid #eeebee; + background-color:#f5f6fa; + } + + .wy-menu-vertical a { + color: #404040; + } + + .wy-side-nav-search { + background-color: initial; + margin-bottom: 20px; + + #rtd-search-form { + border-top: 1px solid #e1e4e5; + margin-top: 10px; + padding-top: 20px; + } + + a { + color: #404040; + font-family: -apple-system, BlinkMacSystemFont, + "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + font-weight:150; + font-size :2.25em; + overflow-wrap: break-word; + } + + a:before { + content: ""; + } + + a:after { + content: ".cpp"; + font-family: -apple-system, BlinkMacSystemFont, + "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", + "Droid Sans", "Helvetica Neue", sans-serif; + color:#6ab0de; + font-size:0.7em; + font-weight:150; + } + + } + + .wy-menu-vertical li.toctree-l1.current > a { + border-top : 1px solid #efefef; + border-bottom : 1px solid #efefef; + } + + .wy-side-nav-search input[type=text] { + border-color: #e1e4e5; + } + + .toctree-l1 a:hover { + background-color:white; + } + + .rst-content div[class^=highlight], .rst-content pre.literal-block { + border: 1px solid #e1e4e5; + border-radius: 4px; + padding: 12px; + background-color: #f8f8f8; + } + + .admonition { + border-left:4px solid #6ab0de; + border-radius:4px; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); + } + + .rst-content .admonition-title, .wy-alert-title, + .rst-content .note .admonition-title, .rst-content .note .wy-alert-title, .rst-content .seealso .admonition-title, .rst-content .seealso .wy-alert-title, .rst-content .wy-alert-info.admonition-todo .admonition-title, .rst-content .wy-alert-info.admonition-todo .wy-alert-title, .rst-content .wy-alert-info.admonition .admonition-title, .rst-content .wy-alert-info.admonition .wy-alert-title, .rst-content .wy-alert-info.attention .admonition-title, .rst-content .wy-alert-info.attention .wy-alert-title, .rst-content .wy-alert-info.caution .admonition-title, .rst-content .wy-alert-info.caution .wy-alert-title, .rst-content .wy-alert-info.danger .admonition-title, .rst-content .wy-alert-info.danger .wy-alert-title, .rst-content .wy-alert-info.error .admonition-title, .rst-content .wy-alert-info.error .wy-alert-title, .rst-content .wy-alert-info.hint .admonition-title, .rst-content .wy-alert-info.hint .wy-alert-title, .rst-content .wy-alert-info.important .admonition-title, .rst-content .wy-alert-info.important .wy-alert-title, .rst-content .wy-alert-info.tip .admonition-title, .rst-content .wy-alert-info.tip .wy-alert-title, .rst-content .wy-alert-info.warning .admonition-title, .rst-content .wy-alert-info.warning .wy-alert-title, .rst-content .wy-alert.wy-alert-info .admonition-title, .wy-alert.wy-alert-info .rst-content .admonition-title, .wy-alert.wy-alert-info .wy-alert-title { + background-color: initial; + color:#6ab0de; + padding:15px; + } + + .rst-content .attention, .warning { + border-left:4px solid #f0ad4e; + } + + .rst-content .danger { + border-left:4px solid #d9534f; + + .admonition-title { + background-color: initial; + color:#d9534f; + } + } + + .hint { + border-left:4px solid #1abc9c; + } + + .rst-content .hint .admonition-title, .rst-content .hint .wy-alert-title, .rst-content .important .admonition-title, .rst-content .important .wy-alert-title, .rst-content .tip .admonition-title, .rst-content .tip .wy-alert-title, .rst-content .wy-alert-success.admonition-todo .admonition-title, .rst-content .wy-alert-success.admonition-todo .wy-alert-title, .rst-content .wy-alert-success.admonition .admonition-title, .rst-content .wy-alert-success.admonition .wy-alert-title, .rst-content .wy-alert-success.attention .admonition-title, .rst-content .wy-alert-success.attention .wy-alert-title, .rst-content .wy-alert-success.caution .admonition-title, .rst-content .wy-alert-success.caution .wy-alert-title, .rst-content .wy-alert-success.danger .admonition-title, .rst-content .wy-alert-success.danger .wy-alert-title, .rst-content .wy-alert-success.error .admonition-title, .rst-content .wy-alert-success.error .wy-alert-title, .rst-content .wy-alert-success.note .admonition-title, .rst-content .wy-alert-success.note .wy-alert-title, .rst-content .wy-alert-success.seealso .admonition-title, .rst-content .wy-alert-success.seealso .wy-alert-title, .rst-content .wy-alert-success.warning .admonition-title, .rst-content .wy-alert-success.warning .wy-alert-title, .rst-content .wy-alert.wy-alert-success .admonition-title, .wy-alert.wy-alert-success .rst-content .admonition-title, .wy-alert.wy-alert-success .wy-alert-title { + background-color: initial; + color:#1abc9c; + } + + .rst-content .attention .admonition-title, + .rst-content .caution .admonition-title, + .rst-content .warning .admonition-title { + background-color: initial; + color:#f0ad4e; + } + + .fa-exclamation-circle:before, .rst-content .admonition-title:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before { + content: ""; + } + +} diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..d06a71d7 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..7e4c114f --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 00000000..a858a410 Binary files /dev/null and b/_static/file.png differ diff --git a/_static/graphviz.css b/_static/graphviz.css new file mode 100644 index 00000000..8d81c02e --- /dev/null +++ b/_static/graphviz.css @@ -0,0 +1,19 @@ +/* + * graphviz.css + * ~~~~~~~~~~~~ + * + * Sphinx stylesheet -- graphviz extension. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +img.graphviz { + border: 0; + max-width: 100%; +} + +object.graphviz { + max-width: 100%; +} diff --git a/_static/jquery.js b/_static/jquery.js new file mode 100644 index 00000000..c4c6022f --- /dev/null +++ b/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/_static/js/html5shiv.min.js b/_static/js/html5shiv.min.js new file mode 100644 index 00000000..cd1c674f --- /dev/null +++ b/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/_static/js/theme.js b/_static/js/theme.js new file mode 100644 index 00000000..1fddb6ee --- /dev/null +++ b/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 00000000..d96755fd Binary files /dev/null and b/_static/minus.png differ diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 00000000..7107cec9 Binary files /dev/null and b/_static/plus.png differ diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 00000000..9c2afde4 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #ffffff; } +.highlight .c { color: #888888 } /* Comment */ +.highlight .err { color: #FF0000; background-color: #FFAAAA } /* Error */ +.highlight .k { color: #008800; font-weight: bold } /* Keyword */ +.highlight .o { color: #333333 } /* Operator */ +.highlight .ch { color: #888888 } /* Comment.Hashbang */ +.highlight .cm { color: #888888 } /* Comment.Multiline */ +.highlight .cp { color: #557799 } /* Comment.Preproc */ +.highlight .cpf { color: #888888 } /* Comment.PreprocFile */ +.highlight .c1 { color: #888888 } /* Comment.Single */ +.highlight .cs { color: #cc0000; font-weight: bold } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #003388; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #333399; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #6600EE; font-weight: bold } /* Literal.Number */ +.highlight .s { background-color: #fff0f0 } /* Literal.String */ +.highlight .na { color: #0000CC } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #BB0066; font-weight: bold } /* Name.Class */ +.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #880000; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #FF0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0066BB; font-weight: bold } /* Name.Function */ +.highlight .nl { color: #997700; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #007700 } /* Name.Tag */ +.highlight .nv { color: #996633 } /* Name.Variable */ +.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #6600EE; font-weight: bold } /* Literal.Number.Bin */ +.highlight .mf { color: #6600EE; font-weight: bold } /* Literal.Number.Float */ +.highlight .mh { color: #005588; font-weight: bold } /* Literal.Number.Hex */ +.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ +.highlight .mo { color: #4400EE; font-weight: bold } /* Literal.Number.Oct */ +.highlight .sa { background-color: #fff0f0 } /* Literal.String.Affix */ +.highlight .sb { background-color: #fff0f0 } /* Literal.String.Backtick */ +.highlight .sc { color: #0044DD } /* Literal.String.Char */ +.highlight .dl { background-color: #fff0f0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #DD4422 } /* Literal.String.Doc */ +.highlight .s2 { background-color: #fff0f0 } /* Literal.String.Double */ +.highlight .se { color: #666666; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */ +.highlight .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ +.highlight .si { background-color: #eeeeee } /* Literal.String.Interpol */ +.highlight .sx { color: #DD2200; background-color: #fff0f0 } /* Literal.String.Other */ +.highlight .sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */ +.highlight .s1 { background-color: #fff0f0 } /* Literal.String.Single */ +.highlight .ss { color: #AA6600 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0066BB; font-weight: bold } /* Name.Function.Magic */ +.highlight .vc { color: #336699 } /* Name.Variable.Class */ +.highlight .vg { color: #dd7700; font-weight: bold } /* Name.Variable.Global */ +.highlight .vi { color: #3333BB } /* Name.Variable.Instance */ +.highlight .vm { color: #996633 } /* Name.Variable.Magic */ +.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 00000000..7918c3fa --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,574 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 00000000..8a96c69a --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/api/classes/branch-and-bound/BranchAndBound.html b/api/classes/branch-and-bound/BranchAndBound.html new file mode 100644 index 00000000..16d11ff1 --- /dev/null +++ b/api/classes/branch-and-bound/BranchAndBound.html @@ -0,0 +1,716 @@ + + + + + + + BranchAndBound — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/BranchAndBoundCallback.html b/api/classes/branch-and-bound/BranchAndBoundCallback.html new file mode 100644 index 00000000..d60d5aee --- /dev/null +++ b/api/classes/branch-and-bound/BranchAndBoundCallback.html @@ -0,0 +1,345 @@ + + + + + + + BranchAndBoundCallback — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.html b/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.html new file mode 100644 index 00000000..e0629fdd --- /dev/null +++ b/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.html @@ -0,0 +1,174 @@ + + + + + + + BranchAndBoundCallbackFactory — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/cuts/KnapsackCover.html b/api/classes/branch-and-bound/cuts/KnapsackCover.html new file mode 100644 index 00000000..79c62703 --- /dev/null +++ b/api/classes/branch-and-bound/cuts/KnapsackCover.html @@ -0,0 +1,205 @@ + + + + + + + Cuts::KnapsackCover — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/cuts/index.html b/api/classes/branch-and-bound/cuts/index.html new file mode 100644 index 00000000..696edee3 --- /dev/null +++ b/api/classes/branch-and-bound/cuts/index.html @@ -0,0 +1,158 @@ + + + + + + + Cutting Planes — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/heuristics/LocalBranching.html b/api/classes/branch-and-bound/heuristics/LocalBranching.html new file mode 100644 index 00000000..7146e3d0 --- /dev/null +++ b/api/classes/branch-and-bound/heuristics/LocalBranching.html @@ -0,0 +1,197 @@ + + + + + + + Heuristics::LocalBranching — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/heuristics/RENS.html b/api/classes/branch-and-bound/heuristics/RENS.html new file mode 100644 index 00000000..45c572f8 --- /dev/null +++ b/api/classes/branch-and-bound/heuristics/RENS.html @@ -0,0 +1,197 @@ + + + + + + + Heuristics::RENS — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/heuristics/SimpleRounding.html b/api/classes/branch-and-bound/heuristics/SimpleRounding.html new file mode 100644 index 00000000..dcf137df --- /dev/null +++ b/api/classes/branch-and-bound/heuristics/SimpleRounding.html @@ -0,0 +1,184 @@ + + + + + + + Heuristics::SimpleRounding — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/heuristics/index.html b/api/classes/branch-and-bound/heuristics/index.html new file mode 100644 index 00000000..05c414eb --- /dev/null +++ b/api/classes/branch-and-bound/heuristics/index.html @@ -0,0 +1,162 @@ + + + + + + + Heuristics — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/index.html b/api/classes/branch-and-bound/index.html new file mode 100644 index 00000000..c35a177c --- /dev/null +++ b/api/classes/branch-and-bound/index.html @@ -0,0 +1,193 @@ + + + + + + + Branch-and-Bound Algorithm — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/node-selection/BestBound.html b/api/classes/branch-and-bound/node-selection/BestBound.html new file mode 100644 index 00000000..fe36f3e3 --- /dev/null +++ b/api/classes/branch-and-bound/node-selection/BestBound.html @@ -0,0 +1,186 @@ + + + + + + + BestBound — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/node-selection/BestEstimate.html b/api/classes/branch-and-bound/node-selection/BestEstimate.html new file mode 100644 index 00000000..30ebd615 --- /dev/null +++ b/api/classes/branch-and-bound/node-selection/BestEstimate.html @@ -0,0 +1,187 @@ + + + + + + + BestEstimate — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/node-selection/BreadthFirst.html b/api/classes/branch-and-bound/node-selection/BreadthFirst.html new file mode 100644 index 00000000..334fe648 --- /dev/null +++ b/api/classes/branch-and-bound/node-selection/BreadthFirst.html @@ -0,0 +1,186 @@ + + + + + + + BreadthFirst — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/node-selection/DepthFirst.html b/api/classes/branch-and-bound/node-selection/DepthFirst.html new file mode 100644 index 00000000..516a3275 --- /dev/null +++ b/api/classes/branch-and-bound/node-selection/DepthFirst.html @@ -0,0 +1,186 @@ + + + + + + + DepthFirst — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/node-selection/WorstBound.html b/api/classes/branch-and-bound/node-selection/WorstBound.html new file mode 100644 index 00000000..1d943103 --- /dev/null +++ b/api/classes/branch-and-bound/node-selection/WorstBound.html @@ -0,0 +1,186 @@ + + + + + + + WorstBound — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/node-selection/index.html b/api/classes/branch-and-bound/node-selection/index.html new file mode 100644 index 00000000..4acc32ee --- /dev/null +++ b/api/classes/branch-and-bound/node-selection/index.html @@ -0,0 +1,166 @@ + + + + + + + Node Selection Rules — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.html b/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.html new file mode 100644 index 00000000..857bbe4a --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.html @@ -0,0 +1,211 @@ + + + + + + + FirstInfeasibleFound — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/LeastInfeasible.html b/api/classes/branch-and-bound/variable-selection/LeastInfeasible.html new file mode 100644 index 00000000..9d77e4b5 --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/LeastInfeasible.html @@ -0,0 +1,211 @@ + + + + + + + LeastInfeasible — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/LocalBranching.html b/api/classes/branch-and-bound/variable-selection/LocalBranching.html new file mode 100644 index 00000000..980cb09f --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/LocalBranching.html @@ -0,0 +1,201 @@ + + + + + + + Heuristics::LocalBranching — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/MostInfeasible.html b/api/classes/branch-and-bound/variable-selection/MostInfeasible.html new file mode 100644 index 00000000..85c1127b --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/MostInfeasible.html @@ -0,0 +1,211 @@ + + + + + + + MostInfeasible — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/PseudoCost.html b/api/classes/branch-and-bound/variable-selection/PseudoCost.html new file mode 100644 index 00000000..74e71d43 --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/PseudoCost.html @@ -0,0 +1,211 @@ + + + + + + + PseudoCost — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/StrongBranching.html b/api/classes/branch-and-bound/variable-selection/StrongBranching.html new file mode 100644 index 00000000..e20b2ba0 --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/StrongBranching.html @@ -0,0 +1,231 @@ + + + + + + + StrongBranching — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/UniformlyRandom.html b/api/classes/branch-and-bound/variable-selection/UniformlyRandom.html new file mode 100644 index 00000000..a42676bc --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/UniformlyRandom.html @@ -0,0 +1,216 @@ + + + + + + + UniformlyRandom — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/branch-and-bound/variable-selection/index.html b/api/classes/branch-and-bound/variable-selection/index.html new file mode 100644 index 00000000..4fa9b406 --- /dev/null +++ b/api/classes/branch-and-bound/variable-selection/index.html @@ -0,0 +1,170 @@ + + + + + + + Branching Rules — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.html b/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.html new file mode 100644 index 00000000..1a6d3264 --- /dev/null +++ b/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.html @@ -0,0 +1,488 @@ + + + + + + + Robust::ColumnAndConstraintGeneration — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.html b/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.html new file mode 100644 index 00000000..fa34ce26 --- /dev/null +++ b/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.html @@ -0,0 +1,428 @@ + + + + + + + Optimizers::Robust::ColumnAndConstraintGeneration — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-and-constraint-generation/index.html b/api/classes/column-and-constraint-generation/index.html new file mode 100644 index 00000000..d0c20f75 --- /dev/null +++ b/api/classes/column-and-constraint-generation/index.html @@ -0,0 +1,150 @@ + + + + + + + Column-and-Constraint Generation Algorithm — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/ArtificialCosts.html b/api/classes/column-generation/ArtificialCosts.html new file mode 100644 index 00000000..5eca84dc --- /dev/null +++ b/api/classes/column-generation/ArtificialCosts.html @@ -0,0 +1,225 @@ + + + + + + + DantzigWolfe::ArtificialCosts — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/DantzigWolfeDecomposition.html b/api/classes/column-generation/DantzigWolfeDecomposition.html new file mode 100644 index 00000000..e1e5bb02 --- /dev/null +++ b/api/classes/column-generation/DantzigWolfeDecomposition.html @@ -0,0 +1,517 @@ + + + + + + + DantzigWolfeDecomposition — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/FarkasPricing.html b/api/classes/column-generation/FarkasPricing.html new file mode 100644 index 00000000..e74c09da --- /dev/null +++ b/api/classes/column-generation/FarkasPricing.html @@ -0,0 +1,205 @@ + + + + + + + DantzigWolfe::FarkasPricing — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/IntegerMaster.html b/api/classes/column-generation/IntegerMaster.html new file mode 100644 index 00000000..5c075111 --- /dev/null +++ b/api/classes/column-generation/IntegerMaster.html @@ -0,0 +1,265 @@ + + + + + + + Heuristics::IntegerMaster — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.html b/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.html new file mode 100644 index 00000000..37791cf7 --- /dev/null +++ b/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.html @@ -0,0 +1,435 @@ + + + + + + + Optimizers::DantzigWolfeDecomposition — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/index.html b/api/classes/column-generation/index.html new file mode 100644 index 00000000..26b7746c --- /dev/null +++ b/api/classes/column-generation/index.html @@ -0,0 +1,158 @@ + + + + + + + Column Generation Algorithm — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/column-generation/stabilization/Neame.html b/api/classes/column-generation/stabilization/Neame.html new file mode 100644 index 00000000..1d90f1d1 --- /dev/null +++ b/api/classes/column-generation/stabilization/Neame.html @@ -0,0 +1,205 @@ + + + + + + + DantzigWolfe::Neame — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/stabilization/Wentges.html b/api/classes/column-generation/stabilization/Wentges.html new file mode 100644 index 00000000..57c333ab --- /dev/null +++ b/api/classes/column-generation/stabilization/Wentges.html @@ -0,0 +1,205 @@ + + + + + + + DantzigWolfe::Wentges — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/column-generation/stabilization/index.html b/api/classes/column-generation/stabilization/index.html new file mode 100644 index 00000000..05ce9fa1 --- /dev/null +++ b/api/classes/column-generation/stabilization/index.html @@ -0,0 +1,159 @@ + + + + + + + Stabilization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/common/Annotation.html b/api/classes/common/Annotation.html new file mode 100644 index 00000000..de76ada9 --- /dev/null +++ b/api/classes/common/Annotation.html @@ -0,0 +1,318 @@ + + + + + + + Annotation — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Column.html b/api/classes/common/Column.html new file mode 100644 index 00000000..7713c06f --- /dev/null +++ b/api/classes/common/Column.html @@ -0,0 +1,478 @@ + + + + + + + Column — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Constant.html b/api/classes/common/Constant.html new file mode 100644 index 00000000..86815a25 --- /dev/null +++ b/api/classes/common/Constant.html @@ -0,0 +1,547 @@ + + + + + + + Constant — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Ctr.html b/api/classes/common/Ctr.html new file mode 100644 index 00000000..d0f52189 --- /dev/null +++ b/api/classes/common/Ctr.html @@ -0,0 +1,367 @@ + + + + + + + Ctr — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/CtrType.html b/api/classes/common/CtrType.html new file mode 100644 index 00000000..2150c051 --- /dev/null +++ b/api/classes/common/CtrType.html @@ -0,0 +1,182 @@ + + + + + + + CtrType — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Env.html b/api/classes/common/Env.html new file mode 100644 index 00000000..e29deb9f --- /dev/null +++ b/api/classes/common/Env.html @@ -0,0 +1,222 @@ + + + + + + + Env — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Expr.html b/api/classes/common/Expr.html new file mode 100644 index 00000000..986a3a07 --- /dev/null +++ b/api/classes/common/Expr.html @@ -0,0 +1,339 @@ + + + + + + + Expr — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/LinExpr.html b/api/classes/common/LinExpr.html new file mode 100644 index 00000000..0f1ba4b1 --- /dev/null +++ b/api/classes/common/LinExpr.html @@ -0,0 +1,405 @@ + + + + + + + LinExpr — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Model.html b/api/classes/common/Model.html new file mode 100644 index 00000000..83a5bd4c --- /dev/null +++ b/api/classes/common/Model.html @@ -0,0 +1,1771 @@ + + + + + + + Model — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Param.html b/api/classes/common/Param.html new file mode 100644 index 00000000..a7067ebf --- /dev/null +++ b/api/classes/common/Param.html @@ -0,0 +1,306 @@ + + + + + + + Param — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/QuadExpr.html b/api/classes/common/QuadExpr.html new file mode 100644 index 00000000..87b3c4dc --- /dev/null +++ b/api/classes/common/QuadExpr.html @@ -0,0 +1,229 @@ + + + + + + + QuadExpr — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Row.html b/api/classes/common/Row.html new file mode 100644 index 00000000..ee833147 --- /dev/null +++ b/api/classes/common/Row.html @@ -0,0 +1,556 @@ + + + + + + + Row — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/SolutionDual.html b/api/classes/common/SolutionDual.html new file mode 100644 index 00000000..7ffb3ace --- /dev/null +++ b/api/classes/common/SolutionDual.html @@ -0,0 +1,440 @@ + + + + + + + Solution::Dual — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/SolutionPrimal.html b/api/classes/common/SolutionPrimal.html new file mode 100644 index 00000000..f95c9914 --- /dev/null +++ b/api/classes/common/SolutionPrimal.html @@ -0,0 +1,440 @@ + + + + + + + Solution::Primal — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/TempCtr.html b/api/classes/common/TempCtr.html new file mode 100644 index 00000000..6ca3d497 --- /dev/null +++ b/api/classes/common/TempCtr.html @@ -0,0 +1,303 @@ + + + + + + + TempCtr — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/TempVar.html b/api/classes/common/TempVar.html new file mode 100644 index 00000000..30134362 --- /dev/null +++ b/api/classes/common/TempVar.html @@ -0,0 +1,334 @@ + + + + + + + TempVar — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/Var.html b/api/classes/common/Var.html new file mode 100644 index 00000000..fb96e4dc --- /dev/null +++ b/api/classes/common/Var.html @@ -0,0 +1,376 @@ + + + + + + + Var — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/VarType.html b/api/classes/common/VarType.html new file mode 100644 index 00000000..2547a64a --- /dev/null +++ b/api/classes/common/VarType.html @@ -0,0 +1,182 @@ + + + + + + + VarType — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/common/index.html b/api/classes/common/index.html new file mode 100644 index 00000000..f266b73f --- /dev/null +++ b/api/classes/common/index.html @@ -0,0 +1,182 @@ + + + + + + + Common — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/external-bilevel/MibS.html b/api/classes/external-bilevel/MibS.html new file mode 100644 index 00000000..35a9d5c9 --- /dev/null +++ b/api/classes/external-bilevel/MibS.html @@ -0,0 +1,468 @@ + + + + + + + Bilevel::Mibs — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-bilevel/Optimizers_MibS.html b/api/classes/external-bilevel/Optimizers_MibS.html new file mode 100644 index 00000000..8a146af3 --- /dev/null +++ b/api/classes/external-bilevel/Optimizers_MibS.html @@ -0,0 +1,149 @@ + + + + + + + Optimizers::Bilevel::Mibs — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-bilevel/index.html b/api/classes/external-bilevel/index.html new file mode 100644 index 00000000..c5f3272c --- /dev/null +++ b/api/classes/external-bilevel/index.html @@ -0,0 +1,150 @@ + + + + + + + External Bilevel Solvers — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/GLPK.html b/api/classes/external-mip/GLPK.html new file mode 100644 index 00000000..5822fd7b --- /dev/null +++ b/api/classes/external-mip/GLPK.html @@ -0,0 +1,488 @@ + + + + + + + GLPK — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Gurobi.html b/api/classes/external-mip/Gurobi.html new file mode 100644 index 00000000..13ef24cf --- /dev/null +++ b/api/classes/external-mip/Gurobi.html @@ -0,0 +1,518 @@ + + + + + + + Gurobi — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/HiGHS.html b/api/classes/external-mip/HiGHS.html new file mode 100644 index 00000000..3ed187cd --- /dev/null +++ b/api/classes/external-mip/HiGHS.html @@ -0,0 +1,488 @@ + + + + + + + HiGHS — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Mosek.html b/api/classes/external-mip/Mosek.html new file mode 100644 index 00000000..ab881015 --- /dev/null +++ b/api/classes/external-mip/Mosek.html @@ -0,0 +1,503 @@ + + + + + + + Mosek — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Optimizers_GLPK.html b/api/classes/external-mip/Optimizers_GLPK.html new file mode 100644 index 00000000..11074f39 --- /dev/null +++ b/api/classes/external-mip/Optimizers_GLPK.html @@ -0,0 +1,368 @@ + + + + + + + Optimizers::GLPK — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Optimizers_Gurobi.html b/api/classes/external-mip/Optimizers_Gurobi.html new file mode 100644 index 00000000..fb461a8e --- /dev/null +++ b/api/classes/external-mip/Optimizers_Gurobi.html @@ -0,0 +1,426 @@ + + + + + + + Optimizers::Gurobi — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Optimizers_HiGHS.html b/api/classes/external-mip/Optimizers_HiGHS.html new file mode 100644 index 00000000..896d57b7 --- /dev/null +++ b/api/classes/external-mip/Optimizers_HiGHS.html @@ -0,0 +1,156 @@ + + + + + + + Optimizers::HiGHS — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Optimizers_Mosek.html b/api/classes/external-mip/Optimizers_Mosek.html new file mode 100644 index 00000000..29f43c48 --- /dev/null +++ b/api/classes/external-mip/Optimizers_Mosek.html @@ -0,0 +1,156 @@ + + + + + + + Optimizers::Mosek — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Osi/OsiCbc.html b/api/classes/external-mip/Osi/OsiCbc.html new file mode 100644 index 00000000..6ce8a480 --- /dev/null +++ b/api/classes/external-mip/Osi/OsiCbc.html @@ -0,0 +1,470 @@ + + + + + + + OsiCbc — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Osi/OsiClp.html b/api/classes/external-mip/Osi/OsiClp.html new file mode 100644 index 00000000..c411fced --- /dev/null +++ b/api/classes/external-mip/Osi/OsiClp.html @@ -0,0 +1,470 @@ + + + + + + + OsiClp — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Osi/OsiCplex.html b/api/classes/external-mip/Osi/OsiCplex.html new file mode 100644 index 00000000..c122c76e --- /dev/null +++ b/api/classes/external-mip/Osi/OsiCplex.html @@ -0,0 +1,470 @@ + + + + + + + OsiCplex — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Osi/OsiSymphony.html b/api/classes/external-mip/Osi/OsiSymphony.html new file mode 100644 index 00000000..955ad3a9 --- /dev/null +++ b/api/classes/external-mip/Osi/OsiSymphony.html @@ -0,0 +1,470 @@ + + + + + + + OsiSymphony — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/Osi/index.html b/api/classes/external-mip/Osi/index.html new file mode 100644 index 00000000..70b32ea8 --- /dev/null +++ b/api/classes/external-mip/Osi/index.html @@ -0,0 +1,523 @@ + + + + + + + COIN-OR/Osi (Cplex, Xpress, Cbc, …) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/external-mip/index.html b/api/classes/external-mip/index.html new file mode 100644 index 00000000..f479e9f6 --- /dev/null +++ b/api/classes/external-mip/index.html @@ -0,0 +1,189 @@ + + + + + + + External MIP solvers — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/classes/index.html b/api/classes/index.html new file mode 100644 index 00000000..a1560dd4 --- /dev/null +++ b/api/classes/index.html @@ -0,0 +1,229 @@ + + + + + + + Class List — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + \ No newline at end of file diff --git a/api/classes/universal-callbacks/Callback.html b/api/classes/universal-callbacks/Callback.html new file mode 100644 index 00000000..8e5936fc --- /dev/null +++ b/api/classes/universal-callbacks/Callback.html @@ -0,0 +1,308 @@ + + + + + + + Callback — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/universal-callbacks/CallbackFactory.html b/api/classes/universal-callbacks/CallbackFactory.html new file mode 100644 index 00000000..d6c56cf1 --- /dev/null +++ b/api/classes/universal-callbacks/CallbackFactory.html @@ -0,0 +1,171 @@ + + + + + + + CallbackFactory — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/universal-callbacks/LazyCutCallback.html b/api/classes/universal-callbacks/LazyCutCallback.html new file mode 100644 index 00000000..19e1326e --- /dev/null +++ b/api/classes/universal-callbacks/LazyCutCallback.html @@ -0,0 +1,227 @@ + + + + + + + LazyCutCallback — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/universal-callbacks/UserCutCallback.html b/api/classes/universal-callbacks/UserCutCallback.html new file mode 100644 index 00000000..64ce8d15 --- /dev/null +++ b/api/classes/universal-callbacks/UserCutCallback.html @@ -0,0 +1,188 @@ + + + + + + + UserCutCallback — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/classes/universal-callbacks/index.html b/api/classes/universal-callbacks/index.html new file mode 100644 index 00000000..cdfb2a03 --- /dev/null +++ b/api/classes/universal-callbacks/index.html @@ -0,0 +1,154 @@ + + + + + + + Universal Callbacks — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/constants/index.html b/api/constants/index.html new file mode 100644 index 00000000..82486f3a --- /dev/null +++ b/api/constants/index.html @@ -0,0 +1,128 @@ + + + + + + + Constants — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/constants/tolerances.html b/api/constants/tolerances.html new file mode 100644 index 00000000..6588d141 --- /dev/null +++ b/api/constants/tolerances.html @@ -0,0 +1,256 @@ + + + + + + + Tolerances and Numerics — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/index.html b/api/index.html new file mode 100644 index 00000000..21a9d792 --- /dev/null +++ b/api/index.html @@ -0,0 +1,135 @@ + + + + + + + API — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/types/common/VarType.html b/api/types/common/VarType.html new file mode 100644 index 00000000..3248516f --- /dev/null +++ b/api/types/common/VarType.html @@ -0,0 +1,141 @@ + + + + + + + VarType — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/types/index.html b/api/types/index.html new file mode 100644 index 00000000..22a86eaf --- /dev/null +++ b/api/types/index.html @@ -0,0 +1,137 @@ + + + + + + + Type List — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/types/universal-callbacks/CallbackEvent.html b/api/types/universal-callbacks/CallbackEvent.html new file mode 100644 index 00000000..329d4b20 --- /dev/null +++ b/api/types/universal-callbacks/CallbackEvent.html @@ -0,0 +1,151 @@ + + + + + + + Events — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/api/types/universal-callbacks/index.html b/api/types/universal-callbacks/index.html new file mode 100644 index 00000000..ae2a226e --- /dev/null +++ b/api/types/universal-callbacks/index.html @@ -0,0 +1,125 @@ + + + + + + + Class List — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/developer_guide/build-the-doc.html b/developer_guide/build-the-doc.html new file mode 100644 index 00000000..72abea94 --- /dev/null +++ b/developer_guide/build-the-doc.html @@ -0,0 +1,175 @@ + + + + + + + Build the doc! — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/developer_guide/index.html b/developer_guide/index.html new file mode 100644 index 00000000..87f18506 --- /dev/null +++ b/developer_guide/index.html @@ -0,0 +1,144 @@ + + + + + + + Developer guide — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/developer_guide/tests.html b/developer_guide/tests.html new file mode 100644 index 00000000..ffc989b9 --- /dev/null +++ b/developer_guide/tests.html @@ -0,0 +1,196 @@ + + + + + + + Unit and integration tests — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/examples/bilevel-problem.html b/examples/bilevel-problem.html new file mode 100644 index 00000000..868d2dd1 --- /dev/null +++ b/examples/bilevel-problem.html @@ -0,0 +1,192 @@ + + + + + + + Toy Example — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/examples/facility-location-problem.html b/examples/facility-location-problem.html new file mode 100644 index 00000000..9c0b0b2d --- /dev/null +++ b/examples/facility-location-problem.html @@ -0,0 +1,205 @@ + + + + + + + Facility Location Problem — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/examples/generalized-assignment-problem.html b/examples/generalized-assignment-problem.html new file mode 100644 index 00000000..44b5105c --- /dev/null +++ b/examples/generalized-assignment-problem.html @@ -0,0 +1,219 @@ + + + + + + + Generalized Assignment Problem — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 00000000..32c0034d --- /dev/null +++ b/examples/index.html @@ -0,0 +1,163 @@ + + + + + + + Examples — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/examples/knapsack-problem.html b/examples/knapsack-problem.html new file mode 100644 index 00000000..489b1bec --- /dev/null +++ b/examples/knapsack-problem.html @@ -0,0 +1,173 @@ + + + + + + + Knapsack Problem — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html new file mode 100644 index 00000000..880c51c0 --- /dev/null +++ b/genindex.html @@ -0,0 +1,2318 @@ + + + + + + Index — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..c5f64c35 --- /dev/null +++ b/index.html @@ -0,0 +1,306 @@ + + + + + + + What Is Idol? — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/installation/global_installation.html b/installation/global_installation.html new file mode 100644 index 00000000..03c96f26 --- /dev/null +++ b/installation/global_installation.html @@ -0,0 +1,206 @@ + + + + + + + Global Installation — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/installation/index.html b/installation/index.html new file mode 100644 index 00000000..858ac542 --- /dev/null +++ b/installation/index.html @@ -0,0 +1,154 @@ + + + + + + + Installation — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/installation/linking.html b/installation/linking.html new file mode 100644 index 00000000..09c253be --- /dev/null +++ b/installation/linking.html @@ -0,0 +1,167 @@ + + + + + + + Linking Your C++ Project with Idol — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/installation/local_installation.html b/installation/local_installation.html new file mode 100644 index 00000000..7d216a34 --- /dev/null +++ b/installation/local_installation.html @@ -0,0 +1,204 @@ + + + + + + + Local Installation — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/installation/mosek-and-socp.html b/installation/mosek-and-socp.html new file mode 100644 index 00000000..8f65e5a1 --- /dev/null +++ b/installation/mosek-and-socp.html @@ -0,0 +1,170 @@ + + + + + + + Using Idol with Eigen — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/installation/options.html b/installation/options.html new file mode 100644 index 00000000..fc2e0d4a --- /dev/null +++ b/installation/options.html @@ -0,0 +1,264 @@ + + + + + + + List of CMake Options — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 00000000..2b41497d Binary files /dev/null and b/objects.inv differ diff --git a/references.html b/references.html new file mode 100644 index 00000000..f6f6758a --- /dev/null +++ b/references.html @@ -0,0 +1,176 @@ + + + + + + + References — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 00000000..06fef9ea --- /dev/null +++ b/search.html @@ -0,0 +1,136 @@ + + + + + + Search — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 00000000..a0fdd542 --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": [".api/index", ".api/optimizers/index", ".api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen", ".api/optimizers/robust-optimization/column-and-constraint-generation/index", ".api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel", ".api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize", ".api/optimizers/robust-optimization/column-and-constraint-generation/separators/index", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index", ".api/optimizers/robust-optimization/index", ".api/problems/ProblemsFLP", ".api/problems/ProblemsGAP", ".api/problems/ProblemsKP", ".api/problems/ProblemsMKP", ".api/problems/ProblemsSRP", ".api/problems/index", ".api/tolerances", "api/classes/branch-and-bound/BranchAndBound", "api/classes/branch-and-bound/BranchAndBoundCallback", "api/classes/branch-and-bound/BranchAndBoundCallbackFactory", "api/classes/branch-and-bound/cuts/KnapsackCover", "api/classes/branch-and-bound/cuts/index", "api/classes/branch-and-bound/heuristics/LocalBranching", "api/classes/branch-and-bound/heuristics/RENS", "api/classes/branch-and-bound/heuristics/SimpleRounding", "api/classes/branch-and-bound/heuristics/index", "api/classes/branch-and-bound/index", "api/classes/branch-and-bound/node-selection/BestBound", "api/classes/branch-and-bound/node-selection/BestEstimate", "api/classes/branch-and-bound/node-selection/BreadthFirst", "api/classes/branch-and-bound/node-selection/DepthFirst", "api/classes/branch-and-bound/node-selection/WorstBound", "api/classes/branch-and-bound/node-selection/index", "api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound", "api/classes/branch-and-bound/variable-selection/LeastInfeasible", "api/classes/branch-and-bound/variable-selection/LocalBranching", "api/classes/branch-and-bound/variable-selection/MostInfeasible", "api/classes/branch-and-bound/variable-selection/PseudoCost", "api/classes/branch-and-bound/variable-selection/StrongBranching", "api/classes/branch-and-bound/variable-selection/UniformlyRandom", "api/classes/branch-and-bound/variable-selection/index", "api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration", "api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration", "api/classes/column-and-constraint-generation/index", "api/classes/column-generation/ArtificialCosts", "api/classes/column-generation/DantzigWolfeDecomposition", "api/classes/column-generation/FarkasPricing", "api/classes/column-generation/IntegerMaster", "api/classes/column-generation/Optimizers_DantzigWolfeDecomposition", "api/classes/column-generation/index", "api/classes/column-generation/stabilization/Neame", "api/classes/column-generation/stabilization/Wentges", "api/classes/column-generation/stabilization/index", "api/classes/common/Annotation", "api/classes/common/Column", "api/classes/common/Constant", "api/classes/common/Ctr", "api/classes/common/CtrType", "api/classes/common/Env", "api/classes/common/Expr", "api/classes/common/LinExpr", "api/classes/common/Model", "api/classes/common/Param", "api/classes/common/QuadExpr", "api/classes/common/Row", "api/classes/common/SolutionDual", "api/classes/common/SolutionPrimal", "api/classes/common/TempCtr", "api/classes/common/TempVar", "api/classes/common/Var", "api/classes/common/VarType", "api/classes/common/index", "api/classes/external-bilevel/MibS", "api/classes/external-bilevel/Optimizers_MibS", "api/classes/external-bilevel/index", "api/classes/external-mip/GLPK", "api/classes/external-mip/Gurobi", "api/classes/external-mip/HiGHS", "api/classes/external-mip/Mosek", "api/classes/external-mip/Optimizers_GLPK", "api/classes/external-mip/Optimizers_Gurobi", "api/classes/external-mip/Optimizers_HiGHS", "api/classes/external-mip/Optimizers_Mosek", "api/classes/external-mip/Osi/OsiCbc", "api/classes/external-mip/Osi/OsiClp", "api/classes/external-mip/Osi/OsiCplex", "api/classes/external-mip/Osi/OsiSymphony", "api/classes/external-mip/Osi/index", "api/classes/external-mip/index", "api/classes/index", "api/classes/universal-callbacks/Callback", "api/classes/universal-callbacks/CallbackFactory", "api/classes/universal-callbacks/LazyCutCallback", "api/classes/universal-callbacks/UserCutCallback", "api/classes/universal-callbacks/index", "api/constants/index", "api/constants/tolerances", "api/index", "api/types/common/VarType", "api/types/index", "api/types/universal-callbacks/CallbackEvent", "api/types/universal-callbacks/index", "developer_guide/build-the-doc", "developer_guide/index", "developer_guide/tests", "examples/bilevel-problem", "examples/facility-location-problem", "examples/generalized-assignment-problem", "examples/index", "examples/knapsack-problem", "index", "installation/global_installation", "installation/index", "installation/linking", "installation/local_installation", "installation/mosek-and-socp", "installation/options", "references", "tutorials/basics/benders", "tutorials/basics/importing_a_model", "tutorials/basics/index", "tutorials/basics/modeling_optimization_problems", "tutorials/basics/using_an_external_solver", "tutorials/bilevel-optimization/index", "tutorials/branch-and-bound/basic", "tutorials/branch-and-bound/index", "tutorials/branch-and-bound/priorities", "tutorials/dantzig-wolfe/dantzig_wolfe", "tutorials/dantzig-wolfe/heuristic", "tutorials/dantzig-wolfe/index", "tutorials/dantzig-wolfe/stabilization", "tutorials/dantzig-wolfe/strong-branching", "tutorials/index", "tutorials/mixed-integer-programming/index", "tutorials/robust-optimization/index"], "filenames": [".api/index.rst", ".api/optimizers/index.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/index.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.rst", ".api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.rst", ".api/optimizers/robust-optimization/index.rst", ".api/problems/ProblemsFLP.rst", ".api/problems/ProblemsGAP.rst", ".api/problems/ProblemsKP.rst", ".api/problems/ProblemsMKP.rst", ".api/problems/ProblemsSRP.rst", ".api/problems/index.rst", ".api/tolerances.rst", "api/classes/branch-and-bound/BranchAndBound.rst", "api/classes/branch-and-bound/BranchAndBoundCallback.rst", "api/classes/branch-and-bound/BranchAndBoundCallbackFactory.rst", "api/classes/branch-and-bound/cuts/KnapsackCover.rst", "api/classes/branch-and-bound/cuts/index.rst", "api/classes/branch-and-bound/heuristics/LocalBranching.rst", "api/classes/branch-and-bound/heuristics/RENS.rst", "api/classes/branch-and-bound/heuristics/SimpleRounding.rst", "api/classes/branch-and-bound/heuristics/index.rst", "api/classes/branch-and-bound/index.rst", "api/classes/branch-and-bound/node-selection/BestBound.rst", "api/classes/branch-and-bound/node-selection/BestEstimate.rst", "api/classes/branch-and-bound/node-selection/BreadthFirst.rst", "api/classes/branch-and-bound/node-selection/DepthFirst.rst", "api/classes/branch-and-bound/node-selection/WorstBound.rst", "api/classes/branch-and-bound/node-selection/index.rst", "api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.rst", "api/classes/branch-and-bound/variable-selection/LeastInfeasible.rst", "api/classes/branch-and-bound/variable-selection/LocalBranching.rst", "api/classes/branch-and-bound/variable-selection/MostInfeasible.rst", "api/classes/branch-and-bound/variable-selection/PseudoCost.rst", "api/classes/branch-and-bound/variable-selection/StrongBranching.rst", "api/classes/branch-and-bound/variable-selection/UniformlyRandom.rst", "api/classes/branch-and-bound/variable-selection/index.rst", "api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.rst", "api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.rst", "api/classes/column-and-constraint-generation/index.rst", "api/classes/column-generation/ArtificialCosts.rst", "api/classes/column-generation/DantzigWolfeDecomposition.rst", "api/classes/column-generation/FarkasPricing.rst", "api/classes/column-generation/IntegerMaster.rst", "api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.rst", "api/classes/column-generation/index.rst", "api/classes/column-generation/stabilization/Neame.rst", "api/classes/column-generation/stabilization/Wentges.rst", "api/classes/column-generation/stabilization/index.rst", "api/classes/common/Annotation.rst", "api/classes/common/Column.rst", "api/classes/common/Constant.rst", "api/classes/common/Ctr.rst", "api/classes/common/CtrType.rst", "api/classes/common/Env.rst", "api/classes/common/Expr.rst", "api/classes/common/LinExpr.rst", "api/classes/common/Model.rst", "api/classes/common/Param.rst", "api/classes/common/QuadExpr.rst", "api/classes/common/Row.rst", "api/classes/common/SolutionDual.rst", "api/classes/common/SolutionPrimal.rst", "api/classes/common/TempCtr.rst", "api/classes/common/TempVar.rst", "api/classes/common/Var.rst", "api/classes/common/VarType.rst", "api/classes/common/index.rst", "api/classes/external-bilevel/MibS.rst", "api/classes/external-bilevel/Optimizers_MibS.rst", "api/classes/external-bilevel/index.rst", "api/classes/external-mip/GLPK.rst", "api/classes/external-mip/Gurobi.rst", "api/classes/external-mip/HiGHS.rst", "api/classes/external-mip/Mosek.rst", "api/classes/external-mip/Optimizers_GLPK.rst", "api/classes/external-mip/Optimizers_Gurobi.rst", "api/classes/external-mip/Optimizers_HiGHS.rst", "api/classes/external-mip/Optimizers_Mosek.rst", "api/classes/external-mip/Osi/OsiCbc.rst", "api/classes/external-mip/Osi/OsiClp.rst", "api/classes/external-mip/Osi/OsiCplex.rst", "api/classes/external-mip/Osi/OsiSymphony.rst", "api/classes/external-mip/Osi/index.rst", "api/classes/external-mip/index.rst", "api/classes/index.rst", "api/classes/universal-callbacks/Callback.rst", "api/classes/universal-callbacks/CallbackFactory.rst", "api/classes/universal-callbacks/LazyCutCallback.rst", "api/classes/universal-callbacks/UserCutCallback.rst", "api/classes/universal-callbacks/index.rst", "api/constants/index.rst", "api/constants/tolerances.rst", "api/index.rst", "api/types/common/VarType.rst", "api/types/index.rst", "api/types/universal-callbacks/CallbackEvent.rst", "api/types/universal-callbacks/index.rst", "developer_guide/build-the-doc.rst", "developer_guide/index.rst", "developer_guide/tests.rst", "examples/bilevel-problem.rst", "examples/facility-location-problem.rst", "examples/generalized-assignment-problem.rst", "examples/index.rst", "examples/knapsack-problem.rst", "index.rst", "installation/global_installation.rst", "installation/index.rst", "installation/linking.rst", "installation/local_installation.rst", "installation/mosek-and-socp.rst", "installation/options.rst", "references.rst", "tutorials/basics/benders.rst", "tutorials/basics/importing_a_model.rst", "tutorials/basics/index.rst", "tutorials/basics/modeling_optimization_problems.rst", "tutorials/basics/using_an_external_solver.rst", "tutorials/bilevel-optimization/index.rst", "tutorials/branch-and-bound/basic.rst", "tutorials/branch-and-bound/index.rst", "tutorials/branch-and-bound/priorities.rst", "tutorials/dantzig-wolfe/dantzig_wolfe.rst", "tutorials/dantzig-wolfe/heuristic.rst", "tutorials/dantzig-wolfe/index.rst", "tutorials/dantzig-wolfe/stabilization.rst", "tutorials/dantzig-wolfe/strong-branching.rst", "tutorials/index.rst", "tutorials/mixed-integer-programming/index.rst", "tutorials/robust-optimization/index.rst"], "titles": ["API", "Optimizers", "Robust::ColumnAndConstraintGeneration", "Column-and-Constraint Generation", "Bilevel", "Dualize", "Separation and Separators", "Robust::CCGStabilizers::NoStabilization", "Stabilization", "Robust::CCGStabilizers::TrustRegion", "Trust Region Stabilization", "Robust Optimization", "Facility Location Problem (FLP)", "Generalized Assignment Problem (GAP)", "Knapsack Problem (KP)", "Multiple Knapsack Problem (MKP)", "Staff Rostering Problem (SRP)", "Problems", "Tolerances and Numerics", "BranchAndBound", "BranchAndBoundCallback", "BranchAndBoundCallbackFactory", "Cuts::KnapsackCover", "Cutting Planes", "Heuristics::LocalBranching", "Heuristics::RENS", "Heuristics::SimpleRounding", "Heuristics", "Branch-and-Bound Algorithm", "BestBound", "BestEstimate", "BreadthFirst", "DepthFirst", "WorstBound", "Node Selection Rules", "FirstInfeasibleFound", "LeastInfeasible", "Heuristics::LocalBranching", "MostInfeasible", "PseudoCost", "StrongBranching", "UniformlyRandom", "Branching Rules", "Robust::ColumnAndConstraintGeneration", "Optimizers::Robust::ColumnAndConstraintGeneration", "Column-and-Constraint Generation Algorithm", "DantzigWolfe::ArtificialCosts", "DantzigWolfeDecomposition", "DantzigWolfe::FarkasPricing", "Heuristics::IntegerMaster", "Optimizers::DantzigWolfeDecomposition", "Column Generation Algorithm", "DantzigWolfe::Neame", "DantzigWolfe::Wentges", "Stabilization", "Annotation", "Column", "Constant", "Ctr", "CtrType", "Env", "Expr", "LinExpr", "Model", "Param", "QuadExpr", "Row", "Solution::Dual", "Solution::Primal", "TempCtr", "TempVar", "Var", "VarType", "Common", "Bilevel::Mibs", "Optimizers::Bilevel::Mibs", "External Bilevel Solvers", "GLPK", "Gurobi", "HiGHS", "Mosek", "Optimizers::GLPK", "Optimizers::Gurobi", "Optimizers::HiGHS", "Optimizers::Mosek", "OsiCbc", "OsiClp", "OsiCplex", "OsiSymphony", "COIN-OR/Osi (Cplex, Xpress, Cbc, \u2026)", "External MIP solvers", "Class List", "Callback", "CallbackFactory", "LazyCutCallback", "UserCutCallback", "Universal Callbacks", "Constants", "Tolerances and Numerics", "API", "VarType", "Type List", "Events", "Class List", "Build the doc!", "Developer guide", "Unit and integration tests", "Toy Example", "Facility Location Problem", "Generalized Assignment Problem", "Examples", "Knapsack Problem", "What Is Idol?", "Global Installation", "Installation", "Linking Your C++ Project with Idol", "Local Installation", "Using Idol with Eigen", "List of CMake Options", "References", "Lazy Cuts and Benders Decomposition", "Importing A Model", "Basics", "Modeling Optimization Problems", "Using An External Solver", "Bilevel Optimization", "Branch-and-Bound 101 (to come)", "Branch-and-Bound", "Branching with Priorities (to come)", "Branch-and-Price 101", "Heuristic Pricing (to come)", "Branch-and-Price", "In-Out Stabilization (to come)", "Strong Branching", "Tutorials", "Mixed-Integer Programming", "Robust Optimization"], "terms": {"optim": [0, 2, 3, 4, 5, 10, 18, 19, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 43, 45, 46, 47, 48, 49, 51, 55, 56, 58, 60, 63, 64, 66, 67, 68, 71, 74, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 92, 94, 98, 107, 108, 109, 111, 119, 120, 121, 122, 124, 129, 133, 134], "robust": [0, 1, 3, 4, 5, 8, 10, 12, 45, 112, 119, 134], "column": [0, 1, 11, 63, 66, 70, 71, 73, 91, 119, 124, 129, 130, 132, 133], "constraint": [0, 1, 10, 11, 18, 55, 56, 58, 63, 64, 66, 69, 91, 92, 94, 98, 107, 109, 112, 119, 120, 124, 129, 133], "gener": [0, 1, 11, 17, 63, 91, 92, 94, 104, 106, 118, 119, 129, 130, 132, 133], "problem": [0, 1, 10, 11, 19, 20, 30, 63, 67, 68, 94, 110, 112, 118, 119, 121, 122, 129, 130, 132, 133, 134], "facil": [0, 17, 110], "locat": [0, 17, 110, 129], "flp": [0, 17, 108], "assign": [0, 17, 56, 57, 64, 66, 69, 70, 110, 112, 129, 130, 132, 133], "gap": [0, 2, 17, 18, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 109, 124, 129], "knapsack": [0, 17, 109, 110, 112, 118, 123, 124, 129], "kp": [0, 17, 111], "multipl": [0, 17, 19, 57, 63, 66, 67, 68, 123], "mkp": [0, 17], "staff": [0, 17], "roster": [0, 17], "srp": [0, 17], "toler": [0, 2, 19, 43, 47, 57, 62, 66, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 97], "numer": [0, 57, 63, 97, 123], "idol": [0, 1, 2, 3, 4, 5, 7, 9, 12, 13, 18, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 58, 59, 60, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 72, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 98, 100, 102, 106, 107, 108, 109, 111, 113, 114, 116, 118, 119, 120, 121, 123, 124, 129, 133], "is_pos_inf": [0, 18, 98], "is_neg_inf": [0, 18, 98], "is_inf": [0, 18, 98], "equal": [0, 18, 19, 56, 57, 59, 62, 98, 129, 133], "relative_gap": [0, 18, 63, 98, 124], "absolute_gap": [0, 18, 98, 124], "is_integ": [0, 18, 98], "round": [0, 18, 57, 61, 62, 67, 68, 98], "multiply_with_precis": [0, 18, 57, 61, 62, 98], "multiply_with_precision_by_power_of_10": [0, 18, 57, 61, 62, 66, 98], "inf": [0, 18, 62, 63, 67, 68, 70, 71, 98, 120, 123, 129], "denot": [1, 94, 117, 124, 129, 133], "algorithm": [1, 2, 10, 11, 19, 20, 43, 44, 47, 50, 55, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 91, 92, 102, 119, 120, 124, 130, 132, 133], "which": [1, 2, 3, 19, 20, 43, 47, 49, 55, 56, 57, 58, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 104, 112, 113, 115, 116, 117, 118, 120, 121, 123, 124, 129, 133], "ar": [1, 3, 19, 20, 47, 49, 55, 56, 57, 58, 60, 62, 63, 64, 66, 70, 92, 94, 106, 112, 113, 114, 115, 118, 120, 121, 123, 124, 129, 130, 132, 133], "being": [1, 19, 20, 63, 92, 113, 117, 129], "us": [1, 2, 3, 18, 19, 20, 43, 47, 49, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 98, 102, 104, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 129, 130, 133, 134], "solv": [1, 2, 3, 10, 19, 20, 43, 47, 49, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 102, 109, 111, 112, 118, 119, 123, 129, 133], "given": [1, 2, 3, 10, 18, 19, 20, 43, 47, 55, 56, 57, 58, 63, 66, 67, 68, 69, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 98, 112, 113, 120, 123, 124, 129, 133], "model": [1, 2, 9, 19, 20, 43, 44, 47, 50, 55, 56, 57, 58, 60, 62, 64, 66, 67, 68, 69, 70, 71, 73, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 91, 92, 94, 95, 107, 108, 109, 111, 112, 115, 116, 122, 133, 134], "thei": [1, 3, 55, 57, 112, 129], "set": [1, 2, 3, 10, 19, 20, 43, 47, 56, 57, 58, 62, 63, 65, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 106, 107, 108, 109, 111, 115, 116, 117, 118, 120, 123, 124, 129, 133], "method": [1, 3, 19, 20, 55, 58, 63, 67, 68, 71, 92, 112, 116, 119, 120, 121, 123, 124, 129, 133], "done": [1, 3, 19, 20, 63, 106, 112, 116, 117, 118, 120, 121, 129, 133], "follow": [1, 3, 10, 18, 20, 55, 57, 60, 62, 63, 89, 94, 98, 104, 106, 107, 112, 113, 115, 116, 118, 120, 121, 123, 124, 129, 133], "exampl": [1, 2, 43, 47, 58, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 115, 120, 123], "env": [1, 55, 58, 63, 71, 73, 77, 78, 81, 82, 91, 107, 108, 109, 111, 112, 115, 116, 120, 121, 124, 129], "my_model": 1, "gurobi": [1, 63, 90, 91, 92, 108, 112, 115, 116, 120, 121, 124, 129, 133], "here": [1, 3, 19, 20, 63, 64, 107, 112, 113, 114, 115, 116, 119, 120, 123, 124, 129, 133], "i": [1, 2, 3, 10, 18, 19, 20, 43, 44, 47, 50, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 94, 98, 102, 104, 106, 107, 108, 109, 113, 115, 116, 117, 118, 119, 120, 121, 123, 124, 126, 128, 129, 130, 132, 133], "actual": [1, 19, 63, 118, 123, 124, 133], "an": [1, 3, 10, 12, 18, 19, 20, 55, 56, 57, 58, 60, 62, 63, 66, 67, 68, 69, 70, 71, 89, 92, 94, 98, 102, 106, 112, 113, 115, 117, 118, 120, 121, 122, 123, 129, 133, 134], "optimizerfactori": [1, 2, 5, 19, 24, 25, 37, 43, 44, 47, 49, 50, 63, 94, 95, 124], "eventu": [1, 60, 124], "creat": [1, 2, 19, 20, 43, 47, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 104, 106, 107, 108, 109, 111, 112, 115, 117, 118, 120, 121, 123, 124, 133], "our": [1, 55, 112, 116, 120, 121, 123, 124, 129, 133], "inde": [1, 112, 121, 124], "real": [1, 57, 63, 69, 70, 92, 124], "thi": [1, 2, 3, 10, 18, 19, 20, 43, 47, 49, 56, 57, 60, 62, 63, 64, 66, 67, 68, 69, 70, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 98, 104, 106, 113, 115, 116, 117, 118, 120, 121, 123, 124, 126, 128, 129, 130, 132, 133], "case": [1, 2, 3, 19, 43, 47, 63, 67, 68, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 124, 129, 133], "instanc": [1, 12, 13, 14, 15, 16, 18, 20, 55, 56, 57, 58, 98, 104, 106, 108, 109, 111, 112, 116, 118, 121, 123, 124, 129, 133], "just": [1, 124, 129, 133], "time": [1, 2, 3, 10, 19, 20, 43, 44, 47, 50, 57, 63, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 102, 123, 124, 129, 133], "when": [1, 2, 18, 19, 20, 43, 47, 55, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 98, 102, 106, 112, 115, 118, 124, 129, 133], "necessari": [1, 63, 92, 113, 120, 124], "typic": [1, 3, 57, 60, 62, 63, 67, 68, 69, 92, 94, 102, 112, 123, 129, 133], "user": [1, 3, 18, 19, 20, 63, 92, 98, 112, 118], "mostli": 1, "work": [1, 10, 112, 113, 115, 116, 124], "factori": [1, 2, 19, 43, 47, 50, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 108, 109, 124, 129], "rather": [1, 18, 98], "than": [1, 2, 3, 18, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98], "like": [1, 19, 92, 112, 115, 117, 120, 123, 124, 129, 133], "build": [1, 2, 19, 43, 47, 57, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 105, 112, 133], "plan": 1, "usual": [1, 67, 68], "can": [1, 2, 3, 18, 19, 20, 43, 47, 49, 55, 57, 58, 60, 63, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 98, 104, 106, 112, 113, 116, 118, 120, 121, 123, 124, 129, 133], "recogn": [1, 18, 98], "with_": 1, "function": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 93, 94, 95, 98, 109, 116, 117, 120, 121, 124, 129], "allow": [1, 129, 133], "custom": [1, 19, 92, 112, 113], "For": [1, 18, 19, 20, 55, 56, 57, 58, 92, 98, 104, 106, 112, 116, 121, 123, 124, 129, 133], "branchandbound": [1, 20, 28, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 49, 63, 91, 92, 108, 109, 129, 133], "ha": [1, 3, 19, 55, 56, 63, 67, 68, 69, 70, 89, 92, 102, 106, 112, 113, 121, 123, 124, 129, 133], "with_node_optim": [1, 19, 20, 108, 109, 129], "pass": [1, 58, 71, 89, 92, 113, 118, 129], "yet": [1, 18, 69, 70, 92, 98, 112, 133], "anoth": [1, 57, 58, 64, 66, 67, 68, 71, 112, 118, 120, 123, 129, 133], "branch": [1, 10, 19, 20, 55, 63, 91, 92, 102, 108, 109, 119, 130, 132, 134], "bound": [1, 2, 19, 20, 43, 47, 63, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 91, 92, 94, 102, 108, 109, 123, 124, 129, 133, 134], "node": [1, 19, 20, 28, 30, 49, 91, 92, 102, 108, 109, 112, 129, 133], "mechan": 1, "what": [1, 20, 120, 133], "complex": [1, 112], "combin": [1, 57, 63, 119, 124, 133], "togeth": [1, 118], "second": [1, 2, 3, 19, 43, 47, 57, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112, 117, 129, 133], "each": [1, 3, 10, 19, 56, 57, 58, 60, 62, 66, 71, 92, 112, 121, 123, 124, 129, 133], "auto": [1, 2, 15, 19, 43, 47, 57, 58, 60, 62, 63, 64, 66, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 107, 108, 109, 111, 112, 120, 121, 123, 129, 133], "branch_and_bound": [1, 129, 133], "The": [1, 2, 10, 11, 18, 19, 20, 30, 43, 47, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 98, 104, 106, 112, 113, 115, 116, 117, 118, 119, 123, 124, 133], "overal": [1, 112], "dantzig": [1, 47, 57, 109, 119], "wolf": [1, 47, 57, 109, 119], "decomposit": [1, 10, 47, 55, 57, 94, 109, 117, 119, 122, 133, 134], "with_node_solv": 1, "continuousrelax": [1, 19, 20, 77, 78, 79, 80, 85, 86, 87, 88, 89, 108, 109, 129, 133], "variabl": [1, 2, 3, 18, 19, 43, 47, 55, 56, 57, 62, 63, 64, 66, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 107, 109, 112, 113, 118, 120, 124, 129, 133], "select": [1, 19, 28, 30, 63, 91, 108, 109, 112, 119, 124, 129, 133], "most": [1, 3, 19, 20, 63, 112, 123, 129, 133], "infeas": [1, 2, 10, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 109, 112, 124, 129, 133], "rule": [1, 19, 20, 28, 30, 91, 108, 109, 112, 119, 129, 133], "with_branching_rul": [1, 19, 20, 108, 109, 129, 133], "mostinfeas": [1, 19, 20, 28, 42, 109, 129], "best": [1, 2, 19, 20, 30, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112, 118, 124, 129], "with_node_selection_rul": [1, 19, 20, 108, 109, 129], "bestbound": [1, 19, 28, 34, 129, 133], "onli": [1, 2, 3, 19, 20, 43, 47, 49, 60, 62, 63, 67, 68, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 106, 107, 117, 118, 123, 124, 129, 133], "inform": [1, 19, 20, 55, 63, 112, 119, 124, 129], "log": [1, 19, 47, 50, 109, 129], "print": [1, 20, 92, 107, 109], "blue": [1, 129], "with_log_level": [1, 129], "info": [1, 106, 109, 129], "run": [1, 20, 106, 113, 118, 129], "limit": [1, 2, 19, 43, 47, 67, 68, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 129, 133], "3600": [1, 2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 129], "with_time_limit": [1, 2, 19, 43, 47, 49, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 129], "onc": [1, 106, 112, 123], "been": [1, 3, 63, 69, 70, 89, 92, 94, 102, 113, 123, 124, 129, 133], "call": [1, 3, 10, 19, 20, 55, 56, 57, 58, 62, 63, 66, 67, 68, 71, 92, 106, 112, 113, 116, 117, 120, 121, 123, 124, 129, 133], "class": [1, 2, 4, 5, 7, 9, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 92, 93, 94, 95, 99, 112, 123, 124, 133], "public": [2, 4, 5, 7, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 93, 94, 95, 115, 116, 119], "optimizerfactorywithdefaultparamet": [2, 19, 43, 47, 74, 77, 78, 79, 80, 89], "const": [2, 4, 5, 7, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 93, 94, 95, 107, 108, 109, 111, 112, 115, 116, 123, 124, 129, 133], "annot": [2, 43, 44, 47, 58, 60, 71, 73, 74, 91, 107, 109, 129, 133], "var": [2, 9, 43, 44, 47, 56, 60, 61, 62, 63, 64, 65, 66, 68, 70, 73, 74, 81, 82, 91, 107, 115, 116, 123, 124], "unsign": [2, 9, 12, 13, 14, 15, 16, 18, 19, 22, 24, 37, 40, 41, 43, 44, 46, 47, 49, 50, 55, 57, 58, 61, 62, 63, 64, 66, 67, 68, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 98, 108, 109, 112, 124, 129, 133], "int": [2, 9, 12, 13, 14, 15, 16, 18, 19, 22, 24, 37, 40, 41, 43, 44, 46, 47, 49, 50, 55, 57, 58, 61, 62, 63, 64, 66, 67, 68, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 98, 107, 108, 109, 111, 112, 115, 116, 123, 124, 129, 133], "t_lower_level_vari": [2, 43, 44], "ctr": [2, 43, 44, 47, 55, 56, 60, 63, 64, 67, 69, 73, 74, 81, 82, 91, 107, 109, 123, 124, 129, 133], "t_lower_level_constraint": [2, 43, 44], "t_uncertainty_set": [2, 43, 44], "t_src": [2, 5, 40, 43, 47, 56, 57, 61, 66, 69, 70, 78, 89], "noexcept": [2, 13, 14, 15, 19, 43, 49, 56, 57, 61, 63, 64, 65, 66, 69, 74, 77, 78, 79, 80, 89], "default": [2, 5, 7, 9, 13, 14, 15, 18, 19, 20, 21, 24, 25, 26, 35, 36, 37, 38, 39, 40, 41, 43, 49, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 69, 70, 71, 74, 77, 78, 79, 80, 89, 92, 93, 94, 98, 104, 106, 107, 112, 113, 118, 123, 124, 129, 133], "oper": [2, 4, 5, 7, 9, 12, 13, 14, 15, 16, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 46, 47, 48, 49, 52, 53, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 93, 94, 95, 117, 119], "delet": [2, 19, 43, 49, 63, 74, 77, 78, 79, 80, 89], "virtual": [2, 4, 5, 7, 9, 12, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 62, 65, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 93, 94, 95, 112], "t_model": [2, 9, 19, 43, 47, 50, 58, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 94, 95], "overrid": [2, 4, 5, 7, 9, 19, 20, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 62, 63, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 94, 95], "return": [2, 3, 19, 20, 43, 47, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 107, 108, 109, 111, 115, 116, 123, 124, 133], "new": [2, 3, 19, 20, 43, 47, 55, 56, 57, 58, 60, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 106, 112, 115, 121, 123, 124, 133], "paramet": [2, 12, 18, 19, 20, 43, 47, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 98, 112, 120, 123, 133], "A": [2, 19, 30, 43, 47, 57, 58, 64, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 112, 113, 114, 116, 119, 122, 123, 129, 134], "clone": [2, 4, 5, 7, 9, 19, 20, 21, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 46, 47, 48, 49, 52, 53, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 93, 94, 95, 106], "copi": [2, 19, 43, 47, 56, 57, 62, 63, 64, 66, 69, 70, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 104, 113], "polymorph": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "object": [2, 19, 20, 43, 47, 55, 56, 57, 58, 60, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 109, 111, 120, 121, 124, 129], "current": [2, 18, 19, 20, 43, 47, 57, 62, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 98, 123, 124, 133], "e": [2, 3, 10, 18, 19, 20, 43, 47, 55, 57, 62, 63, 66, 67, 68, 69, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 102, 107, 109, 112, 113, 114, 116, 117, 119, 121, 123, 124, 129, 133], "with_master_optim": [2, 43, 47, 109, 129, 133], "t_optim": [2, 43, 49], "with_separ": [2, 43], "ccgsepar": [2, 4, 5, 43, 44], "t_separ": [2, 43, 44], "with_stabil": [2, 43], "ccgstabil": [2, 3, 8, 10, 43, 44], "t_stabil": [2, 43, 44, 47, 50], "with_complete_recours": [2, 43], "bool": [2, 18, 19, 22, 43, 44, 47, 49, 50, 55, 57, 58, 61, 62, 63, 64, 66, 67, 68, 69, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 98], "t_valu": [2, 12, 13, 14, 15, 16, 18, 19, 22, 43, 44, 46, 47, 49, 50, 57, 63, 67, 68, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 98], "with_log": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 109], "log_mast": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "level": [2, 18, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 118, 133], "color": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 95], "glpk": [2, 19, 20, 43, 47, 74, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 108, 112, 115, 116, 120, 121], "true": [2, 19, 43, 47, 55, 57, 58, 62, 63, 64, 66, 67, 68, 69, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 109, 120], "t_log_level": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 95], "t_log_color": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 95], "output": [2, 19, 43, 47, 62, 63, 74, 75, 77, 78, 79, 80, 83, 84, 85, 86, 87, 88, 89, 104, 106, 123, 129], "itself": [2, 19, 43, 47, 62, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112], "doubl": [2, 9, 12, 13, 14, 15, 16, 18, 19, 20, 22, 25, 43, 44, 46, 47, 48, 49, 50, 52, 53, 56, 57, 61, 62, 63, 66, 67, 68, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 98, 112, 124], "t_time_limit": [2, 19, 43, 44, 47, 49, 50, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89], "with_thread_limit": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_max_n_thread": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "maximum": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 133], "number": [2, 19, 43, 47, 57, 58, 62, 63, 67, 68, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 124, 129, 133], "thread": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "5": [2, 18, 19, 30, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 107, 112, 119, 124, 129, 133], "with_iteration_limit": [2, 19, 43, 47, 49, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_iteration_count_limit": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "iter": [2, 10, 19, 43, 47, 62, 63, 67, 68, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 123, 124, 129, 133], "go": [2, 10, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 106], "through": [2, 19, 43, 47, 60, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 112, 121, 123, 129], "200": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 129], "with_best_bound_stop": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_best_bound_stop": [2, 19, 43, 44, 47, 50, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89], "threshold": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "stop": [2, 10, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 133], "have": [2, 18, 19, 43, 47, 56, 60, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 98, 104, 107, 112, 113, 116, 117, 118, 121, 123, 124, 129, 133], "found": [2, 19, 43, 47, 57, 58, 63, 67, 68, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 102, 106, 112, 113, 116, 118, 123, 124, 133], "greater": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "my_known_best_obj": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "0": [2, 3, 10, 18, 19, 20, 21, 35, 36, 38, 39, 40, 41, 43, 47, 55, 58, 62, 63, 64, 67, 68, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 93, 94, 98, 107, 108, 109, 111, 112, 115, 116, 118, 119, 120, 123, 124, 129, 133], "with_best_obj_stop": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_user_best_obj": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "valu": [2, 3, 10, 18, 19, 43, 47, 55, 56, 57, 58, 59, 62, 63, 66, 67, 68, 71, 72, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 98, 100, 102, 107, 111, 113, 116, 117, 118, 123, 124, 129, 133], "less": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "my_known_best_bound": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "with_relative_gap_toler": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_relative_gap_toler": [2, 19, 43, 47, 74, 77, 78, 79, 80, 82, 85, 86, 87, 88, 89], "rel": [2, 18, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 124], "prove": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112, 129], "05": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 119], "with_absolute_gap_toler": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_absolute_gap_toler": [2, 19, 43, 47, 74, 77, 78, 79, 80, 82, 85, 86, 87, 88, 89], "absolut": [2, 18, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 124], "1e": [2, 18, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 124], "4": [2, 18, 19, 43, 47, 58, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 107, 116, 119, 120, 123, 129], "with_presolv": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "get_param_presolv": [2, 19, 43, 44, 47, 50, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89], "activ": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 106], "fals": [2, 19, 43, 47, 55, 57, 58, 64, 67, 68, 69, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 109], "turn": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 120], "off": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 106, 120], "phase": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112], "": [2, 3, 10, 19, 20, 43, 47, 56, 58, 62, 63, 66, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 106, 107, 112, 114, 117, 118, 119, 120, 121, 123, 124, 129, 133], "disabl": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "1": [2, 3, 10, 18, 19, 43, 47, 57, 58, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 98, 108, 109, 111, 112, 115, 116, 117, 119, 120, 123, 124, 129, 133], "enabl": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "with_infeasible_or_unbounded_info": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "behaviour": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 102], "shown": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "unbound": [2, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 124], "forc": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 106], "feasibl": [2, 3, 18, 19, 43, 47, 63, 66, 67, 68, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 98, 124, 129], "unbounded": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "provid": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112, 116, 120], "certif": [2, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 124], "condit": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "t_conditional_valu": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "std": [2, 9, 12, 13, 14, 15, 16, 19, 20, 43, 44, 47, 50, 55, 58, 62, 63, 64, 65, 67, 68, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92, 107, 108, 109, 111, 118, 120, 123, 124, 129, 133], "void": [2, 7, 9, 12, 13, 14, 15, 16, 19, 20, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 61, 62, 63, 65, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 92], "t_if": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "execut": [2, 19, 20, 43, 46, 47, 48, 50, 60, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 102, 112, 115, 116, 123, 124], "lambda": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 129], "its": [2, 10, 19, 43, 47, 57, 58, 60, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 104, 106, 112, 123, 124, 129], "first": [2, 3, 10, 19, 20, 43, 47, 57, 62, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 112, 113, 117, 129, 130, 132, 133], "argument": [2, 19, 43, 47, 55, 57, 58, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 121, 123, 129, 133], "differ": [2, 3, 19, 43, 47, 60, 63, 66, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 112, 120, 123, 124, 133], "depend": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 105, 133], "some": [2, 3, 10, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 92, 94, 113, 116, 117, 120, 121, 124, 129, 133], "extern": [2, 18, 19, 43, 47, 63, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 91, 98, 107, 115, 116, 121, 122, 123, 129, 134], "use_presolv": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "x": [2, 3, 10, 19, 43, 47, 56, 58, 62, 63, 64, 66, 68, 69, 71, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 94, 107, 108, 109, 111, 112, 115, 116, 120, 123, 124, 129], "noth": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "happen": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89, 133], "t_els": [2, 19, 43, 47, 74, 77, 78, 79, 80, 85, 86, 87, 88, 89], "templat": [2, 19, 20, 21, 22, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 43, 44, 47, 49, 50, 55, 58, 60, 61, 62, 63, 64, 65, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 129], "t": [2, 3, 10, 19, 43, 44, 47, 50, 60, 63, 64, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 94, 107, 119, 120, 123, 124, 129], "inlin": [2, 12, 13, 14, 15, 16, 19, 20, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 52, 53, 55, 56, 57, 58, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 94, 95], "ccg": [3, 10], "classic": [3, 112, 116], "two": [3, 55, 114, 119, 129, 133], "stage": [3, 10, 119], "It": [3, 18, 19, 56, 57, 60, 62, 63, 66, 69, 70, 98, 102, 112, 118, 123], "wa": [3, 30, 58, 63, 71, 133], "origin": [3, 20, 92, 94, 112, 116, 133], "introduc": [3, 30, 124], "12": [3, 107, 119], "In": [3, 10, 19, 62, 92, 112, 116, 117, 120, 121, 123, 124, 129, 131, 133, 134], "implement": [3, 20, 92, 94, 112, 118, 119, 121, 124, 130, 132], "alow": 3, "slightli": 3, "more": [3, 55, 64, 92, 112, 113, 121, 123, 129, 133], "defin": [3, 18, 57, 63, 92, 98, 107, 112, 116, 120, 123, 124, 129, 133], "sub": [3, 19, 63, 112, 114, 116, 129, 133], "section": [3, 10, 113, 120, 129, 133], "form": [3, 19, 63, 66, 123, 129], "begin": [3, 10, 20, 62, 63, 67, 68, 94, 120, 123, 124, 129], "align": [3, 10, 94, 120], "min_x": [3, 94, 129], "quad": [3, 10, 94, 129], "f": [3, 10, 117, 119], "text": [3, 10, 57, 94, 120, 133], "foral": [3, 10, 120, 129], "xi": [3, 10, 57, 94], "exist": [3, 20, 63, 92, 94, 106, 112], "y": [3, 10, 56, 58, 64, 66, 69, 107, 108, 120, 123], "g": [3, 10, 20, 55, 63, 102, 106, 112, 114, 116, 117, 121, 123, 124, 129, 133], "le": [3, 10, 63, 94, 117, 120, 123, 124, 129, 133], "end": [3, 10, 62, 63, 67, 68, 94, 120, 123, 124], "uncertainti": [3, 12, 119], "compact": [3, 123, 124], "all": [3, 18, 56, 60, 62, 66, 67, 68, 69, 70, 94, 98, 104, 106, 116, 117, 118, 120, 121, 123, 124, 129, 133], "vector": [3, 9, 50, 58, 63, 71, 124], "so": [3, 19, 63, 112, 113, 118, 129, 133], "between": [3, 66, 69, 117], "decis": [3, 10, 57, 63, 112, 129, 133], "clear": [3, 61, 62, 133], "redund": 3, "sinc": [3, 63, 112, 123], "incorpor": [3, 19], "definit": [3, 92, 94, 116], "howev": [3, 57, 123, 129, 133], "we": [3, 10, 19, 55, 62, 67, 68, 92, 94, 106, 107, 113, 115, 116, 117, 118, 120, 121, 123, 124, 129, 133], "see": [3, 13, 15, 69, 70, 92, 94, 113, 118, 120, 121, 123, 124, 133], "explicitli": [3, 67, 68, 116, 123], "mai": [3, 58, 60, 63, 94, 106, 113, 116, 119, 121, 123, 124, 129, 133], "lead": [3, 60, 67, 68, 120], "dive": [3, 123], "aspect": 3, "after": [3, 55, 67, 68, 133], "concept": 3, "consid": [3, 18, 64, 94, 98, 120, 123, 124, 133], "min_": [3, 10, 120, 129], "max_": [3, 94], "psi": 3, "special": 3, "written": 3, "x_0": [3, 10, 62, 63, 117, 120, 123], "mathbb": [3, 10, 63, 120, 123, 133], "r": [3, 10, 63, 119, 120, 133], "one": [3, 58, 60, 63, 69, 107, 112, 117, 121, 123, 124, 129, 133], "finit": 3, "subset": [3, 119], "point": [3, 10, 18, 62, 66, 92, 98, 107, 118], "sai": [3, 113, 116, 121], "dotsc": [3, 10], "k": [3, 10, 63, 117, 123, 133], "instead": [3, 10, 20, 92, 94, 117, 123, 133], "left": [3, 10, 20, 63, 66, 92, 94, 120, 124, 129, 133], "arrai": [3, 10, 63, 123, 124], "l": [3, 10, 124, 133], "right": [3, 10, 56, 58, 63, 66, 94, 113, 124, 129, 130, 132, 133], "enforc": 3, "clearli": 3, "relax": [3, 19, 20, 92, 94, 102, 107, 129, 133], "ani": [3, 63, 89, 112, 113, 120, 123, 129, 133], "also": [3, 13, 15, 18, 19, 47, 57, 60, 63, 89, 92, 94, 98, 106, 112, 113, 115, 116, 118, 120, 123, 124, 129], "now": [3, 10, 63, 92, 106, 112, 113, 118, 120, 121, 123, 124, 129], "solut": [3, 4, 5, 9, 10, 18, 20, 30, 46, 48, 50, 52, 53, 56, 57, 61, 62, 63, 65, 66, 69, 73, 91, 92, 94, 98, 102, 107, 109, 112, 119, 120, 129], "hat": 3, "abov": [3, 124, 133], "need": [3, 63, 69, 70, 92, 104, 106, 112, 113, 117, 118, 120, 123, 129, 133], "check": [3, 20, 55, 69, 94, 121, 130, 132, 133], "whether": [3, 112], "thu": [3, 19, 55, 94, 112, 117, 123, 129, 133], "seek": 3, "scenario": 3, "either": 3, "empti": [3, 56, 57, 62, 66, 69], "If": [3, 19, 20, 57, 58, 60, 62, 63, 66, 67, 68, 71, 92, 94, 106, 107, 112, 113, 115, 116, 118, 120, 124, 130, 132, 133], "otherwis": [3, 55, 57, 58, 64, 67, 68, 69, 71, 107, 120], "ad": [3, 19, 20, 57, 58, 62, 63, 66, 71, 92, 94, 112, 123], "process": [3, 92, 94, 112, 113, 129], "repeat": [3, 19, 123], "identifi": [3, 19, 94], "miss": 3, "ell": 3, "g_": 3, "non": [3, 20, 57, 62, 67, 68, 92, 123], "posit": 3, "give": [3, 55, 92, 112, 123, 133], "note": [3, 10, 19, 47, 55, 58, 63, 67, 68, 89, 92, 104, 106, 113, 115, 118, 123, 124, 129, 133], "convent": [3, 121], "emptyset": [3, 10], "infti": [3, 10, 18, 63, 98], "3": [3, 10, 62, 63, 107, 109, 112, 113, 115, 116, 119, 120, 123, 124, 133], "mani": [3, 60, 112, 123], "wai": [3, 114, 116, 121, 123, 124, 129, 133], "therefor": [3, 55, 63, 113], "possibl": [3, 18, 20, 60, 67, 68, 92, 98, 112, 113, 115, 116, 118, 121, 123, 124, 129, 133], "functor": 3, "common": [3, 91, 92, 112, 123, 133], "alreadi": [3, 63, 67, 68, 112, 113, 133], "page": [3, 19, 47, 104, 106, 113, 116, 117, 118, 119, 123, 124], "you": [3, 19, 20, 63, 92, 94, 104, 106, 112, 113, 114, 115, 116, 117, 118, 120, 121, 123, 124, 130, 132, 133], "wish": [3, 20], "your": [3, 19, 60, 106, 112, 113, 114, 116, 123, 130, 132, 133], "own": [3, 19, 112, 130], "bewar": 3, "should": [3, 18, 20, 60, 63, 67, 68, 92, 98, 106, 112, 113, 116, 118, 120, 123, 129, 133], "Then": [3, 20, 94, 106, 113, 116, 117, 124, 129, 130, 132, 133], "underset": 3, "argmax": [3, 133], "varepsilon_": [3, 10], "fea": [3, 10], "dedic": [3, 89, 112, 116], "detail": [3, 104, 113, 123, 129, 133], "discuss": [3, 10, 117, 123, 133], "To": [3, 55, 106, 112, 113, 118, 120, 121, 124, 129, 133], "let": [3, 10, 112, 114, 116, 121, 123, 124, 129, 133], "As": [3, 112, 116, 121, 123], "previou": [3, 123, 124, 133], "arguabl": 3, "obtain": [3, 20, 67, 68, 123, 129], "equival": [3, 57, 62, 69, 118, 123], "tild": 3, "becom": 3, "though": [3, 60, 89, 115, 123, 124, 129, 133], "approach": [3, 58, 71, 133], "sens": [3, 63, 117, 124, 133], "both": [3, 57, 66, 133], "comput": [3, 18, 57, 67, 68, 98, 112, 113, 114, 116, 117, 119, 124, 133], "perform": [3, 20, 63, 92, 112, 118, 119, 129, 133], "interest": [3, 94], "reader": [3, 129], "refer": [3, 19, 63, 104, 112, 118, 123, 124, 129, 133], "2": [3, 10, 18, 19, 56, 57, 58, 62, 63, 64, 67, 68, 69, 70, 71, 98, 107, 108, 109, 112, 116, 119, 120, 123, 124, 129, 133], "columnandconstraintgener": [3, 4, 5, 45, 91], "bilevel": [3, 6, 107, 112, 134], "dualiz": [3, 6], "stabil": [3, 51, 91, 109, 112, 119, 131, 133, 134], "nostabil": [3, 8], "trust": [3, 8, 112], "region": [3, 8], "primal": [4, 5, 9, 18, 46, 48, 50, 56, 57, 61, 62, 63, 65, 66, 69, 73, 91, 92, 98, 119, 124], "t_parent": [4, 5, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 44, 46, 48, 50], "t_upper_level_solut": [4, 5], "row": [4, 5, 56, 63, 69, 73, 91], "t_row": [4, 5, 63, 69], "ctrtype": [4, 5, 58, 63, 66, 69, 73, 91], "t_type": [4, 5, 58, 63, 66, 69, 70, 71], "with_optim": [5, 24, 25, 37, 49, 109], "t_optimizer_factori": [5, 24, 25, 37, 47, 63, 94, 95], "strategi": [7, 9, 19, 20, 22, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 46, 48, 49, 52, 53, 92, 94, 95, 109, 119], "initi": [7, 9, 10, 20, 52, 53], "analyze_current_master_problem_solut": [7, 9], "analyze_last_separation_solut": [7, 9], "trustregion": [8, 10], "t_other": 9, "with_trust_factor": 9, "t_trust_factor": 9, "expr": [9, 63, 66, 69, 73, 91, 123, 124], "build_distance_to_point": 9, "t_point": 9, "update_local_branching_constraint": 9, "add_reversed_local_branching_constraint": 9, "remove_all_stabilization_constraint": 9, "current_radiu": 9, "update_radiu": 9, "under": [10, 12, 126, 128, 130, 132], "specif": [10, 20, 57, 63, 92, 113, 123, 129, 133], "binari": [10, 63, 70, 72, 100, 108, 109, 111, 112, 115, 116, 124, 129], "subseteq": [10, 123, 133], "n_x": 10, "procedur": [10, 92, 112], "inspri": 10, "bender": [10, 94, 112, 119, 122, 134], "bar": [10, 129], "center": 10, "local": [10, 18, 98, 104, 106, 112, 113, 114, 118], "delta": 10, "sum_": [10, 57, 63, 117, 123, 124, 129], "x_i": 10, "y_i": 10, "rho": 10, "radiu": 10, "addition": [10, 124, 133], "revers": 10, "ge": [10, 120, 133], "At": [10, 89], "n": [10, 57, 58, 63, 71, 117, 123, 124, 129], "state": [10, 112], "caption": 10, "requir": [10, 63, 67, 68, 89, 113, 115, 117, 123, 133], "get": [10, 55, 57, 58, 62, 65, 67, 68, 71, 94, 104, 116, 123], "ub": [10, 18, 63, 70, 98], "lb": [10, 18, 63, 70, 98], "restrict": [10, 63], "master": [10, 94, 112, 119, 129], "rmp": 10, "IF": 10, "endif": 10, "add": [10, 19, 20, 56, 57, 58, 62, 63, 66, 67, 68, 71, 92, 94, 104, 115, 116, 123, 124, 129], "cup": 10, "increas": 10, "els": [10, 124], "v": [10, 120], "separ": [10, 92, 112, 120], "min": [10, 107, 123, 133], "without": [10, 63, 116, 117, 123], "underlin": 10, "varepsilon": [10, 94, 133], "updat": [10, 20, 63, 112], "option": [10, 105, 108, 113, 114, 116, 117, 123], "reset": [10, 67, 68], "back": [10, 121], "step": [10, 92, 113, 124, 129], "exactli": [10, 112, 123], "namespac": [12, 13, 14, 15, 16, 18, 98, 107, 108, 109, 111, 112, 123], "read_instance_2021_cheng_et_": 12, "string": [12, 13, 14, 15, 16, 44, 50, 55, 58, 63, 64, 71, 77, 78, 80, 81, 82], "t_filenam": [12, 13, 14, 15, 77, 78, 81, 82], "read": [12, 108, 116, 118, 120, 129], "from": [12, 18, 19, 20, 57, 62, 63, 64, 67, 68, 75, 83, 84, 98, 106, 112, 120, 121, 124, 133], "chun": 12, "cheng": 12, "yossiri": 12, "adulyasak": 12, "loui": 12, "martin": [12, 119], "rousseau": 12, "demand": [12, 16, 108], "disrupt": 12, "omega": 12, "volum": 12, "103": 12, "2021": 12, "102429": 12, "issn": 12, "0305": 12, "0483": 12, "http": [12, 13, 15, 106, 116, 119, 121], "doi": [12, 119], "org": [12, 13, 15, 104, 119], "10": [12, 18, 63, 98, 107, 112, 118, 119, 124, 129, 133], "1016": [12, 119], "j": [12, 30, 57, 63, 108, 109, 111, 112, 117, 119, 123, 124, 129, 133], "filenam": 12, "read_instance_1991_cornuejols_et_": [12, 108], "generate_instance_1991_cornuejols_et_": 12, "t_n_facil": 12, "t_n_custom": 12, "t_ratio_capacity_over_demand": 12, "ostream": [12, 13, 16], "t_o": [12, 13, 16], "t_instanc": [12, 13, 16], "explicit": [12, 14, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 47, 49, 52, 53, 63, 64, 81, 82, 94, 95], "n_facil": [12, 108], "n_custom": [12, 108], "fixed_cost": [12, 108], "t_i": [12, 129], "capac": [12, 13, 14, 15, 108, 109, 111, 112, 124, 129], "t_j": 12, "per_unit_transportation_cost": [12, 108], "set_fixed_cost": 12, "set_capac": [12, 13, 14, 15], "set_demand": [12, 16], "set_per_unit_transportation_cost": 12, "read_inst": [13, 14, 15, 109, 111, 129], "generate_instance_chu_and_beasley_1997_c": 13, "t_n_machin": 13, "t_n_job": 13, "includ": [13, 15, 107, 108, 109, 111, 112, 115, 116, 118, 123, 124, 129], "gap_inst": [13, 109, 129], "h": [13, 15, 30, 106, 107, 108, 109, 111, 115, 116, 118, 119, 123, 124, 129], "en": [13, 15], "wikipedia": [13, 15, 124], "wiki": [13, 15], "generalized_assignment_problem": 13, "t_n_agent": 13, "n_agent": [13, 109, 129], "n_job": [13, 109, 129], "cost": [13, 18, 63, 98, 109, 112, 124, 129], "t_agent": 13, "t_job": 13, "resource_consumpt": [13, 109, 129], "set_cost": 13, "set_resource_consumpt": 13, "read_instance_kplib": 14, "t_n_item": [14, 15], "n_item": [14, 15, 111, 112], "profit": [14, 15, 111, 112, 124], "t_item": [14, 15], "weight": [14, 15, 111, 112, 124], "set_profit": [14, 15], "set_weight": [14, 15], "mkp_instanc": 15, "knapsack_problem": 15, "t_n_knapsack": 15, "n_knapsack": 15, "t_knapsack": 15, "generate_random_instance_zhao_et_al_2012": 16, "t_n_regular_staff": 16, "t_n_part_time_staff": 16, "t_n_time_period": 16, "read_instance_from_fil": 16, "t_path_to_fil": 16, "n_regular_staff": 16, "n_part_time_staff": 16, "n_time_period": 16, "shift_dur": 16, "regular_staff_fixed_wage_cost": 16, "t_staff_index": 16, "t_time_index": 16, "regular_staff_minimum_number_of_shift": 16, "regular_staff_maximum_number_of_shift": 16, "part_time_fixed_wage_cost": 16, "part_time_staff_hourly_wage_cost": 16, "part_time_staff_minimum_number_of_shift": 16, "part_time_staff_maximum_number_of_shift": 16, "unmet_demand_penalty_cost": 16, "set_regular_staff_shift_dur": 16, "set_regular_staff_fixed_wage_cost": 16, "set_regular_staff_minimum_number_of_shift": 16, "set_regular_staff_maximum_number_of_shift": 16, "set_part_time_fixed_wage_cost": 16, "set_part_time_staff_hourly_wage_cost": 16, "set_part_time_staff_minimum_number_of_shift": 16, "set_part_time_staff_maximum_number_of_shift": 16, "set_unmet_demand_penalty_cost": 16, "t_index_index": 16, "friend": [16, 58, 60, 71, 82, 92], "static": [18, 55, 56, 57, 58, 66, 71, 77, 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 98, 121], "t_a": [18, 65, 98], "t_b": [18, 65, 98], "t_toler": [18, 66, 98], "t_lb": [18, 63, 70, 71, 98], "t_ub": [18, 63, 70, 71, 98], "t_n_digit": [18, 57, 61, 62, 63, 67, 68, 98], "t_x": [18, 98], "t_expon": [18, 57, 61, 62, 66, 98], "constexpr": [18, 98], "1e20": [18, 98], "store": [18, 19, 20, 55, 57, 58, 60, 62, 63, 66, 67, 68, 71, 98, 118, 121, 124, 129], "high": [18, 90, 91, 98, 107, 108, 109, 111, 112, 123, 124], "mip": [18, 63, 91, 98], "addit": [18, 55, 92, 98, 121, 129], "alwai": [18, 98, 120, 133], "taken": [18, 66, 98, 112, 120], "account": [18, 98], "apart": [18, 98], "sparsiti": [18, 57, 62, 98], "chang": [18, 20, 63, 98, 113, 133], "global": [18, 55, 98, 112, 114, 116, 129], "8": [18, 98, 119, 129, 133], "recommend": [18, 98, 113, 120, 129], "rang": [18, 98, 108, 109, 111, 112, 129], "data": [18, 98, 108, 109, 111, 119, 124], "save": [18, 98], "spars": [18, 98], "manner": [18, 98], "close": [18, 98], "zero": [18, 57, 62, 67, 68, 98, 120], "ignor": [18, 98], "digit": [18, 67, 68, 98], "miprelativegap": [18, 98], "declar": [18, 98, 133], "compar": [18, 57, 98, 133], "relativegap": [18, 98], "frac": [18, 98, 124], "mipabsolutegap": [18, 98], "absolutegap": [18, 98], "integ": [18, 19, 30, 67, 68, 72, 98, 100, 102, 107, 108, 109, 111, 112, 119, 133, 134], "10e": [18, 98], "9": [18, 98, 119, 129], "closest": [18, 67, 68, 98, 133], "closer": [18, 98], "6": [18, 98, 112, 119, 129, 133], "character": [18, 98], "satisfact": [18, 98], "satisfi": [18, 94, 98], "violat": [18, 66, 69, 94, 98], "larger": [18, 98, 112], "amount": [18, 98], "reduc": [18, 63, 98, 124, 133], "must": [18, 63, 92, 98, 112, 116, 123, 124, 129, 133], "smaller": [18, 94, 98, 133], "larg": [19, 30, 92, 94, 119], "degre": 19, "freedom": 19, "familiar": [19, 129, 133], "pleas": [19, 20, 104, 116, 118, 124, 133], "simpl": [19, 94, 120, 123], "where": [19, 57, 113, 117, 118, 123, 124, 129], "solver": [19, 20, 89, 91, 92, 107, 115, 116, 121, 122, 123, 129, 134], "accord": [19, 20, 112], "while": [19, 63, 66, 120, 123, 124], "tree": [19, 20, 92, 102, 112, 129, 133], "explor": [19, 20, 92, 112], "depth": [19, 112, 133], "with_subtree_depth": [19, 109], "nodet": [19, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41], "defaultnodeinfo": [19, 22, 49], "strongli": 19, "advis": [19, 60, 112, 113, 123], "inherit": [19, 92, 112], "nodevarinfo": [19, 49], "order": [19, 113, 116, 117, 118], "type": [19, 55, 58, 60, 63, 64, 66, 67, 68, 69, 70, 71, 99, 102, 112, 124, 129, 133], "returnt": 19, "only_if_has_strategi": 19, "typenam": [19, 67, 68], "pair": [19, 56, 57, 65, 66], "second_typ": 19, "exploit": 19, "sfina": 19, "name": [19, 44, 50, 55, 58, 63, 64, 71, 81, 82, 92, 123, 124, 129], "nodeinfot": [19, 20, 21, 22, 35, 36, 38, 39, 40, 41, 49], "make": [19, 20, 104, 106, 108, 112, 113, 117, 118, 120, 121, 123, 130, 132, 133], "depthfirst": [19, 20, 28, 34], "t_rh": [19, 56, 57, 61, 62, 63, 66, 67, 68], "constructor": [19, 55, 56, 57, 58, 60, 64, 66, 69, 70, 71, 123, 129], "t_node_optim": 19, "set_node_optim": 19, "branchingrulefactori": 19, "t_branching_rul": 19, "child": [19, 92, 133], "branchingrulefactoryt": 19, "nest": [19, 58, 71, 112], "avoid": [19, 118, 133], "contain": [19, 57, 69, 70, 112, 120, 123, 124, 129], "nodeselectionrulefactori": [19, 29, 30, 31, 32, 33], "t_node_select": 19, "with_node_select": 19, "nodeselectionrulefactoryt": 19, "t_node_selection_rul": 19, "t_depth": 19, "children": [19, 112], "take": [19, 55, 123, 124, 133], "root": [19, 118], "everi": [19, 57, 60, 62, 63, 67, 68, 92, 106, 112, 123, 129], "continu": [19, 62, 63, 64, 70, 71, 72, 100, 120, 123, 124], "strictli": 19, "along": 19, "with_logg": [19, 47, 109], "t_log_factori": 19, "with_scal": 19, "add_callback": [19, 82, 108, 109, 120], "branchandboundcallbackfactori": [19, 20, 22, 28, 49, 91], "t_callback": 19, "callback": [19, 20, 24, 25, 26, 37, 82, 91, 93, 94, 95, 102, 108, 109, 112, 120], "with_callback": [19, 20, 78, 92], "integermast": [19, 20, 51, 91, 109], "rst": [19, 63, 69], "callbackfactori": [19, 24, 25, 26, 37, 78, 91, 92, 94, 95, 96], "independ": [19, 20], "automat": [19, 63, 94, 104, 106, 112, 114, 117], "convert": [19, 121], "branchandboundcallback": [19, 21, 22, 28, 49, 91, 92], "usercutcallback": [19, 20, 91, 93, 96], "separation_model": 19, "my_cut": 19, "advanc": [20, 92, 120, 129], "featur": [20, 92, 129], "sure": [20, 112, 120, 121, 123, 130, 132, 133], "try": [20, 60, 67, 68, 113, 133], "do": [20, 55, 58, 63, 89, 104, 113, 117, 118, 123, 129, 133], "cannot": [20, 75, 83, 84, 92, 106, 112], "pre": 20, "lazycutcallback": [20, 91, 93, 96, 120], "advantag": [20, 121], "standard": [20, 112, 121, 124, 133], "li": 20, "access": [20, 55, 60, 67, 68, 92, 117], "regard": [20, 120, 124, 129], "out": [20, 92, 112, 113, 121, 131, 134], "event": [20, 92, 103], "trigger": [20, 92, 133], "correspond": [20, 56, 57, 63, 66, 124, 129], "nodeload": [20, 102], "mycallback": [20, 92], "nodeinfo": 20, "protect": [20, 92], "callbackev": [20, 92, 102], "t_event": [20, 92], "cout": [20, 55, 58, 62, 63, 67, 68, 71, 92, 107, 108, 109, 111, 120, 123, 124, 129], "endl": [20, 55, 58, 62, 63, 67, 68, 71, 92, 107, 108, 109, 111, 120, 123, 124, 129], "id": [20, 55, 58, 63, 64, 71, 107, 129], "nodiscard": 20, "By": [20, 104, 106, 113, 118, 124], "version": [20, 58, 60, 63, 71, 104, 112, 113, 115, 116, 123], "want": [20, 92, 106, 112, 113, 116, 121, 124, 129], "manual": 20, "interfac": [20, 62, 89], "advanced_interfac": 20, "subclass": [20, 21, 69, 70, 89, 92, 93], "callbackasbranchandboundcallback": [20, 21], "cut": [20, 28, 91, 92, 94, 108, 112, 122, 134], "knapsackcov": [20, 23, 28, 108], "heurist": [20, 28, 42, 51, 91, 92, 93, 109, 112, 119, 131, 134], "util": 20, "exportbranchandboundtreetocsv": 20, "veri": [20, 112, 123], "write": [20, 63, 92, 112], "consist": [20, 62, 92], "main": [20, 92, 107, 108, 109, 111, 115, 116, 123], "block": [20, 92, 104], "log_after_termin": 20, "add_user_cut": [20, 92], "tempctr": [20, 58, 63, 73, 91, 92, 94, 95], "t_cut": [20, 92, 94, 95], "add_lazy_cut": [20, 92], "lazi": [20, 63, 92, 94, 112, 122, 134], "original_model": [20, 92], "start": [20, 94, 116, 123], "submit_heuristic_solut": [20, 92], "t_info": 20, "submit": [20, 92, 112], "valid": [20, 92, 102, 112], "incumb": [20, 102], "improv": [20, 92, 124], "submit_bound": 20, "t_bound": 20, "proven": 20, "sideeffectregistri": 20, "side_effect_registri": 20, "side": [20, 56, 58, 63, 66], "effect": [20, 106, 133], "registri": 20, "timer": [20, 44, 50, 81, 82, 92], "with_lift": 22, "with_tree_node_cut": 22, "with_max_pass_root_nod": 22, "with_max_cuts_factor": 22, "t_use_lift": 22, "t_apply_to_tree_nod": 22, "t_max_pass_root_nod": 22, "t_max_cuts_factor": 22, "t_neighbourhood_s": [24, 37], "t_minimum_ratio_of_integer_variables_to_fix": 25, "t_minimum_ratio_of_variables_to_fix": 25, "localbranch": [27, 28, 42, 92, 93], "ren": [27, 28, 92, 93], "simpleround": [27, 28, 92, 93, 109], "firstinfeasiblefound": [28, 42], "leastinfeas": [28, 42], "pseudocost": [28, 42, 108], "strongbranch": [28, 42, 133], "uniformlyrandom": [28, 42], "bestestim": [28, 34, 108], "breadthfirst": [28, 34], "worstbound": [28, 34, 109], "plane": [28, 91, 108, 112], "nodeselectionrul": [29, 30, 31, 32, 33], "estim": [30, 112, 133], "forrest": [30, 119], "p": [30, 67, 68, 112, 119, 124], "hirst": [30, 119], "tomlin": [30, 119], "1974": [30, 119], "practic": [30, 119, 133], "mix": [30, 107, 108, 109, 111, 112, 119, 134], "program": [30, 60, 107, 108, 109, 111, 112, 119, 120, 123, 134], "umpir": [30, 119], "manag": [30, 60, 106, 113, 114, 116, 119, 123], "scienc": [30, 119], "20": [30, 107, 119, 133], "736": [30, 119], "773": [30, 119], "variablebranch": [35, 36, 38, 39, 40, 41], "iteratort": [35, 36, 38, 39, 40, 41], "t_begin": [35, 36, 38, 39, 40, 41], "t_end": [35, 36, 38, 39, 40, 41], "branchingrul": [35, 36, 38, 39, 40, 41], "with_max_n_vari": [40, 133], "t_n_variabl": 40, "with_node_scoring_funct": 40, "nodescorefunct": 40, "t_score_funct": 40, "add_phas": [40, 133], "strongbranchingphasetyp": 40, "t_phase": 40, "t_max_n_vari": 40, "t_max_depth": [40, 49], "with_se": 41, "t_seed": 41, "t_master_optim": 44, "t_complete_recours": 44, "get_var_prim": [44, 63, 124, 129], "t_var": [44, 61, 63, 64, 81, 82], "get_var_reduced_cost": [44, 63], "get_var_rai": [44, 63, 124], "get_ctr_dual": [44, 63, 124], "t_ctr": [44, 63, 64, 81, 82], "get_ctr_farka": [44, 63, 124], "get_n_solut": [44, 63], "get_solution_index": [44, 63], "master_problem": 44, "uncertainty_set": 44, "lower_level_constraint": 44, "lower_level_vari": 44, "complete_recours": 44, "n_iter": 44, "solutionstatu": [44, 46, 48, 50, 63, 67, 68, 124], "get_statu": [44, 50, 63, 67, 68, 124, 129], "solutionreason": [44, 46, 48, 50, 63, 67, 68], "get_reason": [44, 50, 63, 124], "get_best_obj": [44, 50, 63, 111, 124], "get_best_bound": [44, 50, 63, 124], "get_relative_gap": [44, 50, 124], "get_absolute_gap": [44, 50, 124], "parent": [44, 50, 81, 82, 112], "get_param_log": [44, 50, 81, 82], "set_param_log": [44, 50, 81, 82], "get_param_time_limit": [44, 50, 81, 82], "set_param_time_limit": [44, 50, 81, 82], "get_param_thread_limit": [44, 50, 81, 82], "set_param_thread": [44, 50, 81, 82], "t_thread": [44, 50, 81], "get_param_best_obj_stop": [44, 50, 81, 82], "set_param_best_obj_stop": [44, 50, 81, 82], "t_best_obj_stop": [44, 50, 81, 82], "get_param_best_bound_stop": [44, 50, 81, 82], "set_param_best_bound_stop": [44, 50, 81, 82], "get_tol_mip_relative_gap": [44, 50, 81, 82], "set_tol_mip_relative_gap": [44, 50, 81, 82], "t_tol_mip_relative_gap": [44, 50, 81], "get_tol_mip_absolute_gap": [44, 50, 81, 82], "set_tol_mip_absolute_gap": [44, 50, 81, 82], "t_mip_tol_absolute_gap": [44, 50, 81], "get_tol_feas": [44, 50, 81, 82], "set_tol_feas": [44, 50, 81, 82], "t_tol_feas": [44, 50, 81, 82], "get_tol_optim": [44, 50, 81, 82], "set_tol_optim": [44, 50, 81, 82], "t_tol_optim": [44, 50, 81, 82], "get_tol_integ": [44, 50, 81, 82], "set_tol_integ": [44, 50, 81, 82], "t_tol_integ": [44, 50, 81, 82], "get_param_iteration_limit": [44, 50, 81, 82], "set_param_iteration_limit": [44, 50, 81, 82], "t_iteration_limit": [44, 49, 50, 81, 82], "set_param_presolv": [44, 50, 81, 82], "get_param_infeasible_or_unbounded_info": [44, 50, 81, 82], "set_param_infeasible_or_unbounded_info": [44, 50, 81, 82], "get_remaining_tim": [44, 50, 81, 82], "is_termin": [44, 50, 81, 82], "termin": [44, 50, 81, 82], "infeasibilitystrategyfactori": [46, 47, 48, 50], "with_max_updates_before_phase_i": 46, "with_update_factor": 46, "with_initial_cost": 46, "t_initial_cost": 46, "t_update_factor": 46, "t_max_updates_before_phase_i": 46, "dantzigwolfedecomposit": [46, 48, 49, 51, 91, 109, 129, 133], "statu": [46, 48, 50, 63, 67, 68, 124, 129], "reason": [46, 48, 50, 63, 67, 68, 92, 112, 124, 129], "best_obj": [46, 48, 50, 63, 124], "best_bound": [46, 48, 50, 63, 124], "primal_solut": [46, 48, 50, 92], "document": [47, 104], "tutori": [47, 55, 94, 112, 120, 121, 123, 124, 126, 128, 129, 130, 132, 133], "t_decomposit": 47, "t_ctr_decomposit": 47, "t_var_decomposit": 47, "with_default_sub_problem_spec": [47, 109, 129, 133], "dantzigwolf": [47, 50, 51, 54, 91, 109, 129, 133], "subproblem": [47, 50, 109, 112, 129, 133], "t_sub_problem": 47, "with_sub_problem_spec": 47, "t_id": 47, "with_infeasibility_strategi": [47, 109], "t_strategi": [47, 50], "with_hard_branch": [47, 109], "with_infeasible_columns_remov": 47, "with_max_parallel_sub_problem": 47, "t_n_sub_problem": 47, "t_logger": 47, "with_dual_price_smoothing_stabil": [47, 109], "dualpricesmoothingstabil": [47, 50, 52, 53], "get_sub_problem_spec": 47, "with_integer_column": 49, "with_max_depth": 49, "with_frequ": 49, "t_frequenc": 49, "set_integer_column": 49, "set_time_limit": 49, "set_iteration_limit": 49, "set_max_depth": 49, "set_frequ": 49, "formul": 50, "t_formul": 50, "t_master_optimizer_factori": 50, "t_max_parallel_pr": 50, "t_use_hard_branch": 50, "t_remove_infeasible_column": 50, "t_sub_problem_specif": 50, "t_logger_factori": 50, "columngener": 50, "t_use_farkas_for_infeas": 50, "set_best_bound_stop": 50, "artificialcost": [51, 91], "farkaspr": [51, 91, 109], "t_initial_factor": [52, 53], "update_stability_cent": [52, 53], "dual": [52, 53, 57, 63, 66, 73, 91, 112, 124], "t_master_du": [52, 53], "compute_smoothed_dual_solut": [52, 53], "neam": [54, 109, 112], "wentg": [54, 112], "associ": [55, 57, 58, 64, 67, 68, 71, 94, 123, 129], "default_valu": 55, "my_annot": 55, "relat": [55, 117, 129], "anywher": 55, "code": [55, 60, 104, 105, 112, 117, 123, 133], "my": [55, 113, 121], "particular": [55, 63, 104, 112, 113, 116, 133], "instruct": [55, 105], "design": [55, 133], "price": [55, 112, 132, 133, 134], "learn": [55, 112, 121, 124], "objectt": 55, "valuet": [55, 58, 71], "impl": [55, 56, 58, 60, 61, 65, 66, 71, 92, 94, 95], "t_env": [55, 58, 63, 71, 77, 78, 81, 82], "t_name": [55, 58, 63, 71], "No": 55, "environ": [55, 58, 60, 63, 71, 104, 109, 113, 118, 121, 123, 129], "argst": [55, 58, 71], "t_arg": [55, 58, 71], "built": [55, 69, 70, 104, 112, 115], "place": [55, 58, 71, 130, 132, 133], "pack": [55, 58, 71], "construct": [55, 58, 63, 71, 112, 126, 128, 130, 132], "is_var_annot": 55, "is_ctr_annot": 55, "uniqu": [55, 58, 63, 71], "within": [55, 63], "has_default": 55, "free": 55, "memori": 55, "kept": 55, "make_with_default_valu": 55, "repres": [56, 57, 58, 62, 63, 64, 66, 69, 70, 71, 123], "made": [56, 66, 69, 70, 117], "coeffici": [56, 57, 62, 63, 66, 123, 124], "constant": [56, 58, 61, 62, 63, 64, 65, 66, 69, 73, 91, 120], "Such": [56, 66], "compon": [56, 123], "t_obj": [56, 63], "move": [56, 57, 62, 63, 64, 66, 69, 70, 129], "fix": [56, 57, 61, 62, 63, 65, 66, 123, 133], "t_primal": [56, 57, 61, 62, 63, 65, 66], "param": [56, 57, 61, 66, 73, 91, 123], "replac": [56, 57, 63, 66, 133], "obj": [56, 63, 129], "linear": [56, 57, 61, 62, 63, 66, 119, 120, 123, 133], "whose": [56, 62, 63, 92, 123, 133], "impli": 56, "term": [56, 57, 62, 66, 69], "linexpr": [56, 61, 63, 66, 73, 91, 123], "obj_quadrat": 56, "quadrat": [56, 57, 61, 63, 66, 112, 123], "quadexpr": [56, 61, 66, 73, 91, 123], "set_linear": [56, 66], "t_lin_expr": [56, 61, 66], "set_quadrat": [56, 66], "t_quad_expr": [56, 61, 66], "set_obj": 56, "hand": [56, 58, 63, 66, 112, 124], "subtract": [56, 57, 62, 66], "multipli": [56, 57, 62, 66, 67, 68, 123], "factor": [56, 62, 66, 67, 68], "attribut": [56, 57, 63, 66], "emptycolumn": 56, "appear": 57, "affin": 57, "scheme": [57, 112, 133], "reformul": 57, "seen": [57, 112, 116, 123], "b": [57, 64, 119], "compos": [57, 123], "mathemat": [57, 63, 112, 119, 123], "express": [57, 62, 63, 69, 112, 117, 120, 124], "_0": 57, "_j": 57, "appropri": 57, "overload": [57, 69], "yield": 57, "t_param": [57, 61, 64, 78, 80, 82], "t_param_1": 57, "t_param_2": 57, "t_constant": [57, 58, 61, 63], "t_coeffici": [57, 62, 65], "entri": [57, 62, 66, 67, 68], "remov": [57, 62, 63, 112, 133], "queri": [57, 60, 63, 67, 68], "set_numer": 57, "as_numer": 57, "throw": [57, 67, 68], "except": [57, 58, 66, 67, 68, 71, 117], "parametr": 57, "is_zero": [57, 61], "size": [57, 62, 67, 68, 124, 133], "insid": [57, 92, 102, 104, 106, 113, 118, 123, 129, 133], "is_numer": 57, "pure": [57, 112, 115], "part": [57, 58, 63, 66, 71, 92, 94, 123, 133], "t_term": 57, "up": [57, 62, 112], "result": [57, 62, 117, 124], "substract": 57, "t_dual": [57, 66], "t_factor": [57, 61, 62, 65, 67, 68], "ctrversion": [58, 69], "directli": [58, 63, 71, 89, 112, 123, 124], "add_ctr": [58, 63, 66, 69, 107, 108, 109, 111, 112, 120, 123, 129], "natur": [58, 112, 123], "intermedi": 58, "temporari": [58, 69, 70], "t_temp_ctr": [58, 63], "is_in": [58, 71], "t_annot": [58, 71], "thrown": [58, 66, 67, 68, 71, 117], "make_vector": [58, 63, 71, 123], "dim": [58, 62, 63, 71, 108, 109, 111, 112, 120, 123, 124, 129], "t_dim": [58, 63, 71], "m": [58, 63, 71, 119, 123, 129], "lessorequ": [58, 59, 63, 69], "constraint_1_4": 58, "dimens": [58, 63, 71, 123], "recurs": [58, 71], "element": [58, 71], "enum": [59, 72, 100, 102], "enumer": [59, 72, 94, 100, 102, 129], "greaterorequ": 59, "essenti": [60, 94, 123], "control": [60, 92, 112, 123], "death": [60, 123], "live": [60, 123], "dure": [60, 92, 94, 102, 123, 124, 129, 130], "import": [60, 122, 134], "destroi": 60, "them": [60, 63, 94, 106, 118, 120], "undefin": 60, "behavior": [60, 92, 112], "segment": 60, "fault": 60, "instanti": [60, 69, 70, 123], "t_object": [60, 63], "returnth": 60, "key1": [61, 65], "key2": [61, 65], "t_num": 61, "t_expr": 61, "gcd": [61, 62, 66], "scale_to_integ": [61, 63, 66], "t_n_significant_digit": [61, 66], "product": [62, 133], "kei": [62, 67, 68, 92, 112], "scalar": 62, "x_1": [62, 63, 120, 123], "add_var": [62, 63, 64, 70, 71, 107, 108, 109, 111, 112, 120, 123, 124, 129], "lin_expr": 62, "abstractexpr": [62, 65], "linterm": 62, "t_kei": [62, 67, 68], "iteratoroutputt": 62, "hash": [62, 65], "equalto": [62, 63, 65], "const_iter": [62, 67, 68], "long": [62, 112, 119], "probabl": 63, "central": 63, "lll": [63, 123, 124], "textrm": [63, 123, 124, 129], "minim": [63, 115, 116, 124, 133], "displaystyl": [63, 123, 124], "a_": [63, 117, 123], "0j": 63, "x_j": [63, 117, 123, 124, 133], "q_": [63, 117, 123], "jk": [63, 117, 123], "0x_jx_k": 63, "b_0": 63, "subject": [63, 119, 120, 129], "ij": [63, 117, 123, 129], "q": [63, 117, 123], "i_": [63, 123], "x_jx_k": [63, 123], "b_i": [63, 117, 123], "l_j": [63, 123], "u_j": [63, 123], "z": [63, 107, 120, 123, 133], "j_i": [63, 123], "x_n": 63, "l_1": 63, "u_1": 63, "l_n": 63, "u_n": 63, "possibli": [63, 71, 129], "integr": [63, 104, 105, 112, 123], "those": 63, "indic": [63, 102, 107, 118, 123, 129, 133], "other": [63, 104, 112, 121, 129, 133], "entiti": 63, "input": [63, 112, 123, 124], "c_j": [63, 123], "altern": [63, 123], "maxim": [63, 124], "short": [63, 121], "ll": 63, "c": [63, 94, 104, 106, 112, 113, 114, 117, 124, 133], "set_obj_expr": [63, 107, 108, 109, 111, 112, 120, 123, 124, 129], "matrix": [63, 117], "objectivesens": 63, "t_sens": 63, "vartyp": [63, 70, 71, 73, 91], "lower": [63, 70, 71, 123], "upper": [63, 70, 71, 123], "t_column": [63, 70, 71], "attent": 63, "involv": 63, "x_": [63, 124, 129], "base": [63, 117, 119, 120, 133], "model1": 63, "model2": 63, "ident": [63, 112, 129], "creation": 63, "tempvar": [63, 73, 91], "t_temp_var": 63, "constiteratorforward": 63, "abl": 63, "over": [63, 123], "pointer": 63, "reserve_var": 63, "t_size": 63, "reserve_ctr": 63, "has_optim": 63, "has_optimizer_factori": 63, "optimizer_factori": 63, "unus": 63, "add_vector": 63, "t_vector": 63, "n_solved_nod": 63, "beforehand": 63, "ask": [63, 115, 116], "piec": [63, 123, 124], "file": [63, 106, 117, 118, 121, 129], "lp": [63, 112, 121], "destin": [63, 113], "hi": 63, "represent": [63, 121], "befor": [63, 112, 113, 133], "even": [63, 115], "get_obj_sens": [63, 123], "get_obj_expr": [63, 123], "get_rhs_expr": 63, "rh": [63, 66], "get_mat_coeff": 63, "coeff": [63, 123], "c1": 63, "fail": [63, 112], "becaus": [63, 67, 68, 123, 124, 133], "known": [63, 123, 133], "optimum": 63, "100": [63, 67, 112, 124], "set_obj_sens": [63, 124], "set_rhs_expr": 63, "lin": 63, "c2": 63, "set_obj_const": 63, "set_mat_coeff": 63, "t_coeff": 63, "get_ctr_by_index": 63, "t_index": 63, "get_var_by_index": 63, "get_ctr_index": 63, "index": [63, 124, 129, 133], "get_ctr_typ": 63, "get_ctr_row": [63, 66], "farka": [63, 112, 124], "set_ctr_rh": 63, "set_ctr_typ": 63, "set_ctr_row": 63, "get_var_index": 63, "get_var_typ": 63, "get_var_lb": [63, 123], "get_var_ub": [63, 123], "rai": [63, 124], "get_var_column": 63, "set_var_typ": 63, "set_var_lb": 63, "set_var_ub": 63, "set_var_obj": 63, "set_var_column": 63, "avail": [63, 92, 106, 112, 129], "find": [63, 75, 83, 84, 116], "sever": [63, 117, 133], "pool": [63, 112], "set_solution_index": 63, "retriev": [63, 123, 124, 129], "via": [63, 106, 112], "n_solut": 63, "save_prim": [63, 68, 107, 108, 109, 111, 120, 124, 129], "precis": [64, 123], "prepend": [64, 120], "symbol": [64, 120, 123], "parametrized_express": 64, "view": 64, "test": [64, 89, 105, 112], "behind": [64, 116], "underli": [64, 133], "conditional_t": 65, "is_same_v": 65, "symmetric_pair_hash": 65, "symmetric_pair_equal_to": 65, "equal_to": 65, "quadterm": 65, "whole": [66, 94, 133], "t_lh": 66, "encount": 66, "is_viol": [66, 69], "set_rh": 66, "subtarct": 66, "emptyrow": 66, "abstractsolut": [67, 68], "save_du": [67, 124], "scratch": [67, 68], "set_statu": [67, 68], "set_objective_valu": [67, 68], "13": [67, 68, 109, 119, 129], "constraint_1": 67, "map": [67, 68, 118], "t_statu": [67, 68], "desir": [67, 68, 69, 70, 112, 116, 121, 123, 124, 129], "set_reason": [67, 68], "t_reason": [67, 68], "iterlimit": [67, 68], "reach": [67, 68, 112], "objective_valu": [67, 68], "has_objective_valu": [67, 68], "reset_objective_valu": [67, 68], "cbegin": [67, 68], "cend": [67, 68], "norm": [67, 68], "t_p": [67, 68], "l_p": [67, 68], "infin": [67, 68], "merge_without_conflict": [67, 68], "merg": [67, 68], "conflict": [67, 68], "aris": [67, 68, 94], "detect": [67, 68], "normal": [67, 68, 116], "divid": [67, 68], "respect": [67, 68], "set_typ": [69, 70], "t_solut": [69, 92], "same": [70, 89, 118, 129], "varvers": [70, 71], "set_lb": 70, "set_ub": 70, "x_1_4": [71, 129], "t_follower_vari": 74, "t_follower_constraint": 74, "t_follower_object": 74, "doxygenclass": [75, 83, 84], "doxygen": [75, 83, 84, 104], "xml": [75, 83, 84], "project": [75, 83, 84, 114, 116], "directori": [75, 83, 84, 104, 106, 113, 118], "_build": [75, 83, 84], "mib": [76, 91, 107], "read_from_fil": [77, 78, 81, 82, 121], "t_cb": 78, "with_lazy_cut": [78, 120], "with_max_n_solution_in_pool": 78, "with_continuous_relaxation_onli": [78, 79, 80], "with_external_param": 78, "grb_intparam": [78, 82], "grb_doubleparam": [78, 82], "with_external_paramet": 80, "optimizerwithlazyupd": [81, 82], "t_continuous_relax": [81, 82], "grbvar": 82, "variant": 82, "grbconstr": 82, "grbqconstr": 82, "grbenv": 82, "grbmodel": 82, "t_thread_limit": 82, "t_ptr_to_callback": 82, "set_lazy_cut": 82, "set_max_n_solution_in_pool": 82, "set_param": 82, "gurobicallbacki": 82, "osi": [85, 86, 87, 88, 90, 91], "osisolverinterfac": [85, 86, 87, 88, 89], "create_osi_solver_interfac": [85, 86, 87, 88, 89], "t_solver_interfac": [85, 86, 87, 88, 89], "link": [89, 114, 116], "librari": [89, 112, 113, 115, 117, 118, 121, 123, 124], "open": 89, "moment": 89, "properli": [89, 112], "osicplex": [89, 90], "osicpxsolverinterfac": 89, "symphoni": 89, "clp": 89, "seem": 89, "fulli": 89, "fulfil": 89, "stabl": 89, "usag": [89, 117], "osicbc": [89, 90], "osiclp": [89, 90], "osisymphoni": [89, 90], "mosek": [90, 91, 112, 115, 116], "coin": [90, 91, 107], "OR": [90, 91], "cplex": [90, 91], "xpress": [90, 91], "cbc": [90, 91], "univers": 91, "invok": 92, "certain": 92, "These": 92, "monitor": 92, "progress": 92, "offer": [92, 112, 123, 124], "box": [92, 112], "routin": [92, 112, 129], "total": 92, "nutshel": 92, "similarli": [92, 121, 123, 124], "intend": [92, 118], "potenti": [92, 94], "qualiti": 92, "presenc": 92, "converg": 92, "were": 92, "omit": [92, 94, 129], "role": 92, "whenev": 92, "littl": 92, "incumbentsolut": [92, 102], "later": 92, "compliant": [92, 104], "cutsepar": [92, 94, 95], "callbacki": 92, "judici": 94, "against": 94, "resolv": 94, "materi": [94, 129], "fly": 94, "top": 94, "xi_0": [94, 123], "assum": [94, 113, 121, 124, 129, 133], "infinit": 94, "idea": [94, 112, 116, 123, 133], "search": [94, 112, 115, 118, 119], "observ": [94, 129, 133], "hold": 94, "leftrightarrow": 94, "handsid": 94, "show": [94, 117, 120, 124, 129], "how": [94, 104, 106, 112, 113, 117, 120, 121, 123, 124, 129, 130, 132, 133], "with_separation_optim": [94, 95, 120], "t_separation_problem": [94, 95], "loglevel": 95, "list": [99, 112, 113, 114, 116, 121, 129], "influenc": [102, 112], "modifi": [102, 112], "occur": 102, "about": [102, 112, 129, 130, 132, 133], "invalidsolut": 102, "prunedsolut": 102, "explain": [104, 106, 117], "machin": [104, 106], "bunch": 104, "tool": [104, 118], "sphinx": 104, "python": 104, "rtd": 104, "theme": 104, "render": 104, "html": 104, "sitemap": 104, "extens": 104, "multi": 104, "languag": 104, "copybutton": 104, "button": 104, "content": 104, "breath": 104, "plugin": 104, "interact": 104, "articl": 104, "sudo": [104, 106, 113], "apt": 104, "last": [104, 113], "python3": 104, "pip3": 104, "cmake": [104, 106, 113, 114, 115, 116, 117], "target": [104, 106, 115, 116, 117, 118], "websit": 104, "command": [104, 106, 113], "doc": [105, 112], "unit": [105, 112], "coverag": 105, "framework": [106, 112], "catch2": 106, "told": 106, "look": [106, 112, 118], "attempt": [106, 133], "download": [106, 112, 114, 116, 117], "github": [106, 116], "repositori": [106, 118], "git": [106, 116], "com": [106, 116], "catchorg": 106, "cd": [106, 113, 118], "bbuild": 106, "dbuild_test": 106, "nor": 106, "tell": [106, 116, 118, 129], "build_test": 106, "ye": [106, 113, 116, 117, 118], "gcov": 106, "shall": [106, 129], "with_test_coverag": 106, "dwith_code_coverag": 106, "report": [106, 124], "lcov": 106, "captur": 106, "compil": [106, 113], "push": 106, "action": 106, "codecov": 106, "henri": [107, 108, 109, 111], "07": [107, 129], "02": [107, 129], "24": 107, "iostream": [107, 108, 109, 111, 115, 116], "wrapper": [107, 108, 109, 111], "t_argc": [107, 108, 109, 111, 115, 116, 123], "char": [107, 108, 109, 111, 115, 116, 123], "t_argv": [107, 108, 109, 111, 115, 116, 123], "7y": 107, "3x": 107, "2y": [107, 120], "arg": 107, "2x": 107, "7": [107, 119, 129], "4z": 107, "16": [107, 129], "follower_object": 107, "follower_c1": 107, "follower_c2": 107, "masterid": [107, 109, 129], "leader": 107, "follower_vari": 107, "follower_constraint": 107, "06": [108, 111], "04": [108, 111, 119, 129], "23": [108, 109, 111, 116], "flp_instanc": 108, "txt": [108, 109, 111, 115, 116, 129], "idol_sum": [108, 109, 111, 112, 124, 129], "backend": [108, 121], "03": 109, "minknap": 109, "x_ij": [109, 129], "capacity_": [109, 129], "to_str": [109, 124, 129], "th": 109, "assignment_": [109, 129], "add_optim": [109, 129, 133], "with_column_pool_clean_up": 109, "1500": 109, "75": 109, "with_frequency_in_second": 109, "00000001": 109, "toi": 110, "kp_instanc": 111, "power": 112, "flexibl": 112, "meticul": 112, "craft": 112, "develop": [112, 118], "nbsp": 112, "instal": [112, 115, 117, 118], "guidelin": [112, 114], "research": [112, 119], "versatil": 112, "toolkit": 112, "tweak": 112, "experi": 112, "art": 112, "re": 112, "adjust": [112, 119], "edg": 112, "companion": 112, "visit": 112, "easiest": [112, 116, 121], "could": [112, 124], "think": 112, "latest": 112, "folder": [112, 113, 114, 116, 118], "realli": [112, 123], "mater": 112, "friendli": 112, "peopl": [112, 121], "40": [112, 124], "50": [112, 124, 129, 133], "95": [112, 124], "30": [112, 119, 124, 133], "14": [112, 124, 129], "98": [112, 124], "introductori": 112, "got": 112, "fine": 112, "tune": 112, "well": [112, 118, 123, 124], "engin": 112, "softwar": [112, 119], "enhanc": 112, "sigma_i": 112, "hard": [112, 133], "handl": 112, "experiment": 112, "extrem": 112, "care": [112, 123], "standalon": 112, "qp": [112, 118], "milp": 112, "miqp": 112, "miqcqp": 112, "unifi": 112, "would": [112, 120, 121, 129], "simpli": [112, 113, 129, 133], "rest": [112, 129], "easili": [112, 123, 124], "anyth": 112, "agnost": 112, "enrich": 112, "carri": 112, "customiz": 112, "least": [112, 113, 123], "uniformli": 112, "random": 112, "strong": [112, 131, 134], "pseudo": 112, "worst": 112, "breadth": 112, "specifi": [112, 113, 116, 118, 120, 123, 124, 129, 133], "support": 112, "quick": [112, 113], "come": [112, 118, 127, 131, 134], "parallel": 112, "reliabl": 112, "resort": 112, "artifici": 112, "switch": [112, 133], "clean": 112, "too": [112, 123], "smooth": 112, "1997": 112, "2000": 112, "black": 112, "plug": 112, "system": [112, 113], "profil": [112, 119], "basic": [112, 123, 134], "api": [112, 121, 123, 124], "guid": [112, 113, 116], "22": [113, 115], "earlier": 113, "opt": 113, "mkdir": 113, "your_cmake_options_should_go_her": 113, "duse_gurobi": [113, 118], "gurobi_hom": [113, 118], "correctli": 113, "configur": [113, 124], "offici": [113, 118], "readi": [113, 120, 129], "superus": 113, "cmake_install_prefix": 113, "my_opt": [113, 116], "my_valu": [113, 116], "dmy_opt": 113, "welcom": 114, "There": 114, "usr": [114, 118], "lib": [114, 118], "eigen": 114, "still": [115, 126, 128, 130, 132], "makefil": 115, "gcc": 115, "clang": 115, "cmakelist": [115, 116], "cmake_minimum_requir": [115, 116], "my_project": [115, 116], "cmake_cxx_standard": [115, 116], "17": [115, 116], "add_execut": [115, 116], "my_target": [115, 116], "cpp": [115, 116], "find_packag": 115, "target_link_librari": [115, 116], "fetchcontent_": 116, "direct": 116, "fetchcont": 116, "use_gurobi": [116, 118], "fetchcontent_declar": 116, "git_repositori": 116, "hlefebvr": 116, "git_tag": 116, "tag": 116, "v0": 116, "alpha": 116, "fetchcontent_makeavail": 116, "elabor": 117, "header": [117, 118, 129], "One": 117, "sourc": 117, "use_eigen": 117, "duse_mosek": [117, 118], "duse_eigen": 117, "ix_jx_k": 117, "conic": 117, "textbf": 117, "fx": 117, "mathcal": 117, "cone": 117, "convers": 117, "gurobi_dir": 118, "path": [118, 121], "dir": 118, "dgurobi_dir": 118, "achiev": [118, 123], "use_mosek": 118, "mosek_hom": 118, "mosek_dir": 118, "bin": 118, "home": 118, "my_usernam": 118, "platform": 118, "linux64x86": 118, "dmosek_dir": 118, "socp": 118, "use_glpk": 118, "glpk_home": 118, "glpk_dir": 118, "duse_glpk": 118, "dglpk_dir": 118, "use_high": 118, "highs_dir": 118, "duse_high": 118, "dhighs_dir": 118, "build_exampl": 118, "dbuild_exampl": 118, "example_knapsack": 118, "intern": 118, "unord": 118, "unfortun": [118, 133], "choic": 118, "relev": 118, "u": [118, 119, 129], "robin_hood": 118, "hpp": 118, "thourgh": 118, "robinhood_dir": 118, "use_robinhood": 118, "robinhood_hom": 118, "duse_robinhood": 118, "drobinhood_dir": 118, "lot": [119, 133], "scientif": 119, "tobia": 119, "achterberg": 119, "thorsten": 119, "koch": 119, "alexand": 119, "revisit": 119, "letter": 119, "33": 119, "42": 119, "54": 119, "2005": 119, "orl": 119, "2004": 119, "002": 119, "josett": 119, "ayoub": 119, "michael": 119, "poss": 119, "polytop": 119, "219": 119, "239": 119, "februari": 119, "2016": [119, 120], "url": 119, "dx": 119, "1007": 119, "s10287": 119, "016": 119, "0249": 119, "daniel": 119, "baena": 119, "jordi": 119, "castro": 119, "antonio": 119, "frangioni": 119, "scale": 119, "combinatori": [119, 123, 124], "applic": [119, 120], "privaci": 119, "66": 119, "3051": 119, "3068": 119, "juli": 119, "2020": 119, "1287": 119, "mnsc": 119, "2019": 119, "3341": 119, "timo": 119, "berthold": 119, "thesi": 119, "technisch": 119, "universit": 119, "\u00e4": 119, "berlin": 119, "2006": 119, "georg": 119, "philip": 119, "econometrica": 119, "29": 119, "767": 119, "octob": 119, "1961": 119, "2307": 119, "1911818": 119, "elizabeth": 119, "d": 119, "dolan": 119, "jorg": 119, "mor": 119, "\u00e9": 119, "benchmark": [119, 129], "91": 119, "201": 119, "213": 119, "jan": 119, "2002": 119, "s101070100263": 119, "januari": 119, "linderoth": 119, "w": [119, 124], "savelsbergh": 119, "studi": 119, "journal": 119, "11": 119, "173": 119, "187": 119, "1999": 119, "ijoc": 119, "pessoa": 119, "sadykov": 119, "uchoa": 119, "vanderbeck": 119, "autom": 119, "techniqu": [119, 133], "339": 119, "360": 119, "2018": 119, "2017": 119, "0784": 119, "fran": 119, "\u00e7": 119, "oi": 119, "331": 119, "358": 119, "springer": 119, "boston": 119, "ma": 119, "387": 119, "25486": 119, "2_12": 119, "laurenc": 119, "wolsei": 119, "wilei": 119, "septemb": 119, "1002": 119, "9781119606475": 119, "bo": 119, "zeng": 119, "zhao": 119, "41": 119, "457": 119, "461": 119, "2013": 119, "003": 119, "topic": [120, 129, 133], "rudimentari": [120, 129], "notion": [120, 129], "dualiti": 120, "blanco": 120, "minlp": 120, "school": 120, "theori": 120, "3x_1": 120, "2x_1": 120, "2x_0": 120, "3y": 120, "appli": [120, 129, 133], "complic": 120, "lambda_1": 120, "lambda_2": 120, "qquad": 120, "2_": 120, "lambda_0": 120, "three": [120, 123, 129, 133], "thing": [120, 123], "shape": 120, "descript": 120, "dual_spac": 120, "final": [120, 124, 129, 133], "mean": [120, 123], "benders_cut": 120, "wrong": 120, "export": 121, "miplib2017": 121, "miplib": 121, "zib": 121, "de": 121, "_": [121, 129], "pars": 121, "perfectli": 121, "adapt": 121, "format": 121, "ambigu": 121, "mp": 121, "Not": 121, "act": 121, "notic": 121, "gave": 121, "again": 121, "reli": 121, "attach": 121, "some_function_creating_my_model": 121, "That": [121, 129], "capabl": 121, "congratul": 121, "On": 123, "c_jx_j": 123, "d_": 123, "singl": 123, "neg": 123, "straightforward": 123, "did": 123, "extra": 123, "y_": 123, "add_arrai": 123, "y_ij": 123, "y_0_0": 123, "pattern": 123, "sign": 123, "offset": 123, "quit": 123, "mention": 123, "much": 123, "composit": 123, "thank": 123, "xi_1": 123, "get_lb": 123, "know": [123, 133], "someth": 123, "small": [124, 133], "recal": [124, 133], "max": [124, 133], "p_jx_j": 124, "w_jx_j": 124, "item": 124, "p_j": 124, "w_j": 124, "present": 124, "naiv": 124, "knowledg": 124, "macro": 124, "environemnt": 124, "reserv": 124, "emplace_back": 124, "knapsack_constraint": 124, "greatli": 124, "readabl": 124, "predefin": 124, "clever": 124, "iterat": 124, "accumul": 124, "timelimit": 124, "among": [124, 133], "save_rai": 124, "save_farka": 124, "get_var_": 124, "get_ctr_": 124, "primal_valu": 124, "101": [127, 131, 134], "prioriti": [127, 134], "agent": 129, "task": 129, "c_": 129, "w_": 129, "resourc": 129, "consumpt": 129, "encod": 129, "e_": 129, "mn": 129, "lambda_": 129, "exponenti": 129, "effici": 129, "simplest": 129, "space": 129, "parser": 129, "load": 129, "crucial": 129, "mandatori": 129, "remain": 129, "word": 129, "sub_problem_specif": 129, "column_gener": [129, 133], "emb": 129, "fraction": [129, 133], "unchang": 129, "produc": [129, 133], "2023": 129, "45": 129, "44": 129, "timt": 129, "00": 129, "timi": 129, "stat": 129, "rea": 129, "objval": 129, "110000": 129, "ngen": 129, "bestbnd": 129, "bestobj": 129, "rgap": 129, "90909090909090928": 129, "agap": 129, "50093": 129, "00000": 129, "40096": 129, "30068": 129, "01": 129, "242": 129, "277": 129, "86": 129, "58": 129, "35": 129, "36": 129, "90269": 129, "85653": 129, "50000": 129, "58001": 129, "35653": 129, "49817": 129, "36131": 129, "51": 129, "levl": 129, "relgap": 129, "absgap": 129, "233": 129, "42918454935603896320": 129, "08": 129, "22579": 129, "17547": 129, "17552": 129, "235": 129, "81": 129, "21": 129, "25760": 129, "80933": 129, "20572": 129, "22397": 129, "36123": 129, "4747": 129, "2106593638087168512": 129, "12451": 129, "7492": 129, "218": 129, "224": 129, "x_1_7": 129, "x_2_0": 129, "x_2_1": 129, "x_1_5": 129, "x_0_6": 129, "x_0_2": 129, "x_0_3": 129, "hei": [130, 132, 133], "ve": [130, 132, 133], "curiou": [130, 132, 133], "land": 133, "candid": 133, "decid": 133, "choos": 133, "badli": 133, "importantli": 133, "computation": 133, "spend": 133, "carefulli": 133, "why": 133, "evalu": 133, "notin": 133, "tri": 133, "lfloor": 133, "rfloor": 133, "lceil": 133, "rceil": 133, "z_i": 133, "z_j": 133, "empir": 133, "substanti": 133, "below": 133, "literatur": 133, "formula": 133, "linearscor": 133, "mu": 133, "delta_j": 133, "productscor": 133, "drawback": 133, "burden": 133, "similar": 133, "doe": 133, "approxim": 133, "impos": 133, "enough": 133, "talk": 133, "decompos": 133, "structur": 133, "branching_rul": 133, "with_node_selection_strategi": 133, "branch_and_pric": 133, "pretti": 133, "easi": 133, "But": 133, "wait": 133, "saw": 133, "conveni": 133, "strongbranchingphas": 133, "withnodeoptim": 133, "numeric_limit": 133, "withiterationlimit": 133, "complementari": 133, "next": 133}, "objects": {"": [[18, 0, 1, "_CPPv44idol", "idol"], [98, 0, 1, "_CPPv44idol", "idol"], [55, 1, 1, "_CPPv4I00EN4idol10AnnotationE", "idol::Annotation"], [55, 2, 1, "_CPPv4IDpEN4idol10Annotation10AnnotationER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::Annotation"], [55, 2, 1, "_CPPv4N4idol10Annotation10AnnotationER3EnvNSt6stringE", "idol::Annotation::Annotation"], [55, 3, 1, "_CPPv4IDpEN4idol10Annotation10AnnotationER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::Annotation::ArgsT"], [55, 4, 1, "_CPPv4IDpEN4idol10Annotation10AnnotationER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::Annotation::t_args"], [55, 4, 1, "_CPPv4IDpEN4idol10Annotation10AnnotationER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::Annotation::t_env"], [55, 4, 1, "_CPPv4N4idol10Annotation10AnnotationER3EnvNSt6stringE", "idol::Annotation::Annotation::t_env"], [55, 4, 1, "_CPPv4IDpEN4idol10Annotation10AnnotationER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::Annotation::t_name"], [55, 4, 1, "_CPPv4N4idol10Annotation10AnnotationER3EnvNSt6stringE", "idol::Annotation::Annotation::t_name"], [55, 3, 1, "_CPPv4I00EN4idol10AnnotationE", "idol::Annotation::ObjectT"], [55, 3, 1, "_CPPv4I00EN4idol10AnnotationE", "idol::Annotation::ValueT"], [55, 2, 1, "_CPPv4NK4idol10Annotation13default_valueEv", "idol::Annotation::default_value"], [55, 2, 1, "_CPPv4N4idol10Annotation4freeEv", "idol::Annotation::free"], [55, 2, 1, "_CPPv4NK4idol10Annotation11has_defaultEv", "idol::Annotation::has_default"], [55, 2, 1, "_CPPv4NK4idol10Annotation2idEv", "idol::Annotation::id"], [55, 2, 1, "_CPPv4NK4idol10Annotation17is_ctr_annotationEv", "idol::Annotation::is_ctr_annotation"], [55, 2, 1, "_CPPv4NK4idol10Annotation17is_var_annotationEv", "idol::Annotation::is_var_annotation"], [55, 2, 1, "_CPPv4IDpEN4idol10Annotation23make_with_default_valueE10AnnotationI7ObjectT6ValueTER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::make_with_default_value"], [55, 3, 1, "_CPPv4IDpEN4idol10Annotation23make_with_default_valueE10AnnotationI7ObjectT6ValueTER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::make_with_default_value::ArgsT"], [55, 4, 1, "_CPPv4IDpEN4idol10Annotation23make_with_default_valueE10AnnotationI7ObjectT6ValueTER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::make_with_default_value::t_args"], [55, 4, 1, "_CPPv4IDpEN4idol10Annotation23make_with_default_valueE10AnnotationI7ObjectT6ValueTER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::make_with_default_value::t_env"], [55, 4, 1, "_CPPv4IDpEN4idol10Annotation23make_with_default_valueE10AnnotationI7ObjectT6ValueTER3EnvNSt6stringEDpRR5ArgsT", "idol::Annotation::make_with_default_value::t_name"], [55, 2, 1, "_CPPv4NK4idol10Annotation4nameEv", "idol::Annotation::name"], [29, 1, 1, "_CPPv4N4idol9BestBoundE", "idol::BestBound"], [29, 1, 1, "_CPPv4I0EN4idol9BestBound8StrategyE", "idol::BestBound::Strategy"], [29, 3, 1, "_CPPv4I0EN4idol9BestBound8StrategyE", "idol::BestBound::Strategy::NodeT"], [29, 2, 1, "_CPPv4N4idol9BestBound8Strategy8StrategyERK9BestBound", "idol::BestBound::Strategy::Strategy"], [29, 4, 1, "_CPPv4N4idol9BestBound8Strategy8StrategyERK9BestBound", "idol::BestBound::Strategy::Strategy::t_parent"], [29, 2, 1, "_CPPv4NK4idol9BestBound8Strategy5cloneEv", "idol::BestBound::Strategy::clone"], [29, 2, 1, "_CPPv4NK4idol9BestBound8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::BestBound::Strategy::operator()"], [29, 4, 1, "_CPPv4NK4idol9BestBound8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::BestBound::Strategy::operator()::t_parent"], [30, 1, 1, "_CPPv4N4idol12BestEstimateE", "idol::BestEstimate"], [30, 1, 1, "_CPPv4I0EN4idol12BestEstimate8StrategyE", "idol::BestEstimate::Strategy"], [30, 3, 1, "_CPPv4I0EN4idol12BestEstimate8StrategyE", "idol::BestEstimate::Strategy::NodeT"], [30, 2, 1, "_CPPv4N4idol12BestEstimate8Strategy8StrategyERK12BestEstimate", "idol::BestEstimate::Strategy::Strategy"], [30, 4, 1, "_CPPv4N4idol12BestEstimate8Strategy8StrategyERK12BestEstimate", "idol::BestEstimate::Strategy::Strategy::t_parent"], [30, 2, 1, "_CPPv4NK4idol12BestEstimate8Strategy5cloneEv", "idol::BestEstimate::Strategy::clone"], [30, 2, 1, "_CPPv4NK4idol12BestEstimate8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::BestEstimate::Strategy::operator()"], [30, 4, 1, "_CPPv4NK4idol12BestEstimate8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::BestEstimate::Strategy::operator()::t_parent"], [74, 1, 1, "_CPPv4N4idol7Bilevel4MibSE", "idol::Bilevel::MibS"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS4MibSERK10AnnotationI3VarjERK10AnnotationI3CtrjE3Ctr", "idol::Bilevel::MibS::MibS"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS4MibSERK4MibS", "idol::Bilevel::MibS::MibS"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS4MibSERR4MibS", "idol::Bilevel::MibS::MibS"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS4MibSERK10AnnotationI3VarjERK10AnnotationI3CtrjE3Ctr", "idol::Bilevel::MibS::MibS::t_follower_constraints"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS4MibSERK10AnnotationI3VarjERK10AnnotationI3CtrjE3Ctr", "idol::Bilevel::MibS::MibS::t_follower_objective"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS4MibSERK10AnnotationI3VarjERK10AnnotationI3CtrjE3Ctr", "idol::Bilevel::MibS::MibS::t_follower_variables"], [74, 2, 1, "_CPPv4I0EN4idol7Bilevel4MibS2asER1Tv", "idol::Bilevel::MibS::as"], [74, 2, 1, "_CPPv4I0ENK4idol7Bilevel4MibS2asERK1Tv", "idol::Bilevel::MibS::as"], [74, 3, 1, "_CPPv4I0EN4idol7Bilevel4MibS2asER1Tv", "idol::Bilevel::MibS::as::T"], [74, 3, 1, "_CPPv4I0ENK4idol7Bilevel4MibS2asERK1Tv", "idol::Bilevel::MibS::as::T"], [74, 2, 1, "_CPPv4NK4idol7Bilevel4MibS5cloneEv", "idol::Bilevel::MibS::clone"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEERKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional::t_conditional_value"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEERKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional::t_conditional_value"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEERKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional::t_else"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional::t_if"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEERKNSt8functionIFvR4MibSEEE", "idol::Bilevel::MibS::conditional::t_if"], [74, 2, 1, "_CPPv4I0ENK4idol7Bilevel4MibS2isEbv", "idol::Bilevel::MibS::is"], [74, 3, 1, "_CPPv4I0ENK4idol7Bilevel4MibS2isEbv", "idol::Bilevel::MibS::is::T"], [74, 2, 1, "_CPPv4NK4idol7Bilevel4MibSclERK5Model", "idol::Bilevel::MibS::operator()"], [74, 4, 1, "_CPPv4NK4idol7Bilevel4MibSclERK5Model", "idol::Bilevel::MibS::operator()::t_model"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibSaSERK4MibS", "idol::Bilevel::MibS::operator="], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibSaSERR4MibS", "idol::Bilevel::MibS::operator="], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS27with_absolute_gap_toleranceEd", "idol::Bilevel::MibS::with_absolute_gap_tolerance"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS27with_absolute_gap_toleranceEd", "idol::Bilevel::MibS::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS20with_best_bound_stopEd", "idol::Bilevel::MibS::with_best_bound_stop"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS20with_best_bound_stopEd", "idol::Bilevel::MibS::with_best_bound_stop::t_best_bound_stop"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS18with_best_obj_stopEd", "idol::Bilevel::MibS::with_best_obj_stop"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS18with_best_obj_stopEd", "idol::Bilevel::MibS::with_best_obj_stop::t_user_best_obj"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS33with_infeasible_or_unbounded_infoEb", "idol::Bilevel::MibS::with_infeasible_or_unbounded_info"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS33with_infeasible_or_unbounded_infoEb", "idol::Bilevel::MibS::with_infeasible_or_unbounded_info::t_value"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS20with_iteration_limitEj", "idol::Bilevel::MibS::with_iteration_limit"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS20with_iteration_limitEj", "idol::Bilevel::MibS::with_iteration_limit::t_iteration_count_limit"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS9with_logsEb", "idol::Bilevel::MibS::with_logs"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS9with_logsEb", "idol::Bilevel::MibS::with_logs::t_value"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS13with_presolveEb", "idol::Bilevel::MibS::with_presolve"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS13with_presolveEb", "idol::Bilevel::MibS::with_presolve::t_value"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS27with_relative_gap_toleranceEd", "idol::Bilevel::MibS::with_relative_gap_tolerance"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS27with_relative_gap_toleranceEd", "idol::Bilevel::MibS::with_relative_gap_tolerance::t_relative_gap_tolerance"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS17with_thread_limitEj", "idol::Bilevel::MibS::with_thread_limit"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS17with_thread_limitEj", "idol::Bilevel::MibS::with_thread_limit::t_max_n_threads"], [74, 2, 1, "_CPPv4N4idol7Bilevel4MibS15with_time_limitEd", "idol::Bilevel::MibS::with_time_limit"], [74, 4, 1, "_CPPv4N4idol7Bilevel4MibS15with_time_limitEd", "idol::Bilevel::MibS::with_time_limit::t_time_limit"], [72, 5, 1, "_CPPv4N4idol7VarType6BinaryE", "idol::Binary"], [19, 1, 1, "_CPPv4I0EN4idol14BranchAndBoundE", "idol::BranchAndBound"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound14BranchAndBoundERK14BranchAndBound", "idol::BranchAndBound::BranchAndBound"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound14BranchAndBoundERR14BranchAndBound", "idol::BranchAndBound::BranchAndBound"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound14BranchAndBoundEv", "idol::BranchAndBound::BranchAndBound"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound14BranchAndBoundERK14BranchAndBound", "idol::BranchAndBound::BranchAndBound::t_rhs"], [19, 3, 1, "_CPPv4I0EN4idol14BranchAndBoundE", "idol::BranchAndBound::NodeT"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound12add_callbackERK15CallbackFactory", "idol::BranchAndBound::add_callback"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound12add_callbackERK29BranchAndBoundCallbackFactoryI5NodeTE", "idol::BranchAndBound::add_callback"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound12add_callbackERK15CallbackFactory", "idol::BranchAndBound::add_callback::t_callback"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound12add_callbackERK29BranchAndBoundCallbackFactoryI5NodeTE", "idol::BranchAndBound::add_callback::t_callback"], [19, 2, 1, "_CPPv4I0EN4idol14BranchAndBound2asER1Tv", "idol::BranchAndBound::as"], [19, 2, 1, "_CPPv4I0ENK4idol14BranchAndBound2asERK1Tv", "idol::BranchAndBound::as"], [19, 3, 1, "_CPPv4I0EN4idol14BranchAndBound2asER1Tv", "idol::BranchAndBound::as::T"], [19, 3, 1, "_CPPv4I0ENK4idol14BranchAndBound2asERK1Tv", "idol::BranchAndBound::as::T"], [19, 2, 1, "_CPPv4NK4idol14BranchAndBound5cloneEv", "idol::BranchAndBound::clone"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEERKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional::t_conditional_value"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEERKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional::t_conditional_value"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEERKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional::t_else"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional::t_if"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEERKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE", "idol::BranchAndBound::conditional::t_if"], [19, 2, 1, "_CPPv4I0ENK4idol14BranchAndBound2isEbv", "idol::BranchAndBound::is"], [19, 3, 1, "_CPPv4I0ENK4idol14BranchAndBound2isEbv", "idol::BranchAndBound::is::T"], [19, 0, 1, "_CPPv4I00EN4idol14BranchAndBound20only_if_has_StrategyE", "idol::BranchAndBound::only_if_has_Strategy"], [19, 3, 1, "_CPPv4I00EN4idol14BranchAndBound20only_if_has_StrategyE", "idol::BranchAndBound::only_if_has_Strategy::ReturnT"], [19, 3, 1, "_CPPv4I00EN4idol14BranchAndBound20only_if_has_StrategyE", "idol::BranchAndBound::only_if_has_Strategy::T"], [19, 2, 1, "_CPPv4NK4idol14BranchAndBoundclERK5Model", "idol::BranchAndBound::operator()"], [19, 4, 1, "_CPPv4NK4idol14BranchAndBoundclERK5Model", "idol::BranchAndBound::operator()::t_model"], [19, 2, 1, "_CPPv4N4idol14BranchAndBoundpLERK16OptimizerFactory", "idol::BranchAndBound::operator+="], [19, 4, 1, "_CPPv4N4idol14BranchAndBoundpLERK16OptimizerFactory", "idol::BranchAndBound::operator+=::t_node_optimizer"], [19, 2, 1, "_CPPv4N4idol14BranchAndBoundaSERK14BranchAndBound", "idol::BranchAndBound::operator="], [19, 2, 1, "_CPPv4N4idol14BranchAndBoundaSERR14BranchAndBound", "idol::BranchAndBound::operator="], [19, 2, 1, "_CPPv4N4idol14BranchAndBound18set_node_optimizerERK16OptimizerFactory", "idol::BranchAndBound::set_node_optimizer"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound18set_node_optimizerERK16OptimizerFactory", "idol::BranchAndBound::set_node_optimizer::t_node_optimizer"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound27with_absolute_gap_toleranceEd", "idol::BranchAndBound::with_absolute_gap_tolerance"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound27with_absolute_gap_toleranceEd", "idol::BranchAndBound::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound20with_best_bound_stopEd", "idol::BranchAndBound::with_best_bound_stop"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound20with_best_bound_stopEd", "idol::BranchAndBound::with_best_bound_stop::t_best_bound_stop"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound18with_best_obj_stopEd", "idol::BranchAndBound::with_best_obj_stop"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound18with_best_obj_stopEd", "idol::BranchAndBound::with_best_obj_stop::t_user_best_obj"], [19, 2, 1, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE21BranchingRuleFactoryTERK21BranchingRuleFactoryT", "idol::BranchAndBound::with_branching_rule"], [19, 2, 1, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE21BranchingRuleFactoryTEERK21BranchingRuleFactoryT", "idol::BranchAndBound::with_branching_rule"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound19with_branching_ruleERK20BranchingRuleFactoryI5NodeTE", "idol::BranchAndBound::with_branching_rule"], [19, 3, 1, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE21BranchingRuleFactoryTERK21BranchingRuleFactoryT", "idol::BranchAndBound::with_branching_rule::BranchingRuleFactoryT"], [19, 3, 1, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE21BranchingRuleFactoryTEERK21BranchingRuleFactoryT", "idol::BranchAndBound::with_branching_rule::BranchingRuleFactoryT"], [19, 4, 1, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE21BranchingRuleFactoryTERK21BranchingRuleFactoryT", "idol::BranchAndBound::with_branching_rule::t_branching_rule"], [19, 4, 1, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE21BranchingRuleFactoryTEERK21BranchingRuleFactoryT", "idol::BranchAndBound::with_branching_rule::t_branching_rule"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound19with_branching_ruleERK20BranchingRuleFactoryI5NodeTE", "idol::BranchAndBound::with_branching_rule::t_branching_rule"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound33with_infeasible_or_unbounded_infoEb", "idol::BranchAndBound::with_infeasible_or_unbounded_info"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound33with_infeasible_or_unbounded_infoEb", "idol::BranchAndBound::with_infeasible_or_unbounded_info::t_value"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound20with_iteration_limitEj", "idol::BranchAndBound::with_iteration_limit"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound20with_iteration_limitEj", "idol::BranchAndBound::with_iteration_limit::t_iteration_count_limit"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound11with_loggerERKN4Logs14BranchAndBound7FactoryI5NodeTEE", "idol::BranchAndBound::with_logger"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound11with_loggerERKN4Logs14BranchAndBound7FactoryI5NodeTEE", "idol::BranchAndBound::with_logger::t_log_factory"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound9with_logsEb", "idol::BranchAndBound::with_logs"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound9with_logsEb", "idol::BranchAndBound::with_logs::t_value"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound19with_node_optimizerERK16OptimizerFactory", "idol::BranchAndBound::with_node_optimizer"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound19with_node_optimizerERK16OptimizerFactory", "idol::BranchAndBound::with_node_optimizer::t_node_optimizer"], [19, 2, 1, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE25NodeSelectionRuleFactoryTERK25NodeSelectionRuleFactoryT", "idol::BranchAndBound::with_node_selection_rule"], [19, 2, 1, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE25NodeSelectionRuleFactoryTEERK25NodeSelectionRuleFactoryT", "idol::BranchAndBound::with_node_selection_rule"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound24with_node_selection_ruleERK24NodeSelectionRuleFactoryI5NodeTE", "idol::BranchAndBound::with_node_selection_rule"], [19, 3, 1, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE25NodeSelectionRuleFactoryTERK25NodeSelectionRuleFactoryT", "idol::BranchAndBound::with_node_selection_rule::NodeSelectionRuleFactoryT"], [19, 3, 1, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE25NodeSelectionRuleFactoryTEERK25NodeSelectionRuleFactoryT", "idol::BranchAndBound::with_node_selection_rule::NodeSelectionRuleFactoryT"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound24with_node_selection_ruleERK24NodeSelectionRuleFactoryI5NodeTE", "idol::BranchAndBound::with_node_selection_rule::t_node_selection"], [19, 4, 1, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE25NodeSelectionRuleFactoryTERK25NodeSelectionRuleFactoryT", "idol::BranchAndBound::with_node_selection_rule::t_node_selection_rule"], [19, 4, 1, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE25NodeSelectionRuleFactoryTEERK25NodeSelectionRuleFactoryT", "idol::BranchAndBound::with_node_selection_rule::t_node_selection_rule"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound13with_presolveEb", "idol::BranchAndBound::with_presolve"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound13with_presolveEb", "idol::BranchAndBound::with_presolve::t_value"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound27with_relative_gap_toleranceEd", "idol::BranchAndBound::with_relative_gap_tolerance"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound27with_relative_gap_toleranceEd", "idol::BranchAndBound::with_relative_gap_tolerance::t_relative_gap_tolerance"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound12with_scalingEb", "idol::BranchAndBound::with_scaling"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound12with_scalingEb", "idol::BranchAndBound::with_scaling::t_value"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound18with_subtree_depthEj", "idol::BranchAndBound::with_subtree_depth"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound18with_subtree_depthEj", "idol::BranchAndBound::with_subtree_depth::t_depth"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound17with_thread_limitEj", "idol::BranchAndBound::with_thread_limit"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound17with_thread_limitEj", "idol::BranchAndBound::with_thread_limit::t_max_n_threads"], [19, 2, 1, "_CPPv4N4idol14BranchAndBound15with_time_limitEd", "idol::BranchAndBound::with_time_limit"], [19, 4, 1, "_CPPv4N4idol14BranchAndBound15with_time_limitEd", "idol::BranchAndBound::with_time_limit::t_time_limit"], [20, 1, 1, "_CPPv4I0EN4idol22BranchAndBoundCallbackE", "idol::BranchAndBoundCallback"], [20, 3, 1, "_CPPv4I0EN4idol22BranchAndBoundCallbackE", "idol::BranchAndBoundCallback::NodeInfoT"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallback12add_lazy_cutERK7TempCtr", "idol::BranchAndBoundCallback::add_lazy_cut"], [20, 4, 1, "_CPPv4N4idol22BranchAndBoundCallback12add_lazy_cutERK7TempCtr", "idol::BranchAndBoundCallback::add_lazy_cut::t_cut"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallback12add_user_cutERK7TempCtr", "idol::BranchAndBoundCallback::add_user_cut"], [20, 4, 1, "_CPPv4N4idol22BranchAndBoundCallback12add_user_cutERK7TempCtr", "idol::BranchAndBoundCallback::add_user_cut::t_cut"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallback10initializeEv", "idol::BranchAndBoundCallback::initialize"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallback21log_after_terminationEv", "idol::BranchAndBoundCallback::log_after_termination"], [20, 2, 1, "_CPPv4NK4idol22BranchAndBoundCallback4nodeEv", "idol::BranchAndBoundCallback::node"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallbackclE13CallbackEvent", "idol::BranchAndBoundCallback::operator()"], [20, 4, 1, "_CPPv4N4idol22BranchAndBoundCallbackclE13CallbackEvent", "idol::BranchAndBoundCallback::operator()::t_event"], [20, 2, 1, "_CPPv4NK4idol22BranchAndBoundCallback14original_modelEv", "idol::BranchAndBoundCallback::original_model"], [20, 2, 1, "_CPPv4NK4idol22BranchAndBoundCallback10relaxationEv", "idol::BranchAndBoundCallback::relaxation"], [20, 2, 1, "_CPPv4NK4idol22BranchAndBoundCallback20side_effect_registryEv", "idol::BranchAndBoundCallback::side_effect_registry"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallback12submit_boundEd", "idol::BranchAndBoundCallback::submit_bound"], [20, 4, 1, "_CPPv4N4idol22BranchAndBoundCallback12submit_boundEd", "idol::BranchAndBoundCallback::submit_bound::t_bound"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallback25submit_heuristic_solutionEP9NodeInfoT", "idol::BranchAndBoundCallback::submit_heuristic_solution"], [20, 4, 1, "_CPPv4N4idol22BranchAndBoundCallback25submit_heuristic_solutionEP9NodeInfoT", "idol::BranchAndBoundCallback::submit_heuristic_solution::t_info"], [20, 2, 1, "_CPPv4NK4idol22BranchAndBoundCallback4timeEv", "idol::BranchAndBoundCallback::time"], [20, 2, 1, "_CPPv4N4idol22BranchAndBoundCallbackD0Ev", "idol::BranchAndBoundCallback::~BranchAndBoundCallback"], [21, 1, 1, "_CPPv4I0EN4idol29BranchAndBoundCallbackFactoryE", "idol::BranchAndBoundCallbackFactory"], [21, 3, 1, "_CPPv4I0EN4idol29BranchAndBoundCallbackFactoryE", "idol::BranchAndBoundCallbackFactory::NodeInfoT"], [21, 2, 1, "_CPPv4NK4idol29BranchAndBoundCallbackFactory5cloneEv", "idol::BranchAndBoundCallbackFactory::clone"], [21, 2, 1, "_CPPv4N4idol29BranchAndBoundCallbackFactoryclEv", "idol::BranchAndBoundCallbackFactory::operator()"], [21, 2, 1, "_CPPv4N4idol29BranchAndBoundCallbackFactoryD0Ev", "idol::BranchAndBoundCallbackFactory::~BranchAndBoundCallbackFactory"], [31, 1, 1, "_CPPv4N4idol12BreadthFirstE", "idol::BreadthFirst"], [31, 1, 1, "_CPPv4I0EN4idol12BreadthFirst8StrategyE", "idol::BreadthFirst::Strategy"], [31, 3, 1, "_CPPv4I0EN4idol12BreadthFirst8StrategyE", "idol::BreadthFirst::Strategy::NodeT"], [31, 2, 1, "_CPPv4N4idol12BreadthFirst8Strategy8StrategyERK12BreadthFirst", "idol::BreadthFirst::Strategy::Strategy"], [31, 4, 1, "_CPPv4N4idol12BreadthFirst8Strategy8StrategyERK12BreadthFirst", "idol::BreadthFirst::Strategy::Strategy::t_parent"], [31, 2, 1, "_CPPv4NK4idol12BreadthFirst8Strategy5cloneEv", "idol::BreadthFirst::Strategy::clone"], [31, 2, 1, "_CPPv4NK4idol12BreadthFirst8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::BreadthFirst::Strategy::operator()"], [31, 4, 1, "_CPPv4NK4idol12BreadthFirst8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::BreadthFirst::Strategy::operator()::t_parent"], [92, 1, 1, "_CPPv4N4idol8CallbackE", "idol::Callback"], [92, 2, 1, "_CPPv4N4idol8Callback12add_lazy_cutERK7TempCtr", "idol::Callback::add_lazy_cut"], [92, 4, 1, "_CPPv4N4idol8Callback12add_lazy_cutERK7TempCtr", "idol::Callback::add_lazy_cut::t_cut"], [92, 2, 1, "_CPPv4N4idol8Callback12add_user_cutERK7TempCtr", "idol::Callback::add_user_cut"], [92, 4, 1, "_CPPv4N4idol8Callback12add_user_cutERK7TempCtr", "idol::Callback::add_user_cut::t_cut"], [92, 2, 1, "_CPPv4N4idol8CallbackclE13CallbackEvent", "idol::Callback::operator()"], [92, 4, 1, "_CPPv4N4idol8CallbackclE13CallbackEvent", "idol::Callback::operator()::t_event"], [92, 2, 1, "_CPPv4NK4idol8Callback14original_modelEv", "idol::Callback::original_model"], [92, 2, 1, "_CPPv4NK4idol8Callback15primal_solutionEv", "idol::Callback::primal_solution"], [92, 2, 1, "_CPPv4N4idol8Callback25submit_heuristic_solutionERKN8Solution6PrimalE", "idol::Callback::submit_heuristic_solution"], [92, 4, 1, "_CPPv4N4idol8Callback25submit_heuristic_solutionERKN8Solution6PrimalE", "idol::Callback::submit_heuristic_solution::t_solution"], [92, 2, 1, "_CPPv4NK4idol8Callback4timeEv", "idol::Callback::time"], [92, 2, 1, "_CPPv4N4idol8CallbackD0Ev", "idol::Callback::~Callback"], [102, 6, 1, "_CPPv4N4idol13CallbackEventE", "idol::CallbackEvent"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent17IncumbentSolutionE", "idol::CallbackEvent::IncumbentSolution"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent15InvalidSolutionE", "idol::CallbackEvent::InvalidSolution"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent10NodeLoadedE", "idol::CallbackEvent::NodeLoaded"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent14PrunedSolutionE", "idol::CallbackEvent::PrunedSolution"], [93, 1, 1, "_CPPv4N4idol15CallbackFactoryE", "idol::CallbackFactory"], [93, 2, 1, "_CPPv4NK4idol15CallbackFactory5cloneEv", "idol::CallbackFactory::clone"], [93, 2, 1, "_CPPv4N4idol15CallbackFactoryclEv", "idol::CallbackFactory::operator()"], [93, 2, 1, "_CPPv4N4idol15CallbackFactoryD0Ev", "idol::CallbackFactory::~CallbackFactory"], [56, 1, 1, "_CPPv4N4idol6ColumnE", "idol::Column"], [56, 2, 1, "_CPPv4N4idol6Column6ColumnERK6Column", "idol::Column::Column"], [56, 2, 1, "_CPPv4N4idol6Column6ColumnERK8Constant", "idol::Column::Column"], [56, 2, 1, "_CPPv4N4idol6Column6ColumnERR6Column", "idol::Column::Column"], [56, 2, 1, "_CPPv4N4idol6Column6ColumnERR8Constant", "idol::Column::Column"], [56, 2, 1, "_CPPv4N4idol6Column6ColumnEv", "idol::Column::Column"], [56, 4, 1, "_CPPv4N4idol6Column6ColumnERK8Constant", "idol::Column::Column::t_obj"], [56, 4, 1, "_CPPv4N4idol6Column6ColumnERR8Constant", "idol::Column::Column::t_obj"], [56, 4, 1, "_CPPv4N4idol6Column6ColumnERK6Column", "idol::Column::Column::t_src"], [56, 4, 1, "_CPPv4N4idol6Column6ColumnERR6Column", "idol::Column::Column::t_src"], [56, 7, 1, "_CPPv4N4idol6Column11EmptyColumnE", "idol::Column::EmptyColumn"], [56, 2, 1, "_CPPv4NK4idol6Column3fixERKN8Solution6PrimalE", "idol::Column::fix"], [56, 4, 1, "_CPPv4NK4idol6Column3fixERKN8Solution6PrimalE", "idol::Column::fix::t_primals"], [56, 2, 1, "_CPPv4N4idol6Column6linearEv", "idol::Column::linear"], [56, 2, 1, "_CPPv4NK4idol6Column6linearEv", "idol::Column::linear"], [56, 2, 1, "_CPPv4N4idol6Column3objEv", "idol::Column::obj"], [56, 2, 1, "_CPPv4NK4idol6Column3objEv", "idol::Column::obj"], [56, 2, 1, "_CPPv4N4idol6Column13obj_quadraticEv", "idol::Column::obj_quadratic"], [56, 2, 1, "_CPPv4NK4idol6Column13obj_quadraticEv", "idol::Column::obj_quadratic"], [56, 2, 1, "_CPPv4N4idol6ColumnmLEd", "idol::Column::operator*="], [56, 4, 1, "_CPPv4N4idol6ColumnmLEd", "idol::Column::operator*=::t_rhs"], [56, 2, 1, "_CPPv4N4idol6ColumnpLERK6Column", "idol::Column::operator+="], [56, 4, 1, "_CPPv4N4idol6ColumnpLERK6Column", "idol::Column::operator+=::t_rhs"], [56, 2, 1, "_CPPv4N4idol6ColumnmIERK6Column", "idol::Column::operator-="], [56, 4, 1, "_CPPv4N4idol6ColumnmIERK6Column", "idol::Column::operator-=::t_rhs"], [56, 2, 1, "_CPPv4N4idol6ColumnaSERK6Column", "idol::Column::operator="], [56, 2, 1, "_CPPv4N4idol6ColumnaSERR6Column", "idol::Column::operator="], [56, 4, 1, "_CPPv4N4idol6ColumnaSERK6Column", "idol::Column::operator=::t_src"], [56, 4, 1, "_CPPv4N4idol6ColumnaSERR6Column", "idol::Column::operator=::t_src"], [56, 2, 1, "_CPPv4N4idol6Column9quadraticEv", "idol::Column::quadratic"], [56, 2, 1, "_CPPv4NK4idol6Column9quadraticEv", "idol::Column::quadratic"], [56, 2, 1, "_CPPv4N4idol6Column10set_linearERK7LinExprI3CtrE", "idol::Column::set_linear"], [56, 2, 1, "_CPPv4N4idol6Column10set_linearERR7LinExprI3CtrE", "idol::Column::set_linear"], [56, 4, 1, "_CPPv4N4idol6Column10set_linearERK7LinExprI3CtrE", "idol::Column::set_linear::t_lin_expr"], [56, 4, 1, "_CPPv4N4idol6Column10set_linearERR7LinExprI3CtrE", "idol::Column::set_linear::t_lin_expr"], [56, 2, 1, "_CPPv4N4idol6Column7set_objERK8Constant", "idol::Column::set_obj"], [56, 2, 1, "_CPPv4N4idol6Column7set_objERR8Constant", "idol::Column::set_obj"], [56, 4, 1, "_CPPv4N4idol6Column7set_objERK8Constant", "idol::Column::set_obj::t_obj"], [56, 4, 1, "_CPPv4N4idol6Column7set_objERR8Constant", "idol::Column::set_obj::t_obj"], [56, 2, 1, "_CPPv4N4idol6Column13set_quadraticERK8QuadExprI3Ctr3VarE", "idol::Column::set_quadratic"], [56, 2, 1, "_CPPv4N4idol6Column13set_quadraticERR8QuadExprI3Ctr3VarE", "idol::Column::set_quadratic"], [56, 4, 1, "_CPPv4N4idol6Column13set_quadraticERK8QuadExprI3Ctr3VarE", "idol::Column::set_quadratic::t_quad_expr"], [56, 4, 1, "_CPPv4N4idol6Column13set_quadraticERR8QuadExprI3Ctr3VarE", "idol::Column::set_quadratic::t_quad_expr"], [57, 1, 1, "_CPPv4N4idol8ConstantE", "idol::Constant"], [57, 2, 1, "_CPPv4N4idol8Constant8ConstantERK5ParamRK5Paramd", "idol::Constant::Constant"], [57, 2, 1, "_CPPv4N4idol8Constant8ConstantERK5Paramd", "idol::Constant::Constant"], [57, 2, 1, "_CPPv4N4idol8Constant8ConstantERK8Constant", "idol::Constant::Constant"], [57, 2, 1, "_CPPv4N4idol8Constant8ConstantERR8Constant", "idol::Constant::Constant"], [57, 2, 1, "_CPPv4N4idol8Constant8ConstantEd", "idol::Constant::Constant"], [57, 2, 1, "_CPPv4N4idol8Constant8ConstantEv", "idol::Constant::Constant"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantEd", "idol::Constant::Constant::t_constant"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantERK5Paramd", "idol::Constant::Constant::t_param"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantERK5ParamRK5Paramd", "idol::Constant::Constant::t_param_1"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantERK5ParamRK5Paramd", "idol::Constant::Constant::t_param_2"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantERK8Constant", "idol::Constant::Constant::t_src"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantERK5ParamRK5Paramd", "idol::Constant::Constant::t_value"], [57, 4, 1, "_CPPv4N4idol8Constant8ConstantERK5Paramd", "idol::Constant::Constant::t_value"], [57, 7, 1, "_CPPv4N4idol8Constant4ZeroE", "idol::Constant::Zero"], [57, 2, 1, "_CPPv4NK4idol8Constant12as_numericalEv", "idol::Constant::as_numerical"], [57, 2, 1, "_CPPv4NK4idol8Constant3fixERKN8Solution4DualE", "idol::Constant::fix"], [57, 2, 1, "_CPPv4NK4idol8Constant3fixERKN8Solution6PrimalE", "idol::Constant::fix"], [57, 4, 1, "_CPPv4NK4idol8Constant3fixERKN8Solution4DualE", "idol::Constant::fix::t_duals"], [57, 4, 1, "_CPPv4NK4idol8Constant3fixERKN8Solution6PrimalE", "idol::Constant::fix::t_primals"], [57, 2, 1, "_CPPv4NK4idol8Constant3getERK5Param", "idol::Constant::get"], [57, 2, 1, "_CPPv4NK4idol8Constant3getERK5ParamRK5Param", "idol::Constant::get"], [57, 4, 1, "_CPPv4NK4idol8Constant3getERK5Param", "idol::Constant::get::t_param"], [57, 4, 1, "_CPPv4NK4idol8Constant3getERK5ParamRK5Param", "idol::Constant::get::t_param_1"], [57, 4, 1, "_CPPv4NK4idol8Constant3getERK5ParamRK5Param", "idol::Constant::get::t_param_2"], [57, 2, 1, "_CPPv4NK4idol8Constant12is_numericalEv", "idol::Constant::is_numerical"], [57, 2, 1, "_CPPv4NK4idol8Constant7is_zeroEv", "idol::Constant::is_zero"], [57, 2, 1, "_CPPv4N4idol8Constant6linearEv", "idol::Constant::linear"], [57, 2, 1, "_CPPv4NK4idol8Constant6linearEv", "idol::Constant::linear"], [57, 2, 1, "_CPPv4N4idol8Constant23multiply_with_precisionEdj", "idol::Constant::multiply_with_precision"], [57, 4, 1, "_CPPv4N4idol8Constant23multiply_with_precisionEdj", "idol::Constant::multiply_with_precision::t_factor"], [57, 4, 1, "_CPPv4N4idol8Constant23multiply_with_precisionEdj", "idol::Constant::multiply_with_precision::t_n_digits"], [57, 2, 1, "_CPPv4N4idol8Constant38multiply_with_precision_by_power_of_10Ejj", "idol::Constant::multiply_with_precision_by_power_of_10"], [57, 4, 1, "_CPPv4N4idol8Constant38multiply_with_precision_by_power_of_10Ejj", "idol::Constant::multiply_with_precision_by_power_of_10::t_exponent"], [57, 4, 1, "_CPPv4N4idol8Constant38multiply_with_precision_by_power_of_10Ejj", "idol::Constant::multiply_with_precision_by_power_of_10::t_n_digits"], [57, 2, 1, "_CPPv4NK4idol8Constant9numericalEv", "idol::Constant::numerical"], [57, 2, 1, "_CPPv4N4idol8ConstantmLEd", "idol::Constant::operator*="], [57, 4, 1, "_CPPv4N4idol8ConstantmLEd", "idol::Constant::operator*=::t_coefficient"], [57, 2, 1, "_CPPv4N4idol8ConstantpLERK5Param", "idol::Constant::operator+="], [57, 2, 1, "_CPPv4N4idol8ConstantpLERK8Constant", "idol::Constant::operator+="], [57, 2, 1, "_CPPv4N4idol8ConstantpLEd", "idol::Constant::operator+="], [57, 4, 1, "_CPPv4N4idol8ConstantpLERK5Param", "idol::Constant::operator+=::t_term"], [57, 4, 1, "_CPPv4N4idol8ConstantpLERK8Constant", "idol::Constant::operator+=::t_term"], [57, 4, 1, "_CPPv4N4idol8ConstantpLEd", "idol::Constant::operator+=::t_term"], [57, 2, 1, "_CPPv4N4idol8ConstantmIE5Param", "idol::Constant::operator-="], [57, 2, 1, "_CPPv4N4idol8ConstantmIERK8Constant", "idol::Constant::operator-="], [57, 2, 1, "_CPPv4N4idol8ConstantmIEd", "idol::Constant::operator-="], [57, 4, 1, "_CPPv4N4idol8ConstantmIE5Param", "idol::Constant::operator-=::t_term"], [57, 4, 1, "_CPPv4N4idol8ConstantmIERK8Constant", "idol::Constant::operator-=::t_term"], [57, 4, 1, "_CPPv4N4idol8ConstantmIEd", "idol::Constant::operator-=::t_term"], [57, 2, 1, "_CPPv4N4idol8ConstantdVEd", "idol::Constant::operator/="], [57, 4, 1, "_CPPv4N4idol8ConstantdVEd", "idol::Constant::operator/=::t_coefficient"], [57, 2, 1, "_CPPv4N4idol8ConstantaSERK8Constant", "idol::Constant::operator="], [57, 2, 1, "_CPPv4N4idol8ConstantaSERR8Constant", "idol::Constant::operator="], [57, 4, 1, "_CPPv4N4idol8ConstantaSERK8Constant", "idol::Constant::operator=::t_rhs"], [57, 2, 1, "_CPPv4N4idol8Constant9quadraticEv", "idol::Constant::quadratic"], [57, 2, 1, "_CPPv4NK4idol8Constant9quadraticEv", "idol::Constant::quadratic"], [57, 2, 1, "_CPPv4N4idol8Constant5roundEv", "idol::Constant::round"], [57, 2, 1, "_CPPv4N4idol8Constant3setERK5ParamRK5Paramd", "idol::Constant::set"], [57, 2, 1, "_CPPv4N4idol8Constant3setERK5Paramd", "idol::Constant::set"], [57, 4, 1, "_CPPv4N4idol8Constant3setERK5Paramd", "idol::Constant::set::t_param"], [57, 4, 1, "_CPPv4N4idol8Constant3setERK5ParamRK5Paramd", "idol::Constant::set::t_param_1"], [57, 4, 1, "_CPPv4N4idol8Constant3setERK5ParamRK5Paramd", "idol::Constant::set::t_param_2"], [57, 4, 1, "_CPPv4N4idol8Constant3setERK5ParamRK5Paramd", "idol::Constant::set::t_value"], [57, 4, 1, "_CPPv4N4idol8Constant3setERK5Paramd", "idol::Constant::set::t_value"], [57, 2, 1, "_CPPv4N4idol8Constant13set_numericalEd", "idol::Constant::set_numerical"], [57, 4, 1, "_CPPv4N4idol8Constant13set_numericalEd", "idol::Constant::set_numerical::t_constant"], [57, 2, 1, "_CPPv4NK4idol8Constant4sizeEv", "idol::Constant::size"], [72, 5, 1, "_CPPv4N4idol7VarType10ContinuousE", "idol::Continuous"], [58, 1, 1, "_CPPv4N4idol3CtrE", "idol::Ctr"], [58, 2, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRK8ConstantNSt6stringE", "idol::Ctr::Ctr"], [58, 2, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRR8ConstantNSt6stringE", "idol::Ctr::Ctr"], [58, 2, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRK7TempCtrNSt6stringE", "idol::Ctr::Ctr"], [58, 2, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRR7TempCtrNSt6stringE", "idol::Ctr::Ctr"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRK8ConstantNSt6stringE", "idol::Ctr::Ctr::t_constant"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRR8ConstantNSt6stringE", "idol::Ctr::Ctr::t_constant"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRK8ConstantNSt6stringE", "idol::Ctr::Ctr::t_env"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRR8ConstantNSt6stringE", "idol::Ctr::Ctr::t_env"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRK7TempCtrNSt6stringE", "idol::Ctr::Ctr::t_env"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRR7TempCtrNSt6stringE", "idol::Ctr::Ctr::t_env"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRK8ConstantNSt6stringE", "idol::Ctr::Ctr::t_name"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRR8ConstantNSt6stringE", "idol::Ctr::Ctr::t_name"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRK7TempCtrNSt6stringE", "idol::Ctr::Ctr::t_name"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRR7TempCtrNSt6stringE", "idol::Ctr::Ctr::t_name"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRK7TempCtrNSt6stringE", "idol::Ctr::Ctr::t_temp_ctr"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3EnvRR7TempCtrNSt6stringE", "idol::Ctr::Ctr::t_temp_ctr"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRK8ConstantNSt6stringE", "idol::Ctr::Ctr::t_type"], [58, 4, 1, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRR8ConstantNSt6stringE", "idol::Ctr::Ctr::t_type"], [58, 2, 1, "_CPPv4NK4idol3Ctr3getERK10AnnotationI3Ctr6ValueTE", "idol::Ctr::get"], [58, 4, 1, "_CPPv4NK4idol3Ctr3getERK10AnnotationI3Ctr6ValueTE", "idol::Ctr::get::t_annotation"], [58, 2, 1, "_CPPv4NK4idol3Ctr2idEv", "idol::Ctr::id"], [58, 2, 1, "_CPPv4NK4idol3Ctr5is_inERK5Model", "idol::Ctr::is_in"], [58, 4, 1, "_CPPv4NK4idol3Ctr5is_inERK5Model", "idol::Ctr::is_in::t_model"], [58, 2, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector"], [58, 3, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::I"], [58, 3, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::N"], [58, 4, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::t_constant"], [58, 4, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::t_dim"], [58, 4, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::t_env"], [58, 4, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::t_name"], [58, 4, 1, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Ctr::make_vector::t_type"], [58, 2, 1, "_CPPv4NK4idol3Ctr4nameEv", "idol::Ctr::name"], [58, 2, 1, "_CPPv4NK4idol3Ctr3setERK10AnnotationI3Ctr6ValueTEDpRR5ArgsT", "idol::Ctr::set"], [58, 4, 1, "_CPPv4NK4idol3Ctr3setERK10AnnotationI3Ctr6ValueTEDpRR5ArgsT", "idol::Ctr::set::t_annotation"], [58, 4, 1, "_CPPv4NK4idol3Ctr3setERK10AnnotationI3Ctr6ValueTEDpRR5ArgsT", "idol::Ctr::set::t_args"], [59, 6, 1, "_CPPv4N4idol7CtrTypeE", "idol::CtrType"], [59, 5, 1, "_CPPv4N4idol7CtrType5EqualE", "idol::CtrType::Equal"], [59, 5, 1, "_CPPv4N4idol7CtrType14GreaterOrEqualE", "idol::CtrType::GreaterOrEqual"], [59, 5, 1, "_CPPv4N4idol7CtrType11LessOrEqualE", "idol::CtrType::LessOrEqual"], [22, 1, 1, "_CPPv4I0EN4idol4Cuts13KnapsackCoverE", "idol::Cuts::KnapsackCover"], [22, 3, 1, "_CPPv4I0EN4idol4Cuts13KnapsackCoverE", "idol::Cuts::KnapsackCover::NodeInfoT"], [22, 1, 1, "_CPPv4N4idol4Cuts13KnapsackCover8StrategyE", "idol::Cuts::KnapsackCover::Strategy"], [22, 2, 1, "_CPPv4N4idol4Cuts13KnapsackCover8Strategy8StrategyEbbjd", "idol::Cuts::KnapsackCover::Strategy::Strategy"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover8Strategy8StrategyEbbjd", "idol::Cuts::KnapsackCover::Strategy::Strategy::t_apply_to_tree_nodes"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover8Strategy8StrategyEbbjd", "idol::Cuts::KnapsackCover::Strategy::Strategy::t_max_cuts_factor"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover8Strategy8StrategyEbbjd", "idol::Cuts::KnapsackCover::Strategy::Strategy::t_max_pass_root_node"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover8Strategy8StrategyEbbjd", "idol::Cuts::KnapsackCover::Strategy::Strategy::t_use_lifting"], [22, 2, 1, "_CPPv4NK4idol4Cuts13KnapsackCover5cloneEv", "idol::Cuts::KnapsackCover::clone"], [22, 2, 1, "_CPPv4N4idol4Cuts13KnapsackCoverclEv", "idol::Cuts::KnapsackCover::operator()"], [22, 2, 1, "_CPPv4N4idol4Cuts13KnapsackCover12with_liftingEb", "idol::Cuts::KnapsackCover::with_lifting"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover12with_liftingEb", "idol::Cuts::KnapsackCover::with_lifting::t_value"], [22, 2, 1, "_CPPv4N4idol4Cuts13KnapsackCover20with_max_cuts_factorEd", "idol::Cuts::KnapsackCover::with_max_cuts_factor"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover20with_max_cuts_factorEd", "idol::Cuts::KnapsackCover::with_max_cuts_factor::t_value"], [22, 2, 1, "_CPPv4N4idol4Cuts13KnapsackCover23with_max_pass_root_nodeEj", "idol::Cuts::KnapsackCover::with_max_pass_root_node"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover23with_max_pass_root_nodeEj", "idol::Cuts::KnapsackCover::with_max_pass_root_node::t_value"], [22, 2, 1, "_CPPv4N4idol4Cuts13KnapsackCover19with_tree_node_cutsEb", "idol::Cuts::KnapsackCover::with_tree_node_cuts"], [22, 4, 1, "_CPPv4N4idol4Cuts13KnapsackCover19with_tree_node_cutsEb", "idol::Cuts::KnapsackCover::with_tree_node_cuts::t_value"], [46, 1, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCostsE", "idol::DantzigWolfe::ArtificialCosts"], [46, 1, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8StrategyE", "idol::DantzigWolfe::ArtificialCosts::Strategy"], [46, 2, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy8StrategyEddj", "idol::DantzigWolfe::ArtificialCosts::Strategy::Strategy"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy8StrategyEddj", "idol::DantzigWolfe::ArtificialCosts::Strategy::Strategy::t_initial_costs"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy8StrategyEddj", "idol::DantzigWolfe::ArtificialCosts::Strategy::Strategy::t_max_updates_before_phase_I"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy8StrategyEddj", "idol::DantzigWolfe::ArtificialCosts::Strategy::Strategy::t_update_factor"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy10best_boundEv", "idol::DantzigWolfe::ArtificialCosts::Strategy::best_bound"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy8best_objEv", "idol::DantzigWolfe::ArtificialCosts::Strategy::best_obj"], [46, 2, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy7executeERN10Optimizers25DantzigWolfeDecompositionE", "idol::DantzigWolfe::ArtificialCosts::Strategy::execute"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy7executeERN10Optimizers25DantzigWolfeDecompositionE", "idol::DantzigWolfe::ArtificialCosts::Strategy::execute::t_parent"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy15primal_solutionEv", "idol::DantzigWolfe::ArtificialCosts::Strategy::primal_solution"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy6reasonEv", "idol::DantzigWolfe::ArtificialCosts::Strategy::reason"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy6statusEv", "idol::DantzigWolfe::ArtificialCosts::Strategy::status"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts5cloneEv", "idol::DantzigWolfe::ArtificialCosts::clone"], [46, 2, 1, "_CPPv4NK4idol12DantzigWolfe15ArtificialCostsclEv", "idol::DantzigWolfe::ArtificialCosts::operator()"], [46, 2, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts18with_initial_costsEd", "idol::DantzigWolfe::ArtificialCosts::with_initial_costs"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts18with_initial_costsEd", "idol::DantzigWolfe::ArtificialCosts::with_initial_costs::t_value"], [46, 2, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts31with_max_updates_before_phase_IEj", "idol::DantzigWolfe::ArtificialCosts::with_max_updates_before_phase_I"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts31with_max_updates_before_phase_IEj", "idol::DantzigWolfe::ArtificialCosts::with_max_updates_before_phase_I::t_value"], [46, 2, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts18with_update_factorEd", "idol::DantzigWolfe::ArtificialCosts::with_update_factor"], [46, 4, 1, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts18with_update_factorEd", "idol::DantzigWolfe::ArtificialCosts::with_update_factor::t_value"], [48, 1, 1, "_CPPv4N4idol12DantzigWolfe13FarkasPricingE", "idol::DantzigWolfe::FarkasPricing"], [48, 1, 1, "_CPPv4N4idol12DantzigWolfe13FarkasPricing8StrategyE", "idol::DantzigWolfe::FarkasPricing::Strategy"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy10best_boundEv", "idol::DantzigWolfe::FarkasPricing::Strategy::best_bound"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy8best_objEv", "idol::DantzigWolfe::FarkasPricing::Strategy::best_obj"], [48, 2, 1, "_CPPv4N4idol12DantzigWolfe13FarkasPricing8Strategy7executeERN10Optimizers25DantzigWolfeDecompositionE", "idol::DantzigWolfe::FarkasPricing::Strategy::execute"], [48, 4, 1, "_CPPv4N4idol12DantzigWolfe13FarkasPricing8Strategy7executeERN10Optimizers25DantzigWolfeDecompositionE", "idol::DantzigWolfe::FarkasPricing::Strategy::execute::t_parent"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy15primal_solutionEv", "idol::DantzigWolfe::FarkasPricing::Strategy::primal_solution"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy6reasonEv", "idol::DantzigWolfe::FarkasPricing::Strategy::reason"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy6statusEv", "idol::DantzigWolfe::FarkasPricing::Strategy::status"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing5cloneEv", "idol::DantzigWolfe::FarkasPricing::clone"], [48, 2, 1, "_CPPv4NK4idol12DantzigWolfe13FarkasPricingclEv", "idol::DantzigWolfe::FarkasPricing::operator()"], [52, 1, 1, "_CPPv4N4idol12DantzigWolfe5NeameE", "idol::DantzigWolfe::Neame"], [52, 2, 1, "_CPPv4N4idol12DantzigWolfe5Neame5NeameEd", "idol::DantzigWolfe::Neame::Neame"], [52, 4, 1, "_CPPv4N4idol12DantzigWolfe5Neame5NeameEd", "idol::DantzigWolfe::Neame::Neame::t_initial_factor"], [52, 1, 1, "_CPPv4N4idol12DantzigWolfe5Neame8StrategyE", "idol::DantzigWolfe::Neame::Strategy"], [52, 2, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy8StrategyEd", "idol::DantzigWolfe::Neame::Strategy::Strategy"], [52, 4, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy8StrategyEd", "idol::DantzigWolfe::Neame::Strategy::Strategy::t_initial_factor"], [52, 2, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy30compute_smoothed_dual_solutionERKN8Solution4DualE", "idol::DantzigWolfe::Neame::Strategy::compute_smoothed_dual_solution"], [52, 4, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy30compute_smoothed_dual_solutionERKN8Solution4DualE", "idol::DantzigWolfe::Neame::Strategy::compute_smoothed_dual_solution::t_master_dual"], [52, 2, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy10initializeEv", "idol::DantzigWolfe::Neame::Strategy::initialize"], [52, 2, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy23update_stability_centerERKN8Solution4DualE", "idol::DantzigWolfe::Neame::Strategy::update_stability_center"], [52, 4, 1, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy23update_stability_centerERKN8Solution4DualE", "idol::DantzigWolfe::Neame::Strategy::update_stability_center::t_master_dual"], [52, 2, 1, "_CPPv4NK4idol12DantzigWolfe5Neame5cloneEv", "idol::DantzigWolfe::Neame::clone"], [52, 2, 1, "_CPPv4NK4idol12DantzigWolfe5NeameclEv", "idol::DantzigWolfe::Neame::operator()"], [53, 1, 1, "_CPPv4N4idol12DantzigWolfe7WentgesE", "idol::DantzigWolfe::Wentges"], [53, 1, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8StrategyE", "idol::DantzigWolfe::Wentges::Strategy"], [53, 2, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy8StrategyEd", "idol::DantzigWolfe::Wentges::Strategy::Strategy"], [53, 4, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy8StrategyEd", "idol::DantzigWolfe::Wentges::Strategy::Strategy::t_initial_factor"], [53, 2, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy30compute_smoothed_dual_solutionERKN8Solution4DualE", "idol::DantzigWolfe::Wentges::Strategy::compute_smoothed_dual_solution"], [53, 4, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy30compute_smoothed_dual_solutionERKN8Solution4DualE", "idol::DantzigWolfe::Wentges::Strategy::compute_smoothed_dual_solution::t_master_dual"], [53, 2, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy10initializeEv", "idol::DantzigWolfe::Wentges::Strategy::initialize"], [53, 2, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy23update_stability_centerERKN8Solution4DualE", "idol::DantzigWolfe::Wentges::Strategy::update_stability_center"], [53, 4, 1, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy23update_stability_centerERKN8Solution4DualE", "idol::DantzigWolfe::Wentges::Strategy::update_stability_center::t_master_dual"], [53, 2, 1, "_CPPv4N4idol12DantzigWolfe7Wentges7WentgesEd", "idol::DantzigWolfe::Wentges::Wentges"], [53, 4, 1, "_CPPv4N4idol12DantzigWolfe7Wentges7WentgesEd", "idol::DantzigWolfe::Wentges::Wentges::t_initial_factor"], [53, 2, 1, "_CPPv4NK4idol12DantzigWolfe7Wentges5cloneEv", "idol::DantzigWolfe::Wentges::clone"], [53, 2, 1, "_CPPv4NK4idol12DantzigWolfe7WentgesclEv", "idol::DantzigWolfe::Wentges::operator()"], [47, 1, 1, "_CPPv4N4idol25DantzigWolfeDecompositionE", "idol::DantzigWolfeDecomposition"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE10AnnotationI3VarjE", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK25DantzigWolfeDecomposition", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE10AnnotationI3VarjE", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_ctr_decomposition"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_decomposition"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK25DantzigWolfeDecomposition", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_src"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE10AnnotationI3VarjE", "idol::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_var_decomposition"], [47, 2, 1, "_CPPv4I0EN4idol25DantzigWolfeDecomposition2asER1Tv", "idol::DantzigWolfeDecomposition::as"], [47, 2, 1, "_CPPv4I0ENK4idol25DantzigWolfeDecomposition2asERK1Tv", "idol::DantzigWolfeDecomposition::as"], [47, 3, 1, "_CPPv4I0EN4idol25DantzigWolfeDecomposition2asER1Tv", "idol::DantzigWolfeDecomposition::as::T"], [47, 3, 1, "_CPPv4I0ENK4idol25DantzigWolfeDecomposition2asERK1Tv", "idol::DantzigWolfeDecomposition::as::T"], [47, 2, 1, "_CPPv4NK4idol25DantzigWolfeDecomposition5cloneEv", "idol::DantzigWolfeDecomposition::clone"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEERKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional::t_conditional_value"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEERKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional::t_conditional_value"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEERKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional::t_else"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional::t_if"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEERKNSt8functionIFvR25DantzigWolfeDecompositionEEE", "idol::DantzigWolfeDecomposition::conditional::t_if"], [47, 2, 1, "_CPPv4NK4idol25DantzigWolfeDecomposition20get_sub_problem_specEj", "idol::DantzigWolfeDecomposition::get_sub_problem_spec"], [47, 4, 1, "_CPPv4NK4idol25DantzigWolfeDecomposition20get_sub_problem_specEj", "idol::DantzigWolfeDecomposition::get_sub_problem_spec::t_id"], [47, 2, 1, "_CPPv4I0ENK4idol25DantzigWolfeDecomposition2isEbv", "idol::DantzigWolfeDecomposition::is"], [47, 3, 1, "_CPPv4I0ENK4idol25DantzigWolfeDecomposition2isEbv", "idol::DantzigWolfeDecomposition::is::T"], [47, 2, 1, "_CPPv4NK4idol25DantzigWolfeDecompositionclERK5Model", "idol::DantzigWolfeDecomposition::operator()"], [47, 4, 1, "_CPPv4NK4idol25DantzigWolfeDecompositionclERK5Model", "idol::DantzigWolfeDecomposition::operator()::t_model"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition27with_absolute_gap_toleranceEd", "idol::DantzigWolfeDecomposition::with_absolute_gap_tolerance"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition27with_absolute_gap_toleranceEd", "idol::DantzigWolfeDecomposition::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition20with_best_bound_stopEd", "idol::DantzigWolfeDecomposition::with_best_bound_stop"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition20with_best_bound_stopEd", "idol::DantzigWolfeDecomposition::with_best_bound_stop::t_best_bound_stop"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition18with_best_obj_stopEd", "idol::DantzigWolfeDecomposition::with_best_obj_stop"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition18with_best_obj_stopEd", "idol::DantzigWolfeDecomposition::with_best_obj_stop::t_user_best_obj"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition29with_default_sub_problem_specEN12DantzigWolfe10SubProblemE", "idol::DantzigWolfeDecomposition::with_default_sub_problem_spec"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition29with_default_sub_problem_specEN12DantzigWolfe10SubProblemE", "idol::DantzigWolfeDecomposition::with_default_sub_problem_spec::t_sub_problem"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition39with_dual_price_smoothing_stabilizationERKN12DantzigWolfe31DualPriceSmoothingStabilizationE", "idol::DantzigWolfeDecomposition::with_dual_price_smoothing_stabilization"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition39with_dual_price_smoothing_stabilizationERKN12DantzigWolfe31DualPriceSmoothingStabilizationE", "idol::DantzigWolfeDecomposition::with_dual_price_smoothing_stabilization::t_stabilization"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition19with_hard_branchingEb", "idol::DantzigWolfeDecomposition::with_hard_branching"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition19with_hard_branchingEb", "idol::DantzigWolfeDecomposition::with_hard_branching::t_value"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition27with_infeasibility_strategyERKN12DantzigWolfe28InfeasibilityStrategyFactoryE", "idol::DantzigWolfeDecomposition::with_infeasibility_strategy"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition27with_infeasibility_strategyERKN12DantzigWolfe28InfeasibilityStrategyFactoryE", "idol::DantzigWolfeDecomposition::with_infeasibility_strategy::t_strategy"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition31with_infeasible_columns_removalEb", "idol::DantzigWolfeDecomposition::with_infeasible_columns_removal"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition31with_infeasible_columns_removalEb", "idol::DantzigWolfeDecomposition::with_infeasible_columns_removal::t_value"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition33with_infeasible_or_unbounded_infoEb", "idol::DantzigWolfeDecomposition::with_infeasible_or_unbounded_info"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition33with_infeasible_or_unbounded_infoEb", "idol::DantzigWolfeDecomposition::with_infeasible_or_unbounded_info::t_value"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition20with_iteration_limitEj", "idol::DantzigWolfeDecomposition::with_iteration_limit"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition20with_iteration_limitEj", "idol::DantzigWolfeDecomposition::with_iteration_limit::t_iteration_count_limit"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11with_loggerERKN4Logs12DantzigWolfe7FactoryE", "idol::DantzigWolfeDecomposition::with_logger"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition11with_loggerERKN4Logs12DantzigWolfe7FactoryE", "idol::DantzigWolfeDecomposition::with_logger::t_logger"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition9with_logsEb", "idol::DantzigWolfeDecomposition::with_logs"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition9with_logsEb", "idol::DantzigWolfeDecomposition::with_logs::t_value"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition21with_master_optimizerERK16OptimizerFactory", "idol::DantzigWolfeDecomposition::with_master_optimizer"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition21with_master_optimizerERK16OptimizerFactory", "idol::DantzigWolfeDecomposition::with_master_optimizer::t_optimizer_factory"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition30with_max_parallel_sub_problemsEj", "idol::DantzigWolfeDecomposition::with_max_parallel_sub_problems"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition30with_max_parallel_sub_problemsEj", "idol::DantzigWolfeDecomposition::with_max_parallel_sub_problems::t_n_sub_problems"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition13with_presolveEb", "idol::DantzigWolfeDecomposition::with_presolve"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition13with_presolveEb", "idol::DantzigWolfeDecomposition::with_presolve::t_value"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition27with_relative_gap_toleranceEd", "idol::DantzigWolfeDecomposition::with_relative_gap_tolerance"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition27with_relative_gap_toleranceEd", "idol::DantzigWolfeDecomposition::with_relative_gap_tolerance::t_relative_gap_tolerance"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition21with_sub_problem_specEjN12DantzigWolfe10SubProblemE", "idol::DantzigWolfeDecomposition::with_sub_problem_spec"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition21with_sub_problem_specEjN12DantzigWolfe10SubProblemE", "idol::DantzigWolfeDecomposition::with_sub_problem_spec::t_id"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition21with_sub_problem_specEjN12DantzigWolfe10SubProblemE", "idol::DantzigWolfeDecomposition::with_sub_problem_spec::t_sub_problem"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition17with_thread_limitEj", "idol::DantzigWolfeDecomposition::with_thread_limit"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition17with_thread_limitEj", "idol::DantzigWolfeDecomposition::with_thread_limit::t_max_n_threads"], [47, 2, 1, "_CPPv4N4idol25DantzigWolfeDecomposition15with_time_limitEd", "idol::DantzigWolfeDecomposition::with_time_limit"], [47, 4, 1, "_CPPv4N4idol25DantzigWolfeDecomposition15with_time_limitEd", "idol::DantzigWolfeDecomposition::with_time_limit::t_time_limit"], [32, 1, 1, "_CPPv4N4idol10DepthFirstE", "idol::DepthFirst"], [32, 1, 1, "_CPPv4I0EN4idol10DepthFirst8StrategyE", "idol::DepthFirst::Strategy"], [32, 3, 1, "_CPPv4I0EN4idol10DepthFirst8StrategyE", "idol::DepthFirst::Strategy::NodeT"], [32, 2, 1, "_CPPv4N4idol10DepthFirst8Strategy8StrategyERK10DepthFirst", "idol::DepthFirst::Strategy::Strategy"], [32, 4, 1, "_CPPv4N4idol10DepthFirst8Strategy8StrategyERK10DepthFirst", "idol::DepthFirst::Strategy::Strategy::t_parent"], [32, 2, 1, "_CPPv4NK4idol10DepthFirst8Strategy5cloneEv", "idol::DepthFirst::Strategy::clone"], [32, 2, 1, "_CPPv4NK4idol10DepthFirst8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::DepthFirst::Strategy::operator()"], [32, 4, 1, "_CPPv4NK4idol10DepthFirst8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::DepthFirst::Strategy::operator()::t_parent"], [60, 1, 1, "_CPPv4N4idol3EnvE", "idol::Env"], [60, 2, 1, "_CPPv4N4idol3Env3EnvEv", "idol::Env::Env"], [60, 2, 1, "_CPPv4I0ENK4idol3EnvixERKDaRK1T", "idol::Env::operator[]"], [60, 3, 1, "_CPPv4I0ENK4idol3EnvixERKDaRK1T", "idol::Env::operator[]::T"], [60, 4, 1, "_CPPv4I0ENK4idol3EnvixERKDaRK1T", "idol::Env::operator[]::t_object"], [59, 5, 1, "_CPPv4N4idol7CtrType5EqualE", "idol::Equal"], [61, 1, 1, "_CPPv4I00EN4idol4ExprE", "idol::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK4Expr", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK4Key1", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK5Param", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1E", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1ERK8QuadExprI4Key14Key2ERK8Constant", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK8Constant", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERK8QuadExprI4Key1E", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERR4Expr", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1E", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1ERR8QuadExprI4Key14Key2ERR8Constant", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERR8Constant", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprERR8QuadExprI4Key1E", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprEd", "idol::Expr::Expr"], [61, 2, 1, "_CPPv4N4idol4Expr4ExprEv", "idol::Expr::Expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1ERK8QuadExprI4Key14Key2ERK8Constant", "idol::Expr::Expr::t_constant"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1ERR8QuadExprI4Key14Key2ERR8Constant", "idol::Expr::Expr::t_constant"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1E", "idol::Expr::Expr::t_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK8Constant", "idol::Expr::Expr::t_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK8QuadExprI4Key1E", "idol::Expr::Expr::t_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1E", "idol::Expr::Expr::t_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERR8Constant", "idol::Expr::Expr::t_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERR8QuadExprI4Key1E", "idol::Expr::Expr::t_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1ERK8QuadExprI4Key14Key2ERK8Constant", "idol::Expr::Expr::t_lin_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1ERR8QuadExprI4Key14Key2ERR8Constant", "idol::Expr::Expr::t_lin_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprEd", "idol::Expr::Expr::t_num"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK5Param", "idol::Expr::Expr::t_param"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1ERK8QuadExprI4Key14Key2ERK8Constant", "idol::Expr::Expr::t_quad_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1ERR8QuadExprI4Key14Key2ERR8Constant", "idol::Expr::Expr::t_quad_expr"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK4Expr", "idol::Expr::Expr::t_src"], [61, 4, 1, "_CPPv4N4idol4Expr4ExprERK4Key1", "idol::Expr::Expr::t_var"], [61, 3, 1, "_CPPv4I00EN4idol4ExprE", "idol::Expr::Key1"], [61, 3, 1, "_CPPv4I00EN4idol4ExprE", "idol::Expr::Key2"], [61, 2, 1, "_CPPv4N4idol4Expr5clearEv", "idol::Expr::clear"], [61, 2, 1, "_CPPv4N4idol4Expr8constantEv", "idol::Expr::constant"], [61, 2, 1, "_CPPv4NK4idol4Expr8constantEv", "idol::Expr::constant"], [61, 2, 1, "_CPPv4NK4idol4Expr3fixERKN8Solution6PrimalE", "idol::Expr::fix"], [61, 4, 1, "_CPPv4NK4idol4Expr3fixERKN8Solution6PrimalE", "idol::Expr::fix::t_primals"], [61, 2, 1, "_CPPv4NK4idol4Expr3gcdEv", "idol::Expr::gcd"], [61, 2, 1, "_CPPv4NK4idol4Expr7is_zeroEv", "idol::Expr::is_zero"], [61, 2, 1, "_CPPv4N4idol4Expr6linearEv", "idol::Expr::linear"], [61, 2, 1, "_CPPv4NK4idol4Expr6linearEv", "idol::Expr::linear"], [61, 2, 1, "_CPPv4N4idol4Expr23multiply_with_precisionEdj", "idol::Expr::multiply_with_precision"], [61, 4, 1, "_CPPv4N4idol4Expr23multiply_with_precisionEdj", "idol::Expr::multiply_with_precision::t_factor"], [61, 4, 1, "_CPPv4N4idol4Expr23multiply_with_precisionEdj", "idol::Expr::multiply_with_precision::t_n_digits"], [61, 2, 1, "_CPPv4N4idol4Expr38multiply_with_precision_by_power_of_10Ejj", "idol::Expr::multiply_with_precision_by_power_of_10"], [61, 4, 1, "_CPPv4N4idol4Expr38multiply_with_precision_by_power_of_10Ejj", "idol::Expr::multiply_with_precision_by_power_of_10::t_exponent"], [61, 4, 1, "_CPPv4N4idol4Expr38multiply_with_precision_by_power_of_10Ejj", "idol::Expr::multiply_with_precision_by_power_of_10::t_n_digits"], [61, 2, 1, "_CPPv4N4idol4ExprmLEd", "idol::Expr::operator*="], [61, 4, 1, "_CPPv4N4idol4ExprmLEd", "idol::Expr::operator*=::t_rhs"], [61, 2, 1, "_CPPv4N4idol4ExprpLERK4ExprIN4idol3VarEN4idol3VarEE", "idol::Expr::operator+="], [61, 4, 1, "_CPPv4N4idol4ExprpLERK4ExprIN4idol3VarEN4idol3VarEE", "idol::Expr::operator+=::t_rhs"], [61, 2, 1, "_CPPv4N4idol4ExprmIERK4ExprIN4idol3VarEN4idol3VarEE", "idol::Expr::operator-="], [61, 4, 1, "_CPPv4N4idol4ExprmIERK4ExprIN4idol3VarEN4idol3VarEE", "idol::Expr::operator-=::t_rhs"], [61, 2, 1, "_CPPv4N4idol4ExprdVEd", "idol::Expr::operator/="], [61, 4, 1, "_CPPv4N4idol4ExprdVEd", "idol::Expr::operator/=::t_rhs"], [61, 2, 1, "_CPPv4N4idol4ExpraSERK4Expr", "idol::Expr::operator="], [61, 2, 1, "_CPPv4N4idol4ExpraSERR4Expr", "idol::Expr::operator="], [61, 4, 1, "_CPPv4N4idol4ExpraSERK4Expr", "idol::Expr::operator=::t_rhs"], [61, 2, 1, "_CPPv4N4idol4Expr9quadraticEv", "idol::Expr::quadratic"], [61, 2, 1, "_CPPv4NK4idol4Expr9quadraticEv", "idol::Expr::quadratic"], [61, 2, 1, "_CPPv4N4idol4Expr5roundEv", "idol::Expr::round"], [61, 2, 1, "_CPPv4N4idol4Expr17scale_to_integersEj", "idol::Expr::scale_to_integers"], [61, 4, 1, "_CPPv4N4idol4Expr17scale_to_integersEj", "idol::Expr::scale_to_integers::t_n_significant_digits"], [35, 1, 1, "_CPPv4N4idol20FirstInfeasibleFoundE", "idol::FirstInfeasibleFound"], [35, 2, 1, "_CPPv4I0EN4idol20FirstInfeasibleFound20FirstInfeasibleFoundE9IteratorT9IteratorT", "idol::FirstInfeasibleFound::FirstInfeasibleFound"], [35, 2, 1, "_CPPv4N4idol20FirstInfeasibleFound20FirstInfeasibleFoundEv", "idol::FirstInfeasibleFound::FirstInfeasibleFound"], [35, 3, 1, "_CPPv4I0EN4idol20FirstInfeasibleFound20FirstInfeasibleFoundE9IteratorT9IteratorT", "idol::FirstInfeasibleFound::FirstInfeasibleFound::IteratorT"], [35, 4, 1, "_CPPv4I0EN4idol20FirstInfeasibleFound20FirstInfeasibleFoundE9IteratorT9IteratorT", "idol::FirstInfeasibleFound::FirstInfeasibleFound::t_begin"], [35, 4, 1, "_CPPv4I0EN4idol20FirstInfeasibleFound20FirstInfeasibleFoundE9IteratorT9IteratorT", "idol::FirstInfeasibleFound::FirstInfeasibleFound::t_end"], [35, 1, 1, "_CPPv4I0EN4idol20FirstInfeasibleFound8StrategyE", "idol::FirstInfeasibleFound::Strategy"], [35, 3, 1, "_CPPv4I0EN4idol20FirstInfeasibleFound8StrategyE", "idol::FirstInfeasibleFound::Strategy::NodeInfoT"], [35, 2, 1, "_CPPv4N4idol20FirstInfeasibleFound8Strategy8StrategyERK20FirstInfeasibleFound", "idol::FirstInfeasibleFound::Strategy::Strategy"], [35, 2, 1, "_CPPv4N4idol20FirstInfeasibleFound8Strategy8StrategyEv", "idol::FirstInfeasibleFound::Strategy::Strategy"], [35, 4, 1, "_CPPv4N4idol20FirstInfeasibleFound8Strategy8StrategyERK20FirstInfeasibleFound", "idol::FirstInfeasibleFound::Strategy::Strategy::t_parent"], [35, 2, 1, "_CPPv4NK4idol20FirstInfeasibleFound8Strategy5cloneEv", "idol::FirstInfeasibleFound::Strategy::clone"], [35, 2, 1, "_CPPv4NK4idol20FirstInfeasibleFound8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::FirstInfeasibleFound::Strategy::operator()"], [35, 2, 1, "_CPPv4NK4idol20FirstInfeasibleFound8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::FirstInfeasibleFound::Strategy::operator()"], [35, 4, 1, "_CPPv4NK4idol20FirstInfeasibleFound8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::FirstInfeasibleFound::Strategy::operator()::t_parent"], [35, 4, 1, "_CPPv4NK4idol20FirstInfeasibleFound8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::FirstInfeasibleFound::Strategy::operator()::t_parent"], [77, 1, 1, "_CPPv4N4idol4GLPKE", "idol::GLPK"], [77, 2, 1, "_CPPv4N4idol4GLPK20ContinuousRelaxationEv", "idol::GLPK::ContinuousRelaxation"], [77, 2, 1, "_CPPv4N4idol4GLPK4GLPKERK4GLPK", "idol::GLPK::GLPK"], [77, 2, 1, "_CPPv4N4idol4GLPK4GLPKERR4GLPK", "idol::GLPK::GLPK"], [77, 2, 1, "_CPPv4N4idol4GLPK4GLPKEv", "idol::GLPK::GLPK"], [77, 2, 1, "_CPPv4I0EN4idol4GLPK2asER1Tv", "idol::GLPK::as"], [77, 2, 1, "_CPPv4I0ENK4idol4GLPK2asERK1Tv", "idol::GLPK::as"], [77, 3, 1, "_CPPv4I0EN4idol4GLPK2asER1Tv", "idol::GLPK::as::T"], [77, 3, 1, "_CPPv4I0ENK4idol4GLPK2asERK1Tv", "idol::GLPK::as::T"], [77, 2, 1, "_CPPv4NK4idol4GLPK5cloneEv", "idol::GLPK::clone"], [77, 2, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional"], [77, 2, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEERKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional"], [77, 4, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional::t_conditional_value"], [77, 4, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEERKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional::t_conditional_value"], [77, 4, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEERKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional::t_else"], [77, 4, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional::t_if"], [77, 4, 1, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEERKNSt8functionIFvR4GLPKEEE", "idol::GLPK::conditional::t_if"], [77, 2, 1, "_CPPv4I0ENK4idol4GLPK2isEbv", "idol::GLPK::is"], [77, 3, 1, "_CPPv4I0ENK4idol4GLPK2isEbv", "idol::GLPK::is::T"], [77, 2, 1, "_CPPv4NK4idol4GLPKclERK5Model", "idol::GLPK::operator()"], [77, 4, 1, "_CPPv4NK4idol4GLPKclERK5Model", "idol::GLPK::operator()::t_model"], [77, 2, 1, "_CPPv4N4idol4GLPKaSERK4GLPK", "idol::GLPK::operator="], [77, 2, 1, "_CPPv4N4idol4GLPKaSERR4GLPK", "idol::GLPK::operator="], [77, 2, 1, "_CPPv4N4idol4GLPK14read_from_fileER3EnvRKNSt6stringE", "idol::GLPK::read_from_file"], [77, 4, 1, "_CPPv4N4idol4GLPK14read_from_fileER3EnvRKNSt6stringE", "idol::GLPK::read_from_file::t_env"], [77, 4, 1, "_CPPv4N4idol4GLPK14read_from_fileER3EnvRKNSt6stringE", "idol::GLPK::read_from_file::t_filename"], [77, 2, 1, "_CPPv4N4idol4GLPK27with_absolute_gap_toleranceEd", "idol::GLPK::with_absolute_gap_tolerance"], [77, 4, 1, "_CPPv4N4idol4GLPK27with_absolute_gap_toleranceEd", "idol::GLPK::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [77, 2, 1, "_CPPv4N4idol4GLPK20with_best_bound_stopEd", "idol::GLPK::with_best_bound_stop"], [77, 4, 1, "_CPPv4N4idol4GLPK20with_best_bound_stopEd", "idol::GLPK::with_best_bound_stop::t_best_bound_stop"], [77, 2, 1, "_CPPv4N4idol4GLPK18with_best_obj_stopEd", "idol::GLPK::with_best_obj_stop"], [77, 4, 1, "_CPPv4N4idol4GLPK18with_best_obj_stopEd", "idol::GLPK::with_best_obj_stop::t_user_best_obj"], [77, 2, 1, "_CPPv4N4idol4GLPK33with_infeasible_or_unbounded_infoEb", "idol::GLPK::with_infeasible_or_unbounded_info"], [77, 4, 1, "_CPPv4N4idol4GLPK33with_infeasible_or_unbounded_infoEb", "idol::GLPK::with_infeasible_or_unbounded_info::t_value"], [77, 2, 1, "_CPPv4N4idol4GLPK20with_iteration_limitEj", "idol::GLPK::with_iteration_limit"], [77, 4, 1, "_CPPv4N4idol4GLPK20with_iteration_limitEj", "idol::GLPK::with_iteration_limit::t_iteration_count_limit"], [77, 2, 1, "_CPPv4N4idol4GLPK9with_logsEb", "idol::GLPK::with_logs"], [77, 4, 1, "_CPPv4N4idol4GLPK9with_logsEb", "idol::GLPK::with_logs::t_value"], [77, 2, 1, "_CPPv4N4idol4GLPK13with_presolveEb", "idol::GLPK::with_presolve"], [77, 4, 1, "_CPPv4N4idol4GLPK13with_presolveEb", "idol::GLPK::with_presolve::t_value"], [77, 2, 1, "_CPPv4N4idol4GLPK27with_relative_gap_toleranceEd", "idol::GLPK::with_relative_gap_tolerance"], [77, 4, 1, "_CPPv4N4idol4GLPK27with_relative_gap_toleranceEd", "idol::GLPK::with_relative_gap_tolerance::t_relative_gap_tolerance"], [77, 2, 1, "_CPPv4N4idol4GLPK17with_thread_limitEj", "idol::GLPK::with_thread_limit"], [77, 4, 1, "_CPPv4N4idol4GLPK17with_thread_limitEj", "idol::GLPK::with_thread_limit::t_max_n_threads"], [77, 2, 1, "_CPPv4N4idol4GLPK15with_time_limitEd", "idol::GLPK::with_time_limit"], [77, 4, 1, "_CPPv4N4idol4GLPK15with_time_limitEd", "idol::GLPK::with_time_limit::t_time_limit"], [59, 5, 1, "_CPPv4N4idol7CtrType14GreaterOrEqualE", "idol::GreaterOrEqual"], [78, 1, 1, "_CPPv4N4idol6GurobiE", "idol::Gurobi"], [78, 2, 1, "_CPPv4N4idol6Gurobi20ContinuousRelaxationEv", "idol::Gurobi::ContinuousRelaxation"], [78, 2, 1, "_CPPv4N4idol6Gurobi6GurobiERK6Gurobi", "idol::Gurobi::Gurobi"], [78, 2, 1, "_CPPv4N4idol6Gurobi6GurobiERR6Gurobi", "idol::Gurobi::Gurobi"], [78, 2, 1, "_CPPv4N4idol6Gurobi6GurobiEv", "idol::Gurobi::Gurobi"], [78, 4, 1, "_CPPv4N4idol6Gurobi6GurobiERK6Gurobi", "idol::Gurobi::Gurobi::t_src"], [78, 2, 1, "_CPPv4I0EN4idol6Gurobi2asER1Tv", "idol::Gurobi::as"], [78, 2, 1, "_CPPv4I0ENK4idol6Gurobi2asERK1Tv", "idol::Gurobi::as"], [78, 3, 1, "_CPPv4I0EN4idol6Gurobi2asER1Tv", "idol::Gurobi::as::T"], [78, 3, 1, "_CPPv4I0ENK4idol6Gurobi2asERK1Tv", "idol::Gurobi::as::T"], [78, 2, 1, "_CPPv4NK4idol6Gurobi5cloneEv", "idol::Gurobi::clone"], [78, 2, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional"], [78, 2, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEERKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional"], [78, 4, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional::t_conditional_value"], [78, 4, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEERKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional::t_conditional_value"], [78, 4, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEERKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional::t_else"], [78, 4, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional::t_if"], [78, 4, 1, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEERKNSt8functionIFvR6GurobiEEE", "idol::Gurobi::conditional::t_if"], [78, 2, 1, "_CPPv4I0ENK4idol6Gurobi2isEbv", "idol::Gurobi::is"], [78, 3, 1, "_CPPv4I0ENK4idol6Gurobi2isEbv", "idol::Gurobi::is::T"], [78, 2, 1, "_CPPv4NK4idol6GurobiclERK5Model", "idol::Gurobi::operator()"], [78, 4, 1, "_CPPv4NK4idol6GurobiclERK5Model", "idol::Gurobi::operator()::t_model"], [78, 2, 1, "_CPPv4N4idol6GurobiaSERK6Gurobi", "idol::Gurobi::operator="], [78, 2, 1, "_CPPv4N4idol6GurobiaSERR6Gurobi", "idol::Gurobi::operator="], [78, 2, 1, "_CPPv4N4idol6Gurobi14read_from_fileER3EnvRKNSt6stringE", "idol::Gurobi::read_from_file"], [78, 4, 1, "_CPPv4N4idol6Gurobi14read_from_fileER3EnvRKNSt6stringE", "idol::Gurobi::read_from_file::t_env"], [78, 4, 1, "_CPPv4N4idol6Gurobi14read_from_fileER3EnvRKNSt6stringE", "idol::Gurobi::read_from_file::t_filename"], [78, 2, 1, "_CPPv4N4idol6Gurobi27with_absolute_gap_toleranceEd", "idol::Gurobi::with_absolute_gap_tolerance"], [78, 4, 1, "_CPPv4N4idol6Gurobi27with_absolute_gap_toleranceEd", "idol::Gurobi::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [78, 2, 1, "_CPPv4N4idol6Gurobi20with_best_bound_stopEd", "idol::Gurobi::with_best_bound_stop"], [78, 4, 1, "_CPPv4N4idol6Gurobi20with_best_bound_stopEd", "idol::Gurobi::with_best_bound_stop::t_best_bound_stop"], [78, 2, 1, "_CPPv4N4idol6Gurobi18with_best_obj_stopEd", "idol::Gurobi::with_best_obj_stop"], [78, 4, 1, "_CPPv4N4idol6Gurobi18with_best_obj_stopEd", "idol::Gurobi::with_best_obj_stop::t_user_best_obj"], [78, 2, 1, "_CPPv4N4idol6Gurobi13with_callbackERK15CallbackFactory", "idol::Gurobi::with_callback"], [78, 4, 1, "_CPPv4N4idol6Gurobi13with_callbackERK15CallbackFactory", "idol::Gurobi::with_callback::t_cb"], [78, 2, 1, "_CPPv4N4idol6Gurobi31with_continuous_relaxation_onlyEb", "idol::Gurobi::with_continuous_relaxation_only"], [78, 4, 1, "_CPPv4N4idol6Gurobi31with_continuous_relaxation_onlyEb", "idol::Gurobi::with_continuous_relaxation_only::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi19with_external_paramE12GRB_IntParami", "idol::Gurobi::with_external_param"], [78, 2, 1, "_CPPv4N4idol6Gurobi19with_external_paramE15GRB_DoubleParamd", "idol::Gurobi::with_external_param"], [78, 4, 1, "_CPPv4N4idol6Gurobi19with_external_paramE12GRB_IntParami", "idol::Gurobi::with_external_param::t_param"], [78, 4, 1, "_CPPv4N4idol6Gurobi19with_external_paramE15GRB_DoubleParamd", "idol::Gurobi::with_external_param::t_param"], [78, 4, 1, "_CPPv4N4idol6Gurobi19with_external_paramE12GRB_IntParami", "idol::Gurobi::with_external_param::t_value"], [78, 4, 1, "_CPPv4N4idol6Gurobi19with_external_paramE15GRB_DoubleParamd", "idol::Gurobi::with_external_param::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi33with_infeasible_or_unbounded_infoEb", "idol::Gurobi::with_infeasible_or_unbounded_info"], [78, 4, 1, "_CPPv4N4idol6Gurobi33with_infeasible_or_unbounded_infoEb", "idol::Gurobi::with_infeasible_or_unbounded_info::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi20with_iteration_limitEj", "idol::Gurobi::with_iteration_limit"], [78, 4, 1, "_CPPv4N4idol6Gurobi20with_iteration_limitEj", "idol::Gurobi::with_iteration_limit::t_iteration_count_limit"], [78, 2, 1, "_CPPv4N4idol6Gurobi13with_lazy_cutEb", "idol::Gurobi::with_lazy_cut"], [78, 4, 1, "_CPPv4N4idol6Gurobi13with_lazy_cutEb", "idol::Gurobi::with_lazy_cut::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi9with_logsEb", "idol::Gurobi::with_logs"], [78, 4, 1, "_CPPv4N4idol6Gurobi9with_logsEb", "idol::Gurobi::with_logs::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi27with_max_n_solution_in_poolEj", "idol::Gurobi::with_max_n_solution_in_pool"], [78, 4, 1, "_CPPv4N4idol6Gurobi27with_max_n_solution_in_poolEj", "idol::Gurobi::with_max_n_solution_in_pool::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi13with_presolveEb", "idol::Gurobi::with_presolve"], [78, 4, 1, "_CPPv4N4idol6Gurobi13with_presolveEb", "idol::Gurobi::with_presolve::t_value"], [78, 2, 1, "_CPPv4N4idol6Gurobi27with_relative_gap_toleranceEd", "idol::Gurobi::with_relative_gap_tolerance"], [78, 4, 1, "_CPPv4N4idol6Gurobi27with_relative_gap_toleranceEd", "idol::Gurobi::with_relative_gap_tolerance::t_relative_gap_tolerance"], [78, 2, 1, "_CPPv4N4idol6Gurobi17with_thread_limitEj", "idol::Gurobi::with_thread_limit"], [78, 4, 1, "_CPPv4N4idol6Gurobi17with_thread_limitEj", "idol::Gurobi::with_thread_limit::t_max_n_threads"], [78, 2, 1, "_CPPv4N4idol6Gurobi15with_time_limitEd", "idol::Gurobi::with_time_limit"], [78, 4, 1, "_CPPv4N4idol6Gurobi15with_time_limitEd", "idol::Gurobi::with_time_limit::t_time_limit"], [49, 1, 1, "_CPPv4I0EN4idol10Heuristics13IntegerMasterE", "idol::Heuristics::IntegerMaster"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster13IntegerMasterERR13IntegerMaster", "idol::Heuristics::IntegerMaster::IntegerMaster"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster13IntegerMasterEv", "idol::Heuristics::IntegerMaster::IntegerMaster"], [49, 3, 1, "_CPPv4I0EN4idol10Heuristics13IntegerMasterE", "idol::Heuristics::IntegerMaster::NodeInfoT"], [49, 1, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8StrategyE", "idol::Heuristics::IntegerMaster::Strategy"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy8StrategyERK16OptimizerFactory", "idol::Heuristics::IntegerMaster::Strategy::Strategy"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy8StrategyERK16OptimizerFactory", "idol::Heuristics::IntegerMaster::Strategy::Strategy::t_optimizer"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy13set_frequencyEj", "idol::Heuristics::IntegerMaster::Strategy::set_frequency"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy13set_frequencyEj", "idol::Heuristics::IntegerMaster::Strategy::set_frequency::t_frequency"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy19set_integer_columnsEb", "idol::Heuristics::IntegerMaster::Strategy::set_integer_columns"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy19set_integer_columnsEb", "idol::Heuristics::IntegerMaster::Strategy::set_integer_columns::t_value"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy19set_iteration_limitEj", "idol::Heuristics::IntegerMaster::Strategy::set_iteration_limit"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy19set_iteration_limitEj", "idol::Heuristics::IntegerMaster::Strategy::set_iteration_limit::t_iteration_limit"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy13set_max_depthEj", "idol::Heuristics::IntegerMaster::Strategy::set_max_depth"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy13set_max_depthEj", "idol::Heuristics::IntegerMaster::Strategy::set_max_depth::t_max_depth"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy14set_time_limitEd", "idol::Heuristics::IntegerMaster::Strategy::set_time_limit"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy14set_time_limitEd", "idol::Heuristics::IntegerMaster::Strategy::set_time_limit::t_time_limit"], [49, 2, 1, "_CPPv4NK4idol10Heuristics13IntegerMaster8Strategy20with_integer_columnsEv", "idol::Heuristics::IntegerMaster::Strategy::with_integer_columns"], [49, 2, 1, "_CPPv4NK4idol10Heuristics13IntegerMaster5cloneEv", "idol::Heuristics::IntegerMaster::clone"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMasterclEv", "idol::Heuristics::IntegerMaster::operator()"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMasteraSERK13IntegerMaster", "idol::Heuristics::IntegerMaster::operator="], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMasteraSERR13IntegerMaster", "idol::Heuristics::IntegerMaster::operator="], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster14with_frequencyEj", "idol::Heuristics::IntegerMaster::with_frequency"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster14with_frequencyEj", "idol::Heuristics::IntegerMaster::with_frequency::t_frequency"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster20with_integer_columnsEb", "idol::Heuristics::IntegerMaster::with_integer_columns"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster20with_integer_columnsEb", "idol::Heuristics::IntegerMaster::with_integer_columns::t_value"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster20with_iteration_limitEj", "idol::Heuristics::IntegerMaster::with_iteration_limit"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster20with_iteration_limitEj", "idol::Heuristics::IntegerMaster::with_iteration_limit::t_iteration_limit"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster14with_max_depthEj", "idol::Heuristics::IntegerMaster::with_max_depth"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster14with_max_depthEj", "idol::Heuristics::IntegerMaster::with_max_depth::t_max_depth"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster14with_optimizerERK16OptimizerFactory", "idol::Heuristics::IntegerMaster::with_optimizer"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster14with_optimizerERK16OptimizerFactory", "idol::Heuristics::IntegerMaster::with_optimizer::t_optimizer"], [49, 2, 1, "_CPPv4N4idol10Heuristics13IntegerMaster15with_time_limitEd", "idol::Heuristics::IntegerMaster::with_time_limit"], [49, 4, 1, "_CPPv4N4idol10Heuristics13IntegerMaster15with_time_limitEd", "idol::Heuristics::IntegerMaster::with_time_limit::t_time_limit"], [24, 1, 1, "_CPPv4N4idol10Heuristics14LocalBranchingE", "idol::Heuristics::LocalBranching"], [37, 1, 1, "_CPPv4N4idol10Heuristics14LocalBranchingE", "idol::Heuristics::LocalBranching"], [24, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranching14LocalBranchingEv", "idol::Heuristics::LocalBranching::LocalBranching"], [37, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranching14LocalBranchingEv", "idol::Heuristics::LocalBranching::LocalBranching"], [24, 1, 1, "_CPPv4N4idol10Heuristics14LocalBranching8StrategyE", "idol::Heuristics::LocalBranching::Strategy"], [37, 1, 1, "_CPPv4N4idol10Heuristics14LocalBranching8StrategyE", "idol::Heuristics::LocalBranching::Strategy"], [24, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory", "idol::Heuristics::LocalBranching::Strategy::Strategy"], [37, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory", "idol::Heuristics::LocalBranching::Strategy::Strategy"], [24, 4, 1, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory", "idol::Heuristics::LocalBranching::Strategy::Strategy::t_neighbourhood_size"], [37, 4, 1, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory", "idol::Heuristics::LocalBranching::Strategy::Strategy::t_neighbourhood_size"], [24, 4, 1, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory", "idol::Heuristics::LocalBranching::Strategy::Strategy::t_optimizer_factory"], [37, 4, 1, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory", "idol::Heuristics::LocalBranching::Strategy::Strategy::t_optimizer_factory"], [24, 2, 1, "_CPPv4NK4idol10Heuristics14LocalBranching5cloneEv", "idol::Heuristics::LocalBranching::clone"], [37, 2, 1, "_CPPv4NK4idol10Heuristics14LocalBranching5cloneEv", "idol::Heuristics::LocalBranching::clone"], [24, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranchingclEv", "idol::Heuristics::LocalBranching::operator()"], [37, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranchingclEv", "idol::Heuristics::LocalBranching::operator()"], [24, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranching14with_optimizerERK16OptimizerFactory", "idol::Heuristics::LocalBranching::with_optimizer"], [37, 2, 1, "_CPPv4N4idol10Heuristics14LocalBranching14with_optimizerERK16OptimizerFactory", "idol::Heuristics::LocalBranching::with_optimizer"], [24, 4, 1, "_CPPv4N4idol10Heuristics14LocalBranching14with_optimizerERK16OptimizerFactory", "idol::Heuristics::LocalBranching::with_optimizer::t_optimizer_factory"], [37, 4, 1, "_CPPv4N4idol10Heuristics14LocalBranching14with_optimizerERK16OptimizerFactory", "idol::Heuristics::LocalBranching::with_optimizer::t_optimizer_factory"], [25, 1, 1, "_CPPv4N4idol10Heuristics4RENSE", "idol::Heuristics::RENS"], [25, 2, 1, "_CPPv4N4idol10Heuristics4RENS4RENSEv", "idol::Heuristics::RENS::RENS"], [25, 1, 1, "_CPPv4N4idol10Heuristics4RENS8StrategyE", "idol::Heuristics::RENS::Strategy"], [25, 2, 1, "_CPPv4N4idol10Heuristics4RENS8Strategy8StrategyEddP16OptimizerFactory", "idol::Heuristics::RENS::Strategy::Strategy"], [25, 4, 1, "_CPPv4N4idol10Heuristics4RENS8Strategy8StrategyEddP16OptimizerFactory", "idol::Heuristics::RENS::Strategy::Strategy::t_minimum_ratio_of_integer_variables_to_fix"], [25, 4, 1, "_CPPv4N4idol10Heuristics4RENS8Strategy8StrategyEddP16OptimizerFactory", "idol::Heuristics::RENS::Strategy::Strategy::t_minimum_ratio_of_variables_to_fix"], [25, 4, 1, "_CPPv4N4idol10Heuristics4RENS8Strategy8StrategyEddP16OptimizerFactory", "idol::Heuristics::RENS::Strategy::Strategy::t_optimizer_factory"], [25, 2, 1, "_CPPv4NK4idol10Heuristics4RENS5cloneEv", "idol::Heuristics::RENS::clone"], [25, 2, 1, "_CPPv4N4idol10Heuristics4RENSclEv", "idol::Heuristics::RENS::operator()"], [25, 2, 1, "_CPPv4N4idol10Heuristics4RENS14with_optimizerERK16OptimizerFactory", "idol::Heuristics::RENS::with_optimizer"], [25, 4, 1, "_CPPv4N4idol10Heuristics4RENS14with_optimizerERK16OptimizerFactory", "idol::Heuristics::RENS::with_optimizer::t_optimizer_factory"], [26, 1, 1, "_CPPv4N4idol10Heuristics14SimpleRoundingE", "idol::Heuristics::SimpleRounding"], [26, 2, 1, "_CPPv4N4idol10Heuristics14SimpleRounding14SimpleRoundingEv", "idol::Heuristics::SimpleRounding::SimpleRounding"], [26, 1, 1, "_CPPv4N4idol10Heuristics14SimpleRounding8StrategyE", "idol::Heuristics::SimpleRounding::Strategy"], [26, 2, 1, "_CPPv4NK4idol10Heuristics14SimpleRounding5cloneEv", "idol::Heuristics::SimpleRounding::clone"], [26, 2, 1, "_CPPv4N4idol10Heuristics14SimpleRoundingclEv", "idol::Heuristics::SimpleRounding::operator()"], [79, 1, 1, "_CPPv4N4idol5HiGHSE", "idol::HiGHS"], [79, 2, 1, "_CPPv4N4idol5HiGHS20ContinuousRelaxationEv", "idol::HiGHS::ContinuousRelaxation"], [79, 2, 1, "_CPPv4N4idol5HiGHS5HiGHSERK5HiGHS", "idol::HiGHS::HiGHS"], [79, 2, 1, "_CPPv4N4idol5HiGHS5HiGHSERR5HiGHS", "idol::HiGHS::HiGHS"], [79, 2, 1, "_CPPv4N4idol5HiGHS5HiGHSEv", "idol::HiGHS::HiGHS"], [79, 2, 1, "_CPPv4I0EN4idol5HiGHS2asER1Tv", "idol::HiGHS::as"], [79, 2, 1, "_CPPv4I0ENK4idol5HiGHS2asERK1Tv", "idol::HiGHS::as"], [79, 3, 1, "_CPPv4I0EN4idol5HiGHS2asER1Tv", "idol::HiGHS::as::T"], [79, 3, 1, "_CPPv4I0ENK4idol5HiGHS2asERK1Tv", "idol::HiGHS::as::T"], [79, 2, 1, "_CPPv4NK4idol5HiGHS5cloneEv", "idol::HiGHS::clone"], [79, 2, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional"], [79, 2, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEERKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional"], [79, 4, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional::t_conditional_value"], [79, 4, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEERKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional::t_conditional_value"], [79, 4, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEERKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional::t_else"], [79, 4, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional::t_if"], [79, 4, 1, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEERKNSt8functionIFvR5HiGHSEEE", "idol::HiGHS::conditional::t_if"], [79, 2, 1, "_CPPv4I0ENK4idol5HiGHS2isEbv", "idol::HiGHS::is"], [79, 3, 1, "_CPPv4I0ENK4idol5HiGHS2isEbv", "idol::HiGHS::is::T"], [79, 2, 1, "_CPPv4NK4idol5HiGHSclERK5Model", "idol::HiGHS::operator()"], [79, 4, 1, "_CPPv4NK4idol5HiGHSclERK5Model", "idol::HiGHS::operator()::t_model"], [79, 2, 1, "_CPPv4N4idol5HiGHSaSERK5HiGHS", "idol::HiGHS::operator="], [79, 2, 1, "_CPPv4N4idol5HiGHSaSERR5HiGHS", "idol::HiGHS::operator="], [79, 2, 1, "_CPPv4N4idol5HiGHS27with_absolute_gap_toleranceEd", "idol::HiGHS::with_absolute_gap_tolerance"], [79, 4, 1, "_CPPv4N4idol5HiGHS27with_absolute_gap_toleranceEd", "idol::HiGHS::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [79, 2, 1, "_CPPv4N4idol5HiGHS20with_best_bound_stopEd", "idol::HiGHS::with_best_bound_stop"], [79, 4, 1, "_CPPv4N4idol5HiGHS20with_best_bound_stopEd", "idol::HiGHS::with_best_bound_stop::t_best_bound_stop"], [79, 2, 1, "_CPPv4N4idol5HiGHS18with_best_obj_stopEd", "idol::HiGHS::with_best_obj_stop"], [79, 4, 1, "_CPPv4N4idol5HiGHS18with_best_obj_stopEd", "idol::HiGHS::with_best_obj_stop::t_user_best_obj"], [79, 2, 1, "_CPPv4N4idol5HiGHS31with_continuous_relaxation_onlyEb", "idol::HiGHS::with_continuous_relaxation_only"], [79, 4, 1, "_CPPv4N4idol5HiGHS31with_continuous_relaxation_onlyEb", "idol::HiGHS::with_continuous_relaxation_only::t_value"], [79, 2, 1, "_CPPv4N4idol5HiGHS33with_infeasible_or_unbounded_infoEb", "idol::HiGHS::with_infeasible_or_unbounded_info"], [79, 4, 1, "_CPPv4N4idol5HiGHS33with_infeasible_or_unbounded_infoEb", "idol::HiGHS::with_infeasible_or_unbounded_info::t_value"], [79, 2, 1, "_CPPv4N4idol5HiGHS20with_iteration_limitEj", "idol::HiGHS::with_iteration_limit"], [79, 4, 1, "_CPPv4N4idol5HiGHS20with_iteration_limitEj", "idol::HiGHS::with_iteration_limit::t_iteration_count_limit"], [79, 2, 1, "_CPPv4N4idol5HiGHS9with_logsEb", "idol::HiGHS::with_logs"], [79, 4, 1, "_CPPv4N4idol5HiGHS9with_logsEb", "idol::HiGHS::with_logs::t_value"], [79, 2, 1, "_CPPv4N4idol5HiGHS13with_presolveEb", "idol::HiGHS::with_presolve"], [79, 4, 1, "_CPPv4N4idol5HiGHS13with_presolveEb", "idol::HiGHS::with_presolve::t_value"], [79, 2, 1, "_CPPv4N4idol5HiGHS27with_relative_gap_toleranceEd", "idol::HiGHS::with_relative_gap_tolerance"], [79, 4, 1, "_CPPv4N4idol5HiGHS27with_relative_gap_toleranceEd", "idol::HiGHS::with_relative_gap_tolerance::t_relative_gap_tolerance"], [79, 2, 1, "_CPPv4N4idol5HiGHS17with_thread_limitEj", "idol::HiGHS::with_thread_limit"], [79, 4, 1, "_CPPv4N4idol5HiGHS17with_thread_limitEj", "idol::HiGHS::with_thread_limit::t_max_n_threads"], [79, 2, 1, "_CPPv4N4idol5HiGHS15with_time_limitEd", "idol::HiGHS::with_time_limit"], [79, 4, 1, "_CPPv4N4idol5HiGHS15with_time_limitEd", "idol::HiGHS::with_time_limit::t_time_limit"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent17IncumbentSolutionE", "idol::IncumbentSolution"], [18, 7, 1, "_CPPv4N4idol3InfE", "idol::Inf"], [98, 7, 1, "_CPPv4N4idol3InfE", "idol::Inf"], [72, 5, 1, "_CPPv4N4idol7VarType7IntegerE", "idol::Integer"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent15InvalidSolutionE", "idol::InvalidSolution"], [94, 1, 1, "_CPPv4N4idol15LazyCutCallbackE", "idol::LazyCutCallback"], [94, 2, 1, "_CPPv4N4idol15LazyCutCallback15LazyCutCallbackERK5Model7TempCtr", "idol::LazyCutCallback::LazyCutCallback"], [94, 4, 1, "_CPPv4N4idol15LazyCutCallback15LazyCutCallbackERK5Model7TempCtr", "idol::LazyCutCallback::LazyCutCallback::t_cut"], [94, 4, 1, "_CPPv4N4idol15LazyCutCallback15LazyCutCallbackERK5Model7TempCtr", "idol::LazyCutCallback::LazyCutCallback::t_model"], [94, 1, 1, "_CPPv4N4idol15LazyCutCallback8StrategyE", "idol::LazyCutCallback::Strategy"], [94, 2, 1, "_CPPv4N4idol15LazyCutCallback8Strategy8StrategyEP5Model7TempCtr", "idol::LazyCutCallback::Strategy::Strategy"], [94, 4, 1, "_CPPv4N4idol15LazyCutCallback8Strategy8StrategyEP5Model7TempCtr", "idol::LazyCutCallback::Strategy::Strategy::t_cut"], [94, 4, 1, "_CPPv4N4idol15LazyCutCallback8Strategy8StrategyEP5Model7TempCtr", "idol::LazyCutCallback::Strategy::Strategy::t_separation_problem"], [94, 2, 1, "_CPPv4NK4idol15LazyCutCallback5cloneEv", "idol::LazyCutCallback::clone"], [94, 2, 1, "_CPPv4N4idol15LazyCutCallbackclEv", "idol::LazyCutCallback::operator()"], [94, 2, 1, "_CPPv4N4idol15LazyCutCallback25with_separation_optimizerERK16OptimizerFactory", "idol::LazyCutCallback::with_separation_optimizer"], [94, 4, 1, "_CPPv4N4idol15LazyCutCallback25with_separation_optimizerERK16OptimizerFactory", "idol::LazyCutCallback::with_separation_optimizer::t_optimizer_factory"], [36, 1, 1, "_CPPv4N4idol15LeastInfeasibleE", "idol::LeastInfeasible"], [36, 2, 1, "_CPPv4I0EN4idol15LeastInfeasible15LeastInfeasibleE9IteratorT9IteratorT", "idol::LeastInfeasible::LeastInfeasible"], [36, 2, 1, "_CPPv4N4idol15LeastInfeasible15LeastInfeasibleEv", "idol::LeastInfeasible::LeastInfeasible"], [36, 3, 1, "_CPPv4I0EN4idol15LeastInfeasible15LeastInfeasibleE9IteratorT9IteratorT", "idol::LeastInfeasible::LeastInfeasible::IteratorT"], [36, 4, 1, "_CPPv4I0EN4idol15LeastInfeasible15LeastInfeasibleE9IteratorT9IteratorT", "idol::LeastInfeasible::LeastInfeasible::t_begin"], [36, 4, 1, "_CPPv4I0EN4idol15LeastInfeasible15LeastInfeasibleE9IteratorT9IteratorT", "idol::LeastInfeasible::LeastInfeasible::t_end"], [36, 1, 1, "_CPPv4I0EN4idol15LeastInfeasible8StrategyE", "idol::LeastInfeasible::Strategy"], [36, 3, 1, "_CPPv4I0EN4idol15LeastInfeasible8StrategyE", "idol::LeastInfeasible::Strategy::NodeInfoT"], [36, 2, 1, "_CPPv4N4idol15LeastInfeasible8Strategy8StrategyERK15LeastInfeasible", "idol::LeastInfeasible::Strategy::Strategy"], [36, 2, 1, "_CPPv4N4idol15LeastInfeasible8Strategy8StrategyEv", "idol::LeastInfeasible::Strategy::Strategy"], [36, 4, 1, "_CPPv4N4idol15LeastInfeasible8Strategy8StrategyERK15LeastInfeasible", "idol::LeastInfeasible::Strategy::Strategy::t_parent"], [36, 2, 1, "_CPPv4NK4idol15LeastInfeasible8Strategy5cloneEv", "idol::LeastInfeasible::Strategy::clone"], [36, 2, 1, "_CPPv4NK4idol15LeastInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::LeastInfeasible::Strategy::operator()"], [36, 2, 1, "_CPPv4NK4idol15LeastInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::LeastInfeasible::Strategy::operator()"], [36, 4, 1, "_CPPv4NK4idol15LeastInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::LeastInfeasible::Strategy::operator()::t_parent"], [36, 4, 1, "_CPPv4NK4idol15LeastInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::LeastInfeasible::Strategy::operator()::t_parent"], [59, 5, 1, "_CPPv4N4idol7CtrType11LessOrEqualE", "idol::LessOrEqual"], [62, 1, 1, "_CPPv4I0EN4idol7LinExprE", "idol::LinExpr"], [62, 3, 1, "_CPPv4I0EN4idol7LinExprE", "idol::LinExpr::Key"], [62, 2, 1, "_CPPv4N4idol7LinExpr7LinExprERK3Key", "idol::LinExpr::LinExpr"], [62, 2, 1, "_CPPv4N4idol7LinExpr7LinExprERK8ConstantRK3Key", "idol::LinExpr::LinExpr"], [62, 2, 1, "_CPPv4N4idol7LinExpr7LinExprERR8ConstantRK3Key", "idol::LinExpr::LinExpr"], [62, 2, 1, "_CPPv4N4idol7LinExpr7LinExprEv", "idol::LinExpr::LinExpr"], [62, 4, 1, "_CPPv4N4idol7LinExpr7LinExprERK8ConstantRK3Key", "idol::LinExpr::LinExpr::t_factor"], [62, 4, 1, "_CPPv4N4idol7LinExpr7LinExprERR8ConstantRK3Key", "idol::LinExpr::LinExpr::t_factor"], [62, 4, 1, "_CPPv4N4idol7LinExpr7LinExprERK3Key", "idol::LinExpr::LinExpr::t_key"], [62, 4, 1, "_CPPv4N4idol7LinExpr7LinExprERK8ConstantRK3Key", "idol::LinExpr::LinExpr::t_key"], [62, 4, 1, "_CPPv4N4idol7LinExpr7LinExprERR8ConstantRK3Key", "idol::LinExpr::LinExpr::t_key"], [62, 2, 1, "_CPPv4NK4idol7LinExpr5beginEv", "idol::LinExpr::begin"], [62, 2, 1, "_CPPv4N4idol7LinExpr5clearEv", "idol::LinExpr::clear"], [62, 2, 1, "_CPPv4NK4idol7LinExpr5emptyEv", "idol::LinExpr::empty"], [62, 2, 1, "_CPPv4NK4idol7LinExpr3endEv", "idol::LinExpr::end"], [62, 2, 1, "_CPPv4NK4idol7LinExpr3fixERKN8Solution6PrimalE", "idol::LinExpr::fix"], [62, 4, 1, "_CPPv4NK4idol7LinExpr3fixERKN8Solution6PrimalE", "idol::LinExpr::fix::t_primals"], [62, 2, 1, "_CPPv4NK4idol7LinExpr3gcdEv", "idol::LinExpr::gcd"], [62, 2, 1, "_CPPv4NK4idol7LinExpr3getERK3Key", "idol::LinExpr::get"], [62, 4, 1, "_CPPv4NK4idol7LinExpr3getERK3Key", "idol::LinExpr::get::t_key"], [62, 2, 1, "_CPPv4N4idol7LinExpr23multiply_with_precisionEdj", "idol::LinExpr::multiply_with_precision"], [62, 4, 1, "_CPPv4N4idol7LinExpr23multiply_with_precisionEdj", "idol::LinExpr::multiply_with_precision::t_factor"], [62, 4, 1, "_CPPv4N4idol7LinExpr23multiply_with_precisionEdj", "idol::LinExpr::multiply_with_precision::t_n_digits"], [62, 2, 1, "_CPPv4N4idol7LinExpr38multiply_with_precision_by_power_of_10Ejj", "idol::LinExpr::multiply_with_precision_by_power_of_10"], [62, 4, 1, "_CPPv4N4idol7LinExpr38multiply_with_precision_by_power_of_10Ejj", "idol::LinExpr::multiply_with_precision_by_power_of_10::t_exponent"], [62, 4, 1, "_CPPv4N4idol7LinExpr38multiply_with_precision_by_power_of_10Ejj", "idol::LinExpr::multiply_with_precision_by_power_of_10::t_n_digits"], [62, 2, 1, "_CPPv4N4idol7LinExprmLEd", "idol::LinExpr::operator*="], [62, 4, 1, "_CPPv4N4idol7LinExprmLEd", "idol::LinExpr::operator*=::t_factor"], [62, 2, 1, "_CPPv4N4idol7LinExprpLERK12AbstractExprI3Key15IteratorOutputT4Hash7EqualToE", "idol::LinExpr::operator+="], [62, 4, 1, "_CPPv4N4idol7LinExprpLERK12AbstractExprI3Key15IteratorOutputT4Hash7EqualToE", "idol::LinExpr::operator+=::t_rhs"], [62, 2, 1, "_CPPv4N4idol7LinExprmIERK12AbstractExprI3Key15IteratorOutputT4Hash7EqualToE", "idol::LinExpr::operator-="], [62, 4, 1, "_CPPv4N4idol7LinExprmIERK12AbstractExprI3Key15IteratorOutputT4Hash7EqualToE", "idol::LinExpr::operator-=::t_rhs"], [62, 2, 1, "_CPPv4N4idol7LinExprdVEd", "idol::LinExpr::operator/="], [62, 4, 1, "_CPPv4N4idol7LinExprdVEd", "idol::LinExpr::operator/=::t_factor"], [62, 2, 1, "_CPPv4N4idol7LinExpr6removeERK3Key", "idol::LinExpr::remove"], [62, 4, 1, "_CPPv4N4idol7LinExpr6removeERK3Key", "idol::LinExpr::remove::t_key"], [62, 2, 1, "_CPPv4N4idol7LinExpr5roundEv", "idol::LinExpr::round"], [62, 2, 1, "_CPPv4N4idol7LinExpr3setERK3KeyRK8Constant", "idol::LinExpr::set"], [62, 2, 1, "_CPPv4N4idol7LinExpr3setERK3KeyRR8Constant", "idol::LinExpr::set"], [62, 4, 1, "_CPPv4N4idol7LinExpr3setERK3KeyRK8Constant", "idol::LinExpr::set::t_coefficient"], [62, 4, 1, "_CPPv4N4idol7LinExpr3setERK3KeyRR8Constant", "idol::LinExpr::set::t_coefficient"], [62, 4, 1, "_CPPv4N4idol7LinExpr3setERK3KeyRK8Constant", "idol::LinExpr::set::t_key"], [62, 4, 1, "_CPPv4N4idol7LinExpr3setERK3KeyRR8Constant", "idol::LinExpr::set::t_key"], [62, 2, 1, "_CPPv4NK4idol7LinExpr4sizeEv", "idol::LinExpr::size"], [63, 1, 1, "_CPPv4N4idol5ModelE", "idol::Model"], [63, 2, 1, "_CPPv4N4idol5Model5ModelER3Env", "idol::Model::Model"], [63, 2, 1, "_CPPv4N4idol5Model5ModelER3Env14ObjectiveSense", "idol::Model::Model"], [63, 2, 1, "_CPPv4N4idol5Model5ModelERR5Model", "idol::Model::Model"], [63, 4, 1, "_CPPv4N4idol5Model5ModelER3Env", "idol::Model::Model::t_env"], [63, 4, 1, "_CPPv4N4idol5Model5ModelER3Env14ObjectiveSense", "idol::Model::Model::t_env"], [63, 4, 1, "_CPPv4N4idol5Model5ModelER3Env14ObjectiveSense", "idol::Model::Model::t_sense"], [63, 2, 1, "_CPPv4N4idol5Model3addERK3Ctr", "idol::Model::add"], [63, 2, 1, "_CPPv4N4idol5Model3addERK3Ctr7TempCtr", "idol::Model::add"], [63, 2, 1, "_CPPv4N4idol5Model3addERK3Var", "idol::Model::add"], [63, 2, 1, "_CPPv4N4idol5Model3addERK3Var7TempVar", "idol::Model::add"], [63, 4, 1, "_CPPv4N4idol5Model3addERK3Ctr", "idol::Model::add::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model3addERK3Ctr7TempCtr", "idol::Model::add::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model3addERK3Ctr7TempCtr", "idol::Model::add::t_temp_ctr"], [63, 4, 1, "_CPPv4N4idol5Model3addERK3Var7TempVar", "idol::Model::add::t_temp_var"], [63, 4, 1, "_CPPv4N4idol5Model3addERK3Var", "idol::Model::add::t_var"], [63, 4, 1, "_CPPv4N4idol5Model3addERK3Var7TempVar", "idol::Model::add::t_var"], [63, 2, 1, "_CPPv4N4idol5Model7add_ctrE7TempCtrNSt6stringE", "idol::Model::add_ctr"], [63, 2, 1, "_CPPv4N4idol5Model7add_ctrERR3Row7CtrTypeNSt6stringE", "idol::Model::add_ctr"], [63, 4, 1, "_CPPv4N4idol5Model7add_ctrE7TempCtrNSt6stringE", "idol::Model::add_ctr::t_name"], [63, 4, 1, "_CPPv4N4idol5Model7add_ctrERR3Row7CtrTypeNSt6stringE", "idol::Model::add_ctr::t_name"], [63, 4, 1, "_CPPv4N4idol5Model7add_ctrERR3Row7CtrTypeNSt6stringE", "idol::Model::add_ctr::t_row"], [63, 4, 1, "_CPPv4N4idol5Model7add_ctrE7TempCtrNSt6stringE", "idol::Model::add_ctr::t_temp_ctr"], [63, 4, 1, "_CPPv4N4idol5Model7add_ctrERR3Row7CtrTypeNSt6stringE", "idol::Model::add_ctr::t_type"], [63, 2, 1, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs"], [63, 2, 1, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs"], [63, 3, 1, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::N"], [63, 3, 1, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::N"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_constant"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_constant"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_dim"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_dim"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_name"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_name"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_type"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE", "idol::Model::add_ctrs::t_type"], [63, 2, 1, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE", "idol::Model::add_var"], [63, 2, 1, "_CPPv4N4idol5Model7add_varEdd7VarTypeNSt6stringE", "idol::Model::add_var"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE", "idol::Model::add_var::t_column"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE", "idol::Model::add_var::t_lb"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarTypeNSt6stringE", "idol::Model::add_var::t_lb"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE", "idol::Model::add_var::t_name"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarTypeNSt6stringE", "idol::Model::add_var::t_name"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE", "idol::Model::add_var::t_type"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarTypeNSt6stringE", "idol::Model::add_var::t_type"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE", "idol::Model::add_var::t_ub"], [63, 4, 1, "_CPPv4N4idol5Model7add_varEdd7VarTypeNSt6stringE", "idol::Model::add_var::t_ub"], [63, 2, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars"], [63, 2, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars"], [63, 3, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::N"], [63, 3, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::N"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_dim"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_dim"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_lb"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_lb"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_name"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_name"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_type"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_type"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_ub"], [63, 4, 1, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Model::add_vars::t_ub"], [63, 2, 1, "_CPPv4I0_jEN4idol5Model10add_vectorEvRK6VectorI1T1NE", "idol::Model::add_vector"], [63, 3, 1, "_CPPv4I0_jEN4idol5Model10add_vectorEvRK6VectorI1T1NE", "idol::Model::add_vector::N"], [63, 3, 1, "_CPPv4I0_jEN4idol5Model10add_vectorEvRK6VectorI1T1NE", "idol::Model::add_vector::T"], [63, 4, 1, "_CPPv4I0_jEN4idol5Model10add_vectorEvRK6VectorI1T1NE", "idol::Model::add_vector::t_vector"], [63, 2, 1, "_CPPv4NK4idol5Model5cloneEv", "idol::Model::clone"], [63, 2, 1, "_CPPv4NK4idol5Model4copyEv", "idol::Model::copy"], [63, 2, 1, "_CPPv4NK4idol5Model4ctrsEv", "idol::Model::ctrs"], [63, 2, 1, "_CPPv4NK4idol5Model3envEv", "idol::Model::env"], [63, 2, 1, "_CPPv4NK4idol5Model3fixERKN8Solution6PrimalE", "idol::Model::fix"], [63, 4, 1, "_CPPv4NK4idol5Model3fixERKN8Solution6PrimalE", "idol::Model::fix::t_primals"], [63, 2, 1, "_CPPv4NK4idol5Model14get_best_boundEv", "idol::Model::get_best_bound"], [63, 2, 1, "_CPPv4NK4idol5Model12get_best_objEv", "idol::Model::get_best_obj"], [63, 2, 1, "_CPPv4NK4idol5Model16get_ctr_by_indexEj", "idol::Model::get_ctr_by_index"], [63, 4, 1, "_CPPv4NK4idol5Model16get_ctr_by_indexEj", "idol::Model::get_ctr_by_index::t_index"], [63, 2, 1, "_CPPv4NK4idol5Model12get_ctr_dualERK3Ctr", "idol::Model::get_ctr_dual"], [63, 4, 1, "_CPPv4NK4idol5Model12get_ctr_dualERK3Ctr", "idol::Model::get_ctr_dual::t_ctr"], [63, 2, 1, "_CPPv4NK4idol5Model14get_ctr_farkasERK3Ctr", "idol::Model::get_ctr_farkas"], [63, 4, 1, "_CPPv4NK4idol5Model14get_ctr_farkasERK3Ctr", "idol::Model::get_ctr_farkas::t_ctr"], [63, 2, 1, "_CPPv4NK4idol5Model13get_ctr_indexERK3Ctr", "idol::Model::get_ctr_index"], [63, 4, 1, "_CPPv4NK4idol5Model13get_ctr_indexERK3Ctr", "idol::Model::get_ctr_index::t_ctr"], [63, 2, 1, "_CPPv4NK4idol5Model11get_ctr_rowERK3Ctr", "idol::Model::get_ctr_row"], [63, 4, 1, "_CPPv4NK4idol5Model11get_ctr_rowERK3Ctr", "idol::Model::get_ctr_row::t_ctr"], [63, 2, 1, "_CPPv4NK4idol5Model12get_ctr_typeERK3Ctr", "idol::Model::get_ctr_type"], [63, 4, 1, "_CPPv4NK4idol5Model12get_ctr_typeERK3Ctr", "idol::Model::get_ctr_type::t_ctr"], [63, 2, 1, "_CPPv4NK4idol5Model13get_mat_coeffERK3CtrRK3Var", "idol::Model::get_mat_coeff"], [63, 4, 1, "_CPPv4NK4idol5Model13get_mat_coeffERK3CtrRK3Var", "idol::Model::get_mat_coeff::t_ctr"], [63, 4, 1, "_CPPv4NK4idol5Model13get_mat_coeffERK3CtrRK3Var", "idol::Model::get_mat_coeff::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model15get_n_solutionsEv", "idol::Model::get_n_solutions"], [63, 2, 1, "_CPPv4NK4idol5Model12get_obj_exprEv", "idol::Model::get_obj_expr"], [63, 2, 1, "_CPPv4NK4idol5Model13get_obj_senseEv", "idol::Model::get_obj_sense"], [63, 2, 1, "_CPPv4NK4idol5Model10get_reasonEv", "idol::Model::get_reason"], [63, 2, 1, "_CPPv4NK4idol5Model12get_rhs_exprEv", "idol::Model::get_rhs_expr"], [63, 2, 1, "_CPPv4NK4idol5Model18get_solution_indexEv", "idol::Model::get_solution_index"], [63, 2, 1, "_CPPv4NK4idol5Model10get_statusEv", "idol::Model::get_status"], [63, 2, 1, "_CPPv4NK4idol5Model16get_var_by_indexEj", "idol::Model::get_var_by_index"], [63, 4, 1, "_CPPv4NK4idol5Model16get_var_by_indexEj", "idol::Model::get_var_by_index::t_index"], [63, 2, 1, "_CPPv4NK4idol5Model14get_var_columnERK3Var", "idol::Model::get_var_column"], [63, 4, 1, "_CPPv4NK4idol5Model14get_var_columnERK3Var", "idol::Model::get_var_column::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model13get_var_indexERK3Var", "idol::Model::get_var_index"], [63, 4, 1, "_CPPv4NK4idol5Model13get_var_indexERK3Var", "idol::Model::get_var_index::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model10get_var_lbERK3Var", "idol::Model::get_var_lb"], [63, 4, 1, "_CPPv4NK4idol5Model10get_var_lbERK3Var", "idol::Model::get_var_lb::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model14get_var_primalERK3Var", "idol::Model::get_var_primal"], [63, 4, 1, "_CPPv4NK4idol5Model14get_var_primalERK3Var", "idol::Model::get_var_primal::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model11get_var_rayERK3Var", "idol::Model::get_var_ray"], [63, 4, 1, "_CPPv4NK4idol5Model11get_var_rayERK3Var", "idol::Model::get_var_ray::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model20get_var_reduced_costERK3Var", "idol::Model::get_var_reduced_cost"], [63, 4, 1, "_CPPv4NK4idol5Model20get_var_reduced_costERK3Var", "idol::Model::get_var_reduced_cost::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model12get_var_typeERK3Var", "idol::Model::get_var_type"], [63, 4, 1, "_CPPv4NK4idol5Model12get_var_typeERK3Var", "idol::Model::get_var_type::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model10get_var_ubERK3Var", "idol::Model::get_var_ub"], [63, 4, 1, "_CPPv4NK4idol5Model10get_var_ubERK3Var", "idol::Model::get_var_ub::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model3hasERK3Ctr", "idol::Model::has"], [63, 2, 1, "_CPPv4NK4idol5Model3hasERK3Var", "idol::Model::has"], [63, 4, 1, "_CPPv4NK4idol5Model3hasERK3Ctr", "idol::Model::has::t_ctr"], [63, 4, 1, "_CPPv4NK4idol5Model3hasERK3Var", "idol::Model::has::t_var"], [63, 2, 1, "_CPPv4NK4idol5Model13has_optimizerEv", "idol::Model::has_optimizer"], [63, 2, 1, "_CPPv4NK4idol5Model21has_optimizer_factoryEv", "idol::Model::has_optimizer_factory"], [63, 2, 1, "_CPPv4NK4idol5Model2idEv", "idol::Model::id"], [63, 2, 1, "_CPPv4N4idol5ModelaSERK5Model", "idol::Model::operator="], [63, 2, 1, "_CPPv4N4idol5ModelaSERR5Model", "idol::Model::operator="], [63, 2, 1, "_CPPv4N4idol5Model8optimizeEv", "idol::Model::optimize"], [63, 2, 1, "_CPPv4N4idol5Model9optimizerEv", "idol::Model::optimizer"], [63, 2, 1, "_CPPv4NK4idol5Model9optimizerEv", "idol::Model::optimizer"], [63, 2, 1, "_CPPv4NK4idol5Model17optimizer_factoryEv", "idol::Model::optimizer_factory"], [63, 2, 1, "_CPPv4N4idol5Model6removeERK3Ctr", "idol::Model::remove"], [63, 2, 1, "_CPPv4N4idol5Model6removeERK3Var", "idol::Model::remove"], [63, 4, 1, "_CPPv4N4idol5Model6removeERK3Ctr", "idol::Model::remove::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model6removeERK3Var", "idol::Model::remove::t_var"], [63, 2, 1, "_CPPv4N4idol5Model12reserve_ctrsEj", "idol::Model::reserve_ctrs"], [63, 4, 1, "_CPPv4N4idol5Model12reserve_ctrsEj", "idol::Model::reserve_ctrs::t_size"], [63, 2, 1, "_CPPv4N4idol5Model12reserve_varsEj", "idol::Model::reserve_vars"], [63, 4, 1, "_CPPv4N4idol5Model12reserve_varsEj", "idol::Model::reserve_vars::t_size"], [63, 2, 1, "_CPPv4N4idol5Model17scale_to_integersEj", "idol::Model::scale_to_integers"], [63, 4, 1, "_CPPv4N4idol5Model17scale_to_integersEj", "idol::Model::scale_to_integers::t_n_digits"], [63, 2, 1, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRK8Constant", "idol::Model::set_ctr_rhs"], [63, 2, 1, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRR8Constant", "idol::Model::set_ctr_rhs"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRK8Constant", "idol::Model::set_ctr_rhs::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRR8Constant", "idol::Model::set_ctr_rhs::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRK8Constant", "idol::Model::set_ctr_rhs::t_rhs"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRR8Constant", "idol::Model::set_ctr_rhs::t_rhs"], [63, 2, 1, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRK3Row", "idol::Model::set_ctr_row"], [63, 2, 1, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRR3Row", "idol::Model::set_ctr_row"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRK3Row", "idol::Model::set_ctr_row::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRR3Row", "idol::Model::set_ctr_row::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRK3Row", "idol::Model::set_ctr_row::t_row"], [63, 4, 1, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRR3Row", "idol::Model::set_ctr_row::t_row"], [63, 2, 1, "_CPPv4N4idol5Model12set_ctr_typeERK3Ctr7CtrType", "idol::Model::set_ctr_type"], [63, 4, 1, "_CPPv4N4idol5Model12set_ctr_typeERK3Ctr7CtrType", "idol::Model::set_ctr_type::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model12set_ctr_typeERK3Ctr7CtrType", "idol::Model::set_ctr_type::t_type"], [63, 2, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRK8Constant", "idol::Model::set_mat_coeff"], [63, 2, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRR8Constant", "idol::Model::set_mat_coeff"], [63, 4, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRK8Constant", "idol::Model::set_mat_coeff::t_coeff"], [63, 4, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRR8Constant", "idol::Model::set_mat_coeff::t_coeff"], [63, 4, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRK8Constant", "idol::Model::set_mat_coeff::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRR8Constant", "idol::Model::set_mat_coeff::t_ctr"], [63, 4, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRK8Constant", "idol::Model::set_mat_coeff::t_var"], [63, 4, 1, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRR8Constant", "idol::Model::set_mat_coeff::t_var"], [63, 2, 1, "_CPPv4N4idol5Model13set_obj_constERK8Constant", "idol::Model::set_obj_const"], [63, 2, 1, "_CPPv4N4idol5Model13set_obj_constERR8Constant", "idol::Model::set_obj_const"], [63, 4, 1, "_CPPv4N4idol5Model13set_obj_constERK8Constant", "idol::Model::set_obj_const::t_constant"], [63, 4, 1, "_CPPv4N4idol5Model13set_obj_constERR8Constant", "idol::Model::set_obj_const::t_constant"], [63, 2, 1, "_CPPv4N4idol5Model12set_obj_exprERK4ExprI3Var3VarE", "idol::Model::set_obj_expr"], [63, 2, 1, "_CPPv4N4idol5Model12set_obj_exprERR4ExprI3Var3VarE", "idol::Model::set_obj_expr"], [63, 4, 1, "_CPPv4N4idol5Model12set_obj_exprERK4ExprI3Var3VarE", "idol::Model::set_obj_expr::t_objective"], [63, 4, 1, "_CPPv4N4idol5Model12set_obj_exprERR4ExprI3Var3VarE", "idol::Model::set_obj_expr::t_objective"], [63, 2, 1, "_CPPv4N4idol5Model13set_obj_senseE14ObjectiveSense", "idol::Model::set_obj_sense"], [63, 4, 1, "_CPPv4N4idol5Model13set_obj_senseE14ObjectiveSense", "idol::Model::set_obj_sense::t_value"], [63, 2, 1, "_CPPv4N4idol5Model12set_rhs_exprERK7LinExprI3CtrE", "idol::Model::set_rhs_expr"], [63, 2, 1, "_CPPv4N4idol5Model12set_rhs_exprERR7LinExprI3CtrE", "idol::Model::set_rhs_expr"], [63, 4, 1, "_CPPv4N4idol5Model12set_rhs_exprERK7LinExprI3CtrE", "idol::Model::set_rhs_expr::t_rhs"], [63, 4, 1, "_CPPv4N4idol5Model12set_rhs_exprERR7LinExprI3CtrE", "idol::Model::set_rhs_expr::t_rhs"], [63, 2, 1, "_CPPv4N4idol5Model18set_solution_indexEj", "idol::Model::set_solution_index"], [63, 4, 1, "_CPPv4N4idol5Model18set_solution_indexEj", "idol::Model::set_solution_index::t_index"], [63, 2, 1, "_CPPv4N4idol5Model14set_var_columnERK3VarRK6Column", "idol::Model::set_var_column"], [63, 2, 1, "_CPPv4N4idol5Model14set_var_columnERK3VarRR6Column", "idol::Model::set_var_column"], [63, 4, 1, "_CPPv4N4idol5Model14set_var_columnERK3VarRK6Column", "idol::Model::set_var_column::t_column"], [63, 4, 1, "_CPPv4N4idol5Model14set_var_columnERK3VarRR6Column", "idol::Model::set_var_column::t_column"], [63, 4, 1, "_CPPv4N4idol5Model14set_var_columnERK3VarRK6Column", "idol::Model::set_var_column::t_var"], [63, 4, 1, "_CPPv4N4idol5Model14set_var_columnERK3VarRR6Column", "idol::Model::set_var_column::t_var"], [63, 2, 1, "_CPPv4N4idol5Model10set_var_lbERK3Vard", "idol::Model::set_var_lb"], [63, 4, 1, "_CPPv4N4idol5Model10set_var_lbERK3Vard", "idol::Model::set_var_lb::t_lb"], [63, 4, 1, "_CPPv4N4idol5Model10set_var_lbERK3Vard", "idol::Model::set_var_lb::t_var"], [63, 2, 1, "_CPPv4N4idol5Model11set_var_objERK3VarRK8Constant", "idol::Model::set_var_obj"], [63, 2, 1, "_CPPv4N4idol5Model11set_var_objERK3VarRR8Constant", "idol::Model::set_var_obj"], [63, 4, 1, "_CPPv4N4idol5Model11set_var_objERK3VarRK8Constant", "idol::Model::set_var_obj::t_obj"], [63, 4, 1, "_CPPv4N4idol5Model11set_var_objERK3VarRR8Constant", "idol::Model::set_var_obj::t_obj"], [63, 4, 1, "_CPPv4N4idol5Model11set_var_objERK3VarRK8Constant", "idol::Model::set_var_obj::t_var"], [63, 4, 1, "_CPPv4N4idol5Model11set_var_objERK3VarRR8Constant", "idol::Model::set_var_obj::t_var"], [63, 2, 1, "_CPPv4N4idol5Model12set_var_typeERK3Var7VarType", "idol::Model::set_var_type"], [63, 4, 1, "_CPPv4N4idol5Model12set_var_typeERK3Var7VarType", "idol::Model::set_var_type::t_type"], [63, 4, 1, "_CPPv4N4idol5Model12set_var_typeERK3Var7VarType", "idol::Model::set_var_type::t_var"], [63, 2, 1, "_CPPv4N4idol5Model10set_var_ubERK3Vard", "idol::Model::set_var_ub"], [63, 4, 1, "_CPPv4N4idol5Model10set_var_ubERK3Vard", "idol::Model::set_var_ub::t_ub"], [63, 4, 1, "_CPPv4N4idol5Model10set_var_ubERK3Vard", "idol::Model::set_var_ub::t_var"], [63, 2, 1, "_CPPv4N4idol5Model5unuseEv", "idol::Model::unuse"], [63, 2, 1, "_CPPv4N4idol5Model6updateEv", "idol::Model::update"], [63, 2, 1, "_CPPv4N4idol5Model3useERK16OptimizerFactory", "idol::Model::use"], [63, 4, 1, "_CPPv4N4idol5Model3useERK16OptimizerFactory", "idol::Model::use::t_optimizer_factory"], [63, 2, 1, "_CPPv4NK4idol5Model4varsEv", "idol::Model::vars"], [63, 2, 1, "_CPPv4N4idol5Model5writeERKNSt6stringE", "idol::Model::write"], [63, 4, 1, "_CPPv4N4idol5Model5writeERKNSt6stringE", "idol::Model::write::t_name"], [63, 2, 1, "_CPPv4N4idol5ModelD0Ev", "idol::Model::~Model"], [80, 1, 1, "_CPPv4N4idol5MosekE", "idol::Mosek"], [80, 2, 1, "_CPPv4N4idol5Mosek20ContinuousRelaxationEv", "idol::Mosek::ContinuousRelaxation"], [80, 2, 1, "_CPPv4N4idol5Mosek5MosekERK5Mosek", "idol::Mosek::Mosek"], [80, 2, 1, "_CPPv4N4idol5Mosek5MosekERR5Mosek", "idol::Mosek::Mosek"], [80, 2, 1, "_CPPv4N4idol5Mosek5MosekEv", "idol::Mosek::Mosek"], [80, 2, 1, "_CPPv4I0EN4idol5Mosek2asER1Tv", "idol::Mosek::as"], [80, 2, 1, "_CPPv4I0ENK4idol5Mosek2asERK1Tv", "idol::Mosek::as"], [80, 3, 1, "_CPPv4I0EN4idol5Mosek2asER1Tv", "idol::Mosek::as::T"], [80, 3, 1, "_CPPv4I0ENK4idol5Mosek2asERK1Tv", "idol::Mosek::as::T"], [80, 2, 1, "_CPPv4NK4idol5Mosek5cloneEv", "idol::Mosek::clone"], [80, 2, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional"], [80, 2, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEERKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional"], [80, 4, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional::t_conditional_value"], [80, 4, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEERKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional::t_conditional_value"], [80, 4, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEERKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional::t_else"], [80, 4, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional::t_if"], [80, 4, 1, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEERKNSt8functionIFvR5MosekEEE", "idol::Mosek::conditional::t_if"], [80, 2, 1, "_CPPv4I0ENK4idol5Mosek2isEbv", "idol::Mosek::is"], [80, 3, 1, "_CPPv4I0ENK4idol5Mosek2isEbv", "idol::Mosek::is::T"], [80, 2, 1, "_CPPv4NK4idol5MosekclERK5Model", "idol::Mosek::operator()"], [80, 4, 1, "_CPPv4NK4idol5MosekclERK5Model", "idol::Mosek::operator()::t_model"], [80, 2, 1, "_CPPv4N4idol5MosekaSERK5Mosek", "idol::Mosek::operator="], [80, 2, 1, "_CPPv4N4idol5MosekaSERR5Mosek", "idol::Mosek::operator="], [80, 2, 1, "_CPPv4N4idol5Mosek27with_absolute_gap_toleranceEd", "idol::Mosek::with_absolute_gap_tolerance"], [80, 4, 1, "_CPPv4N4idol5Mosek27with_absolute_gap_toleranceEd", "idol::Mosek::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [80, 2, 1, "_CPPv4N4idol5Mosek20with_best_bound_stopEd", "idol::Mosek::with_best_bound_stop"], [80, 4, 1, "_CPPv4N4idol5Mosek20with_best_bound_stopEd", "idol::Mosek::with_best_bound_stop::t_best_bound_stop"], [80, 2, 1, "_CPPv4N4idol5Mosek18with_best_obj_stopEd", "idol::Mosek::with_best_obj_stop"], [80, 4, 1, "_CPPv4N4idol5Mosek18with_best_obj_stopEd", "idol::Mosek::with_best_obj_stop::t_user_best_obj"], [80, 2, 1, "_CPPv4N4idol5Mosek31with_continuous_relaxation_onlyEb", "idol::Mosek::with_continuous_relaxation_only"], [80, 4, 1, "_CPPv4N4idol5Mosek31with_continuous_relaxation_onlyEb", "idol::Mosek::with_continuous_relaxation_only::t_value"], [80, 2, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringENSt6stringE", "idol::Mosek::with_external_parameter"], [80, 2, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEd", "idol::Mosek::with_external_parameter"], [80, 2, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEi", "idol::Mosek::with_external_parameter"], [80, 4, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringENSt6stringE", "idol::Mosek::with_external_parameter::t_param"], [80, 4, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEd", "idol::Mosek::with_external_parameter::t_param"], [80, 4, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEi", "idol::Mosek::with_external_parameter::t_param"], [80, 4, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringENSt6stringE", "idol::Mosek::with_external_parameter::t_value"], [80, 4, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEd", "idol::Mosek::with_external_parameter::t_value"], [80, 4, 1, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEi", "idol::Mosek::with_external_parameter::t_value"], [80, 2, 1, "_CPPv4N4idol5Mosek33with_infeasible_or_unbounded_infoEb", "idol::Mosek::with_infeasible_or_unbounded_info"], [80, 4, 1, "_CPPv4N4idol5Mosek33with_infeasible_or_unbounded_infoEb", "idol::Mosek::with_infeasible_or_unbounded_info::t_value"], [80, 2, 1, "_CPPv4N4idol5Mosek20with_iteration_limitEj", "idol::Mosek::with_iteration_limit"], [80, 4, 1, "_CPPv4N4idol5Mosek20with_iteration_limitEj", "idol::Mosek::with_iteration_limit::t_iteration_count_limit"], [80, 2, 1, "_CPPv4N4idol5Mosek9with_logsEb", "idol::Mosek::with_logs"], [80, 4, 1, "_CPPv4N4idol5Mosek9with_logsEb", "idol::Mosek::with_logs::t_value"], [80, 2, 1, "_CPPv4N4idol5Mosek13with_presolveEb", "idol::Mosek::with_presolve"], [80, 4, 1, "_CPPv4N4idol5Mosek13with_presolveEb", "idol::Mosek::with_presolve::t_value"], [80, 2, 1, "_CPPv4N4idol5Mosek27with_relative_gap_toleranceEd", "idol::Mosek::with_relative_gap_tolerance"], [80, 4, 1, "_CPPv4N4idol5Mosek27with_relative_gap_toleranceEd", "idol::Mosek::with_relative_gap_tolerance::t_relative_gap_tolerance"], [80, 2, 1, "_CPPv4N4idol5Mosek17with_thread_limitEj", "idol::Mosek::with_thread_limit"], [80, 4, 1, "_CPPv4N4idol5Mosek17with_thread_limitEj", "idol::Mosek::with_thread_limit::t_max_n_threads"], [80, 2, 1, "_CPPv4N4idol5Mosek15with_time_limitEd", "idol::Mosek::with_time_limit"], [80, 4, 1, "_CPPv4N4idol5Mosek15with_time_limitEd", "idol::Mosek::with_time_limit::t_time_limit"], [38, 1, 1, "_CPPv4N4idol14MostInfeasibleE", "idol::MostInfeasible"], [38, 2, 1, "_CPPv4I0EN4idol14MostInfeasible14MostInfeasibleE9IteratorT9IteratorT", "idol::MostInfeasible::MostInfeasible"], [38, 2, 1, "_CPPv4N4idol14MostInfeasible14MostInfeasibleEv", "idol::MostInfeasible::MostInfeasible"], [38, 3, 1, "_CPPv4I0EN4idol14MostInfeasible14MostInfeasibleE9IteratorT9IteratorT", "idol::MostInfeasible::MostInfeasible::IteratorT"], [38, 4, 1, "_CPPv4I0EN4idol14MostInfeasible14MostInfeasibleE9IteratorT9IteratorT", "idol::MostInfeasible::MostInfeasible::t_begin"], [38, 4, 1, "_CPPv4I0EN4idol14MostInfeasible14MostInfeasibleE9IteratorT9IteratorT", "idol::MostInfeasible::MostInfeasible::t_end"], [38, 1, 1, "_CPPv4I0EN4idol14MostInfeasible8StrategyE", "idol::MostInfeasible::Strategy"], [38, 3, 1, "_CPPv4I0EN4idol14MostInfeasible8StrategyE", "idol::MostInfeasible::Strategy::NodeInfoT"], [38, 2, 1, "_CPPv4N4idol14MostInfeasible8Strategy8StrategyERK14MostInfeasible", "idol::MostInfeasible::Strategy::Strategy"], [38, 2, 1, "_CPPv4N4idol14MostInfeasible8Strategy8StrategyEv", "idol::MostInfeasible::Strategy::Strategy"], [38, 4, 1, "_CPPv4N4idol14MostInfeasible8Strategy8StrategyERK14MostInfeasible", "idol::MostInfeasible::Strategy::Strategy::t_parent"], [38, 2, 1, "_CPPv4NK4idol14MostInfeasible8Strategy5cloneEv", "idol::MostInfeasible::Strategy::clone"], [38, 2, 1, "_CPPv4NK4idol14MostInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::MostInfeasible::Strategy::operator()"], [38, 2, 1, "_CPPv4NK4idol14MostInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::MostInfeasible::Strategy::operator()"], [38, 4, 1, "_CPPv4NK4idol14MostInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::MostInfeasible::Strategy::operator()::t_parent"], [38, 4, 1, "_CPPv4NK4idol14MostInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::MostInfeasible::Strategy::operator()::t_parent"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent10NodeLoadedE", "idol::NodeLoaded"], [50, 1, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecompositionE", "idol::Optimizers::DantzigWolfeDecomposition"], [50, 1, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGenerationE", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration16ColumnGenerationER25DantzigWolfeDecompositionbd", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::ColumnGeneration"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration16ColumnGenerationER25DantzigWolfeDecompositionbd", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::ColumnGeneration::t_best_bound_stop"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration16ColumnGenerationER25DantzigWolfeDecompositionbd", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::ColumnGeneration::t_parent"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration16ColumnGenerationER25DantzigWolfeDecompositionbd", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::ColumnGeneration::t_use_farkas_for_infeasibility"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration10best_boundEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::best_bound"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration8best_objEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::best_obj"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration7executeEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::execute"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6parentEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::parent"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6parentEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::parent"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration15primal_solutionEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::primal_solution"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6reasonEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::reason"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration19set_best_bound_stopEd", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::set_best_bound_stop"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration19set_best_bound_stopEd", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::set_best_bound_stop::t_best_bound_stop"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6statusEv", "idol::Optimizers::DantzigWolfeDecomposition::ColumnGeneration::status"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_formulation"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_logger_factory"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_master_optimizer_factory"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_max_parallel_pricing"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_model"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_remove_infeasible_columns"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_stabilization"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_strategy"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_sub_problem_specifications"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE", "idol::Optimizers::DantzigWolfeDecomposition::DantzigWolfeDecomposition::t_use_hard_branching"], [50, 2, 1, "_CPPv4I0EN4idol10Optimizers25DantzigWolfeDecomposition2asER1Tv", "idol::Optimizers::DantzigWolfeDecomposition::as"], [50, 2, 1, "_CPPv4I0ENK4idol10Optimizers25DantzigWolfeDecomposition2asERK1Tv", "idol::Optimizers::DantzigWolfeDecomposition::as"], [50, 3, 1, "_CPPv4I0EN4idol10Optimizers25DantzigWolfeDecomposition2asER1Tv", "idol::Optimizers::DantzigWolfeDecomposition::as::T"], [50, 3, 1, "_CPPv4I0ENK4idol10Optimizers25DantzigWolfeDecomposition2asERK1Tv", "idol::Optimizers::DantzigWolfeDecomposition::as::T"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition11formulationEv", "idol::Optimizers::DantzigWolfeDecomposition::formulation"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition11formulationEv", "idol::Optimizers::DantzigWolfeDecomposition::formulation"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16get_absolute_gapEv", "idol::Optimizers::DantzigWolfeDecomposition::get_absolute_gap"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition14get_best_boundEv", "idol::Optimizers::DantzigWolfeDecomposition::get_best_bound"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition12get_best_objEv", "idol::Optimizers::DantzigWolfeDecomposition::get_best_obj"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition25get_param_best_bound_stopEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_best_bound_stop"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition23get_param_best_obj_stopEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_best_obj_stop"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition38get_param_infeasible_or_unbounded_infoEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_infeasible_or_unbounded_info"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition25get_param_iteration_limitEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_iteration_limit"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition14get_param_logsEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_logs"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition18get_param_presolveEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_presolve"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition22get_param_thread_limitEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_thread_limit"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition20get_param_time_limitEv", "idol::Optimizers::DantzigWolfeDecomposition::get_param_time_limit"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition10get_reasonEv", "idol::Optimizers::DantzigWolfeDecomposition::get_reason"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16get_relative_gapEv", "idol::Optimizers::DantzigWolfeDecomposition::get_relative_gap"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition18get_remaining_timeEv", "idol::Optimizers::DantzigWolfeDecomposition::get_remaining_time"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition10get_statusEv", "idol::Optimizers::DantzigWolfeDecomposition::get_status"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition19get_tol_feasibilityEv", "idol::Optimizers::DantzigWolfeDecomposition::get_tol_feasibility"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition15get_tol_integerEv", "idol::Optimizers::DantzigWolfeDecomposition::get_tol_integer"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition24get_tol_mip_absolute_gapEv", "idol::Optimizers::DantzigWolfeDecomposition::get_tol_mip_absolute_gap"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition24get_tol_mip_relative_gapEv", "idol::Optimizers::DantzigWolfeDecomposition::get_tol_mip_relative_gap"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition18get_tol_optimalityEv", "idol::Optimizers::DantzigWolfeDecomposition::get_tol_optimality"], [50, 2, 1, "_CPPv4I0ENK4idol10Optimizers25DantzigWolfeDecomposition2isEbv", "idol::Optimizers::DantzigWolfeDecomposition::is"], [50, 3, 1, "_CPPv4I0ENK4idol10Optimizers25DantzigWolfeDecomposition2isEbv", "idol::Optimizers::DantzigWolfeDecomposition::is::T"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition13is_terminatedEv", "idol::Optimizers::DantzigWolfeDecomposition::is_terminated"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition4nameEv", "idol::Optimizers::DantzigWolfeDecomposition::name"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition6parentEv", "idol::Optimizers::DantzigWolfeDecomposition::parent"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25set_param_best_bound_stopEd", "idol::Optimizers::DantzigWolfeDecomposition::set_param_best_bound_stop"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25set_param_best_bound_stopEd", "idol::Optimizers::DantzigWolfeDecomposition::set_param_best_bound_stop::t_best_bound_stop"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition23set_param_best_obj_stopEd", "idol::Optimizers::DantzigWolfeDecomposition::set_param_best_obj_stop"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition23set_param_best_obj_stopEd", "idol::Optimizers::DantzigWolfeDecomposition::set_param_best_obj_stop::t_best_obj_stop"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::DantzigWolfeDecomposition::set_param_infeasible_or_unbounded_info"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::DantzigWolfeDecomposition::set_param_infeasible_or_unbounded_info::t_value"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25set_param_iteration_limitEj", "idol::Optimizers::DantzigWolfeDecomposition::set_param_iteration_limit"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25set_param_iteration_limitEj", "idol::Optimizers::DantzigWolfeDecomposition::set_param_iteration_limit::t_iteration_limit"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition14set_param_logsEb", "idol::Optimizers::DantzigWolfeDecomposition::set_param_logs"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition14set_param_logsEb", "idol::Optimizers::DantzigWolfeDecomposition::set_param_logs::t_value"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition18set_param_presolveEb", "idol::Optimizers::DantzigWolfeDecomposition::set_param_presolve"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition18set_param_presolveEb", "idol::Optimizers::DantzigWolfeDecomposition::set_param_presolve::t_value"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition17set_param_threadsEj", "idol::Optimizers::DantzigWolfeDecomposition::set_param_threads"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition17set_param_threadsEj", "idol::Optimizers::DantzigWolfeDecomposition::set_param_threads::t_threads"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition20set_param_time_limitEd", "idol::Optimizers::DantzigWolfeDecomposition::set_param_time_limit"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition20set_param_time_limitEd", "idol::Optimizers::DantzigWolfeDecomposition::set_param_time_limit::t_time_limit"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition19set_tol_feasibilityEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_feasibility"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition19set_tol_feasibilityEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_feasibility::t_tol_feasibility"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition15set_tol_integerEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_integer"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition15set_tol_integerEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_integer::t_tol_integer"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition24set_tol_mip_absolute_gapEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_mip_absolute_gap"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition24set_tol_mip_absolute_gapEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_mip_absolute_gap::t_mip_tol_absolute_gap"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition24set_tol_mip_relative_gapEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_mip_relative_gap"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition24set_tol_mip_relative_gapEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_mip_relative_gap::t_tol_mip_relative_gap"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition18set_tol_optimalityEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_optimality"], [50, 4, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition18set_tol_optimalityEd", "idol::Optimizers::DantzigWolfeDecomposition::set_tol_optimality::t_tol_optimality"], [50, 2, 1, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition9terminateEv", "idol::Optimizers::DantzigWolfeDecomposition::terminate"], [50, 2, 1, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition4timeEv", "idol::Optimizers::DantzigWolfeDecomposition::time"], [81, 1, 1, "_CPPv4N4idol10Optimizers4GLPKE", "idol::Optimizers::GLPK"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK4GLPKERK5Modelb", "idol::Optimizers::GLPK::GLPK"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK4GLPKERK5Modelb", "idol::Optimizers::GLPK::GLPK::t_continuous_relaxation"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK4GLPKERK5Modelb", "idol::Optimizers::GLPK::GLPK::t_model"], [81, 2, 1, "_CPPv4I0EN4idol10Optimizers4GLPK2asER1Tv", "idol::Optimizers::GLPK::as"], [81, 2, 1, "_CPPv4I0ENK4idol10Optimizers4GLPK2asERK1Tv", "idol::Optimizers::GLPK::as"], [81, 3, 1, "_CPPv4I0EN4idol10Optimizers4GLPK2asER1Tv", "idol::Optimizers::GLPK::as::T"], [81, 3, 1, "_CPPv4I0ENK4idol10Optimizers4GLPK2asERK1Tv", "idol::Optimizers::GLPK::as::T"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK25get_param_best_bound_stopEv", "idol::Optimizers::GLPK::get_param_best_bound_stop"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK23get_param_best_obj_stopEv", "idol::Optimizers::GLPK::get_param_best_obj_stop"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK38get_param_infeasible_or_unbounded_infoEv", "idol::Optimizers::GLPK::get_param_infeasible_or_unbounded_info"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK25get_param_iteration_limitEv", "idol::Optimizers::GLPK::get_param_iteration_limit"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK14get_param_logsEv", "idol::Optimizers::GLPK::get_param_logs"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK18get_param_presolveEv", "idol::Optimizers::GLPK::get_param_presolve"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK22get_param_thread_limitEv", "idol::Optimizers::GLPK::get_param_thread_limit"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK20get_param_time_limitEv", "idol::Optimizers::GLPK::get_param_time_limit"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK18get_remaining_timeEv", "idol::Optimizers::GLPK::get_remaining_time"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK19get_tol_feasibilityEv", "idol::Optimizers::GLPK::get_tol_feasibility"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK15get_tol_integerEv", "idol::Optimizers::GLPK::get_tol_integer"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK24get_tol_mip_absolute_gapEv", "idol::Optimizers::GLPK::get_tol_mip_absolute_gap"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK24get_tol_mip_relative_gapEv", "idol::Optimizers::GLPK::get_tol_mip_relative_gap"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK18get_tol_optimalityEv", "idol::Optimizers::GLPK::get_tol_optimality"], [81, 2, 1, "_CPPv4I0ENK4idol10Optimizers4GLPK2isEbv", "idol::Optimizers::GLPK::is"], [81, 3, 1, "_CPPv4I0ENK4idol10Optimizers4GLPK2isEbv", "idol::Optimizers::GLPK::is::T"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK13is_terminatedEv", "idol::Optimizers::GLPK::is_terminated"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK4nameEv", "idol::Optimizers::GLPK::name"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPKixERK3Ctr", "idol::Optimizers::GLPK::operator[]"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPKixERK3Var", "idol::Optimizers::GLPK::operator[]"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPKixERK3Ctr", "idol::Optimizers::GLPK::operator[]"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPKixERK3Var", "idol::Optimizers::GLPK::operator[]"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPKixERK3Ctr", "idol::Optimizers::GLPK::operator[]::t_ctr"], [81, 4, 1, "_CPPv4NK4idol10Optimizers4GLPKixERK3Ctr", "idol::Optimizers::GLPK::operator[]::t_ctr"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPKixERK3Var", "idol::Optimizers::GLPK::operator[]::t_var"], [81, 4, 1, "_CPPv4NK4idol10Optimizers4GLPKixERK3Var", "idol::Optimizers::GLPK::operator[]::t_var"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK6parentEv", "idol::Optimizers::GLPK::parent"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK14read_from_fileER3EnvRKNSt6stringE", "idol::Optimizers::GLPK::read_from_file"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK14read_from_fileER3EnvRKNSt6stringE", "idol::Optimizers::GLPK::read_from_file::t_env"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK14read_from_fileER3EnvRKNSt6stringE", "idol::Optimizers::GLPK::read_from_file::t_filename"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK25set_param_best_bound_stopEd", "idol::Optimizers::GLPK::set_param_best_bound_stop"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK25set_param_best_bound_stopEd", "idol::Optimizers::GLPK::set_param_best_bound_stop::t_best_bound_stop"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK23set_param_best_obj_stopEd", "idol::Optimizers::GLPK::set_param_best_obj_stop"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK23set_param_best_obj_stopEd", "idol::Optimizers::GLPK::set_param_best_obj_stop::t_best_obj_stop"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::GLPK::set_param_infeasible_or_unbounded_info"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::GLPK::set_param_infeasible_or_unbounded_info::t_value"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK25set_param_iteration_limitEj", "idol::Optimizers::GLPK::set_param_iteration_limit"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK25set_param_iteration_limitEj", "idol::Optimizers::GLPK::set_param_iteration_limit::t_iteration_limit"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK14set_param_logsEb", "idol::Optimizers::GLPK::set_param_logs"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK14set_param_logsEb", "idol::Optimizers::GLPK::set_param_logs::t_value"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK18set_param_presolveEb", "idol::Optimizers::GLPK::set_param_presolve"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK18set_param_presolveEb", "idol::Optimizers::GLPK::set_param_presolve::t_value"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK17set_param_threadsEj", "idol::Optimizers::GLPK::set_param_threads"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK17set_param_threadsEj", "idol::Optimizers::GLPK::set_param_threads::t_threads"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK20set_param_time_limitEd", "idol::Optimizers::GLPK::set_param_time_limit"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK20set_param_time_limitEd", "idol::Optimizers::GLPK::set_param_time_limit::t_time_limit"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK19set_tol_feasibilityEd", "idol::Optimizers::GLPK::set_tol_feasibility"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK19set_tol_feasibilityEd", "idol::Optimizers::GLPK::set_tol_feasibility::t_tol_feasibility"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK15set_tol_integerEd", "idol::Optimizers::GLPK::set_tol_integer"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK15set_tol_integerEd", "idol::Optimizers::GLPK::set_tol_integer::t_tol_integer"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK24set_tol_mip_absolute_gapEd", "idol::Optimizers::GLPK::set_tol_mip_absolute_gap"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK24set_tol_mip_absolute_gapEd", "idol::Optimizers::GLPK::set_tol_mip_absolute_gap::t_mip_tol_absolute_gap"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK24set_tol_mip_relative_gapEd", "idol::Optimizers::GLPK::set_tol_mip_relative_gap"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK24set_tol_mip_relative_gapEd", "idol::Optimizers::GLPK::set_tol_mip_relative_gap::t_tol_mip_relative_gap"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK18set_tol_optimalityEd", "idol::Optimizers::GLPK::set_tol_optimality"], [81, 4, 1, "_CPPv4N4idol10Optimizers4GLPK18set_tol_optimalityEd", "idol::Optimizers::GLPK::set_tol_optimality::t_tol_optimality"], [81, 2, 1, "_CPPv4N4idol10Optimizers4GLPK9terminateEv", "idol::Optimizers::GLPK::terminate"], [81, 2, 1, "_CPPv4NK4idol10Optimizers4GLPK4timeEv", "idol::Optimizers::GLPK::time"], [82, 1, 1, "_CPPv4N4idol10Optimizers6GurobiE", "idol::Optimizers::Gurobi"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5Modelb", "idol::Optimizers::Gurobi::Gurobi"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5ModelbR6GRBEnv", "idol::Optimizers::Gurobi::Gurobi"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5Modelb", "idol::Optimizers::Gurobi::Gurobi::t_continuous_relaxation"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5ModelbR6GRBEnv", "idol::Optimizers::Gurobi::Gurobi::t_continuous_relaxation"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5ModelbR6GRBEnv", "idol::Optimizers::Gurobi::Gurobi::t_env"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5Modelb", "idol::Optimizers::Gurobi::Gurobi::t_model"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5ModelbR6GRBEnv", "idol::Optimizers::Gurobi::Gurobi::t_model"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi12add_callbackEP8Callback", "idol::Optimizers::Gurobi::add_callback"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi12add_callbackEP8Callback", "idol::Optimizers::Gurobi::add_callback::t_ptr_to_callback"], [82, 2, 1, "_CPPv4I0EN4idol10Optimizers6Gurobi2asER1Tv", "idol::Optimizers::Gurobi::as"], [82, 2, 1, "_CPPv4I0ENK4idol10Optimizers6Gurobi2asERK1Tv", "idol::Optimizers::Gurobi::as"], [82, 3, 1, "_CPPv4I0EN4idol10Optimizers6Gurobi2asER1Tv", "idol::Optimizers::Gurobi::as::T"], [82, 3, 1, "_CPPv4I0ENK4idol10Optimizers6Gurobi2asERK1Tv", "idol::Optimizers::Gurobi::as::T"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi3envEv", "idol::Optimizers::Gurobi::env"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi3envEv", "idol::Optimizers::Gurobi::env"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi25get_param_best_bound_stopEv", "idol::Optimizers::Gurobi::get_param_best_bound_stop"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi23get_param_best_obj_stopEv", "idol::Optimizers::Gurobi::get_param_best_obj_stop"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi38get_param_infeasible_or_unbounded_infoEv", "idol::Optimizers::Gurobi::get_param_infeasible_or_unbounded_info"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi25get_param_iteration_limitEv", "idol::Optimizers::Gurobi::get_param_iteration_limit"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi14get_param_logsEv", "idol::Optimizers::Gurobi::get_param_logs"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi18get_param_presolveEv", "idol::Optimizers::Gurobi::get_param_presolve"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi22get_param_thread_limitEv", "idol::Optimizers::Gurobi::get_param_thread_limit"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi20get_param_time_limitEv", "idol::Optimizers::Gurobi::get_param_time_limit"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi18get_remaining_timeEv", "idol::Optimizers::Gurobi::get_remaining_time"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi19get_tol_feasibilityEv", "idol::Optimizers::Gurobi::get_tol_feasibility"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi15get_tol_integerEv", "idol::Optimizers::Gurobi::get_tol_integer"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi24get_tol_mip_absolute_gapEv", "idol::Optimizers::Gurobi::get_tol_mip_absolute_gap"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi24get_tol_mip_relative_gapEv", "idol::Optimizers::Gurobi::get_tol_mip_relative_gap"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi18get_tol_optimalityEv", "idol::Optimizers::Gurobi::get_tol_optimality"], [82, 2, 1, "_CPPv4I0ENK4idol10Optimizers6Gurobi2isEbv", "idol::Optimizers::Gurobi::is"], [82, 3, 1, "_CPPv4I0ENK4idol10Optimizers6Gurobi2isEbv", "idol::Optimizers::Gurobi::is::T"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi13is_terminatedEv", "idol::Optimizers::Gurobi::is_terminated"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi5modelEv", "idol::Optimizers::Gurobi::model"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi5modelEv", "idol::Optimizers::Gurobi::model"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi4nameEv", "idol::Optimizers::Gurobi::name"], [82, 2, 1, "_CPPv4N4idol10Optimizers6GurobiixERK3Ctr", "idol::Optimizers::Gurobi::operator[]"], [82, 2, 1, "_CPPv4N4idol10Optimizers6GurobiixERK3Var", "idol::Optimizers::Gurobi::operator[]"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6GurobiixERK3Ctr", "idol::Optimizers::Gurobi::operator[]"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6GurobiixERK3Var", "idol::Optimizers::Gurobi::operator[]"], [82, 4, 1, "_CPPv4N4idol10Optimizers6GurobiixERK3Ctr", "idol::Optimizers::Gurobi::operator[]::t_ctr"], [82, 4, 1, "_CPPv4NK4idol10Optimizers6GurobiixERK3Ctr", "idol::Optimizers::Gurobi::operator[]::t_ctr"], [82, 4, 1, "_CPPv4N4idol10Optimizers6GurobiixERK3Var", "idol::Optimizers::Gurobi::operator[]::t_var"], [82, 4, 1, "_CPPv4NK4idol10Optimizers6GurobiixERK3Var", "idol::Optimizers::Gurobi::operator[]::t_var"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi6parentEv", "idol::Optimizers::Gurobi::parent"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi14read_from_fileER3EnvRKNSt6stringE", "idol::Optimizers::Gurobi::read_from_file"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi14read_from_fileER3EnvRKNSt6stringE", "idol::Optimizers::Gurobi::read_from_file::t_env"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi14read_from_fileER3EnvRKNSt6stringE", "idol::Optimizers::Gurobi::read_from_file::t_filename"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi12set_lazy_cutEb", "idol::Optimizers::Gurobi::set_lazy_cut"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi12set_lazy_cutEb", "idol::Optimizers::Gurobi::set_lazy_cut::t_value"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi26set_max_n_solution_in_poolEj", "idol::Optimizers::Gurobi::set_max_n_solution_in_pool"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi26set_max_n_solution_in_poolEj", "idol::Optimizers::Gurobi::set_max_n_solution_in_pool::t_value"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE12GRB_IntParami", "idol::Optimizers::Gurobi::set_param"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE15GRB_DoubleParamd", "idol::Optimizers::Gurobi::set_param"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE12GRB_IntParami", "idol::Optimizers::Gurobi::set_param::t_param"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE15GRB_DoubleParamd", "idol::Optimizers::Gurobi::set_param::t_param"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE12GRB_IntParami", "idol::Optimizers::Gurobi::set_param::t_value"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE15GRB_DoubleParamd", "idol::Optimizers::Gurobi::set_param::t_value"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi25set_param_best_bound_stopEd", "idol::Optimizers::Gurobi::set_param_best_bound_stop"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi25set_param_best_bound_stopEd", "idol::Optimizers::Gurobi::set_param_best_bound_stop::t_best_bound_stop"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi23set_param_best_obj_stopEd", "idol::Optimizers::Gurobi::set_param_best_obj_stop"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi23set_param_best_obj_stopEd", "idol::Optimizers::Gurobi::set_param_best_obj_stop::t_best_obj_stop"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::Gurobi::set_param_infeasible_or_unbounded_info"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::Gurobi::set_param_infeasible_or_unbounded_info::t_value"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi25set_param_iteration_limitEj", "idol::Optimizers::Gurobi::set_param_iteration_limit"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi25set_param_iteration_limitEj", "idol::Optimizers::Gurobi::set_param_iteration_limit::t_iteration_limit"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi14set_param_logsEb", "idol::Optimizers::Gurobi::set_param_logs"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi14set_param_logsEb", "idol::Optimizers::Gurobi::set_param_logs::t_value"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi18set_param_presolveEb", "idol::Optimizers::Gurobi::set_param_presolve"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi18set_param_presolveEb", "idol::Optimizers::Gurobi::set_param_presolve::t_value"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi17set_param_threadsEj", "idol::Optimizers::Gurobi::set_param_threads"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi17set_param_threadsEj", "idol::Optimizers::Gurobi::set_param_threads::t_thread_limit"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi20set_param_time_limitEd", "idol::Optimizers::Gurobi::set_param_time_limit"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi20set_param_time_limitEd", "idol::Optimizers::Gurobi::set_param_time_limit::t_time_limit"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi19set_tol_feasibilityEd", "idol::Optimizers::Gurobi::set_tol_feasibility"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi19set_tol_feasibilityEd", "idol::Optimizers::Gurobi::set_tol_feasibility::t_tol_feasibility"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi15set_tol_integerEd", "idol::Optimizers::Gurobi::set_tol_integer"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi15set_tol_integerEd", "idol::Optimizers::Gurobi::set_tol_integer::t_tol_integer"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi24set_tol_mip_absolute_gapEd", "idol::Optimizers::Gurobi::set_tol_mip_absolute_gap"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi24set_tol_mip_absolute_gapEd", "idol::Optimizers::Gurobi::set_tol_mip_absolute_gap::t_absolute_gap_tolerance"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi24set_tol_mip_relative_gapEd", "idol::Optimizers::Gurobi::set_tol_mip_relative_gap"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi24set_tol_mip_relative_gapEd", "idol::Optimizers::Gurobi::set_tol_mip_relative_gap::t_relative_gap_tolerance"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi18set_tol_optimalityEd", "idol::Optimizers::Gurobi::set_tol_optimality"], [82, 4, 1, "_CPPv4N4idol10Optimizers6Gurobi18set_tol_optimalityEd", "idol::Optimizers::Gurobi::set_tol_optimality::t_tol_optimality"], [82, 2, 1, "_CPPv4N4idol10Optimizers6Gurobi9terminateEv", "idol::Optimizers::Gurobi::terminate"], [82, 2, 1, "_CPPv4NK4idol10Optimizers6Gurobi4timeEv", "idol::Optimizers::Gurobi::time"], [44, 1, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGenerationE", "idol::Optimizers::Robust::ColumnAndConstraintGeneration"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_complete_recourse"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_lower_level_constraints"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_lower_level_variables"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_master_optimizer"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_parent"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_separator"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_stabilizer"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_uncertainty_set"], [44, 2, 1, "_CPPv4I0EN4idol10Optimizers6Robust29ColumnAndConstraintGeneration2asER1Tv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::as"], [44, 2, 1, "_CPPv4I0ENK4idol10Optimizers6Robust29ColumnAndConstraintGeneration2asERK1Tv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::as"], [44, 3, 1, "_CPPv4I0EN4idol10Optimizers6Robust29ColumnAndConstraintGeneration2asER1Tv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::as::T"], [44, 3, 1, "_CPPv4I0ENK4idol10Optimizers6Robust29ColumnAndConstraintGeneration2asERK1Tv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::as::T"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration17complete_recourseEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::complete_recourse"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration16get_absolute_gapEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_absolute_gap"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_best_boundEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_best_bound"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12get_best_objEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_best_obj"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12get_ctr_dualERK3Ctr", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_ctr_dual"], [44, 4, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12get_ctr_dualERK3Ctr", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_ctr_dual::t_ctr"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_ctr_farkasERK3Ctr", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_ctr_farkas"], [44, 4, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_ctr_farkasERK3Ctr", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_ctr_farkas::t_ctr"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration15get_n_solutionsEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_n_solutions"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration25get_param_best_bound_stopEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_best_bound_stop"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration23get_param_best_obj_stopEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_best_obj_stop"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration38get_param_infeasible_or_unbounded_infoEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_infeasible_or_unbounded_info"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration25get_param_iteration_limitEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_iteration_limit"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_param_logsEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_logs"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_param_presolveEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_presolve"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration22get_param_thread_limitEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_thread_limit"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration20get_param_time_limitEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_param_time_limit"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration10get_reasonEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_reason"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration16get_relative_gapEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_relative_gap"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_remaining_timeEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_remaining_time"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_solution_indexEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_solution_index"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration10get_statusEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_status"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration19get_tol_feasibilityEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_tol_feasibility"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration15get_tol_integerEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_tol_integer"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration24get_tol_mip_absolute_gapEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_tol_mip_absolute_gap"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration24get_tol_mip_relative_gapEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_tol_mip_relative_gap"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_tol_optimalityEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_tol_optimality"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_var_primalERK3Var", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_var_primal"], [44, 4, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_var_primalERK3Var", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_var_primal::t_var"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration11get_var_rayERK3Var", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_var_ray"], [44, 4, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration11get_var_rayERK3Var", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_var_ray::t_var"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration20get_var_reduced_costERK3Var", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_var_reduced_cost"], [44, 4, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration20get_var_reduced_costERK3Var", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::get_var_reduced_cost::t_var"], [44, 2, 1, "_CPPv4I0ENK4idol10Optimizers6Robust29ColumnAndConstraintGeneration2isEbv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::is"], [44, 3, 1, "_CPPv4I0ENK4idol10Optimizers6Robust29ColumnAndConstraintGeneration2isEbv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::is::T"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration13is_terminatedEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::is_terminated"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration23lower_level_constraintsEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::lower_level_constraints"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration21lower_level_variablesEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::lower_level_variables"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14master_problemEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::master_problem"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12n_iterationsEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::n_iterations"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration4nameEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::name"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration6parentEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::parent"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration25set_param_best_bound_stopEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_best_bound_stop"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration25set_param_best_bound_stopEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_best_bound_stop::t_best_bound_stop"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration23set_param_best_obj_stopEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_best_obj_stop"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration23set_param_best_obj_stopEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_best_obj_stop::t_best_obj_stop"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_infeasible_or_unbounded_info"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration38set_param_infeasible_or_unbounded_infoEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_infeasible_or_unbounded_info::t_value"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration25set_param_iteration_limitEj", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_iteration_limit"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration25set_param_iteration_limitEj", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_iteration_limit::t_iteration_limit"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration14set_param_logsEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_logs"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration14set_param_logsEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_logs::t_value"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration18set_param_presolveEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_presolve"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration18set_param_presolveEb", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_presolve::t_value"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration17set_param_threadsEj", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_threads"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration17set_param_threadsEj", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_threads::t_threads"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration20set_param_time_limitEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_time_limit"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration20set_param_time_limitEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_param_time_limit::t_time_limit"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration19set_tol_feasibilityEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_feasibility"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration19set_tol_feasibilityEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_feasibility::t_tol_feasibility"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration15set_tol_integerEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_integer"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration15set_tol_integerEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_integer::t_tol_integer"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration24set_tol_mip_absolute_gapEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_mip_absolute_gap"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration24set_tol_mip_absolute_gapEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_mip_absolute_gap::t_mip_tol_absolute_gap"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration24set_tol_mip_relative_gapEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_mip_relative_gap"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration24set_tol_mip_relative_gapEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_mip_relative_gap::t_tol_mip_relative_gap"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration18set_tol_optimalityEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_optimality"], [44, 4, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration18set_tol_optimalityEd", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::set_tol_optimality::t_tol_optimality"], [44, 2, 1, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration9terminateEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::terminate"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration4timeEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::time"], [44, 2, 1, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration15uncertainty_setEv", "idol::Optimizers::Robust::ColumnAndConstraintGeneration::uncertainty_set"], [89, 1, 1, "_CPPv4N4idol3OsiE", "idol::Osi"], [89, 2, 1, "_CPPv4N4idol3Osi20ContinuousRelaxationERK18OsiSolverInterface", "idol::Osi::ContinuousRelaxation"], [89, 4, 1, "_CPPv4N4idol3Osi20ContinuousRelaxationERK18OsiSolverInterface", "idol::Osi::ContinuousRelaxation::t_solver_interface"], [89, 2, 1, "_CPPv4N4idol3Osi3OsiERK18OsiSolverInterface", "idol::Osi::Osi"], [89, 2, 1, "_CPPv4N4idol3Osi3OsiERK3Osi", "idol::Osi::Osi"], [89, 2, 1, "_CPPv4N4idol3Osi3OsiERR3Osi", "idol::Osi::Osi"], [89, 4, 1, "_CPPv4N4idol3Osi3OsiERK18OsiSolverInterface", "idol::Osi::Osi::t_solver_interface"], [89, 4, 1, "_CPPv4N4idol3Osi3OsiERK3Osi", "idol::Osi::Osi::t_src"], [89, 2, 1, "_CPPv4I0EN4idol3Osi2asER1Tv", "idol::Osi::as"], [89, 2, 1, "_CPPv4I0ENK4idol3Osi2asERK1Tv", "idol::Osi::as"], [89, 3, 1, "_CPPv4I0EN4idol3Osi2asER1Tv", "idol::Osi::as::T"], [89, 3, 1, "_CPPv4I0ENK4idol3Osi2asERK1Tv", "idol::Osi::as::T"], [89, 2, 1, "_CPPv4NK4idol3Osi5cloneEv", "idol::Osi::clone"], [89, 2, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional"], [89, 2, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional"], [89, 4, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional::t_conditional_value"], [89, 4, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional::t_conditional_value"], [89, 4, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional::t_else"], [89, 4, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional::t_if"], [89, 4, 1, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::Osi::conditional::t_if"], [89, 2, 1, "_CPPv4NK4idol3Osi27create_osi_solver_interfaceEv", "idol::Osi::create_osi_solver_interface"], [89, 2, 1, "_CPPv4I0ENK4idol3Osi2isEbv", "idol::Osi::is"], [89, 3, 1, "_CPPv4I0ENK4idol3Osi2isEbv", "idol::Osi::is::T"], [89, 2, 1, "_CPPv4NK4idol3OsiclERK5Model", "idol::Osi::operator()"], [89, 4, 1, "_CPPv4NK4idol3OsiclERK5Model", "idol::Osi::operator()::t_model"], [89, 2, 1, "_CPPv4N4idol3OsiaSERK3Osi", "idol::Osi::operator="], [89, 2, 1, "_CPPv4N4idol3OsiaSERR3Osi", "idol::Osi::operator="], [89, 2, 1, "_CPPv4N4idol3Osi27with_absolute_gap_toleranceEd", "idol::Osi::with_absolute_gap_tolerance"], [89, 4, 1, "_CPPv4N4idol3Osi27with_absolute_gap_toleranceEd", "idol::Osi::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [89, 2, 1, "_CPPv4N4idol3Osi20with_best_bound_stopEd", "idol::Osi::with_best_bound_stop"], [89, 4, 1, "_CPPv4N4idol3Osi20with_best_bound_stopEd", "idol::Osi::with_best_bound_stop::t_best_bound_stop"], [89, 2, 1, "_CPPv4N4idol3Osi18with_best_obj_stopEd", "idol::Osi::with_best_obj_stop"], [89, 4, 1, "_CPPv4N4idol3Osi18with_best_obj_stopEd", "idol::Osi::with_best_obj_stop::t_user_best_obj"], [89, 2, 1, "_CPPv4N4idol3Osi33with_infeasible_or_unbounded_infoEb", "idol::Osi::with_infeasible_or_unbounded_info"], [89, 4, 1, "_CPPv4N4idol3Osi33with_infeasible_or_unbounded_infoEb", "idol::Osi::with_infeasible_or_unbounded_info::t_value"], [89, 2, 1, "_CPPv4N4idol3Osi20with_iteration_limitEj", "idol::Osi::with_iteration_limit"], [89, 4, 1, "_CPPv4N4idol3Osi20with_iteration_limitEj", "idol::Osi::with_iteration_limit::t_iteration_count_limit"], [89, 2, 1, "_CPPv4N4idol3Osi9with_logsEb", "idol::Osi::with_logs"], [89, 4, 1, "_CPPv4N4idol3Osi9with_logsEb", "idol::Osi::with_logs::t_value"], [89, 2, 1, "_CPPv4N4idol3Osi13with_presolveEb", "idol::Osi::with_presolve"], [89, 4, 1, "_CPPv4N4idol3Osi13with_presolveEb", "idol::Osi::with_presolve::t_value"], [89, 2, 1, "_CPPv4N4idol3Osi27with_relative_gap_toleranceEd", "idol::Osi::with_relative_gap_tolerance"], [89, 4, 1, "_CPPv4N4idol3Osi27with_relative_gap_toleranceEd", "idol::Osi::with_relative_gap_tolerance::t_relative_gap_tolerance"], [89, 2, 1, "_CPPv4N4idol3Osi17with_thread_limitEj", "idol::Osi::with_thread_limit"], [89, 4, 1, "_CPPv4N4idol3Osi17with_thread_limitEj", "idol::Osi::with_thread_limit::t_max_n_threads"], [89, 2, 1, "_CPPv4N4idol3Osi15with_time_limitEd", "idol::Osi::with_time_limit"], [89, 4, 1, "_CPPv4N4idol3Osi15with_time_limitEd", "idol::Osi::with_time_limit::t_time_limit"], [85, 1, 1, "_CPPv4N4idol6OsiCbcE", "idol::OsiCbc"], [85, 2, 1, "_CPPv4N4idol6OsiCbc20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiCbc::ContinuousRelaxation"], [85, 4, 1, "_CPPv4N4idol6OsiCbc20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiCbc::ContinuousRelaxation::t_solver_interface"], [85, 2, 1, "_CPPv4I0EN4idol6OsiCbc2asER1Tv", "idol::OsiCbc::as"], [85, 2, 1, "_CPPv4I0ENK4idol6OsiCbc2asERK1Tv", "idol::OsiCbc::as"], [85, 3, 1, "_CPPv4I0EN4idol6OsiCbc2asER1Tv", "idol::OsiCbc::as::T"], [85, 3, 1, "_CPPv4I0ENK4idol6OsiCbc2asERK1Tv", "idol::OsiCbc::as::T"], [85, 2, 1, "_CPPv4NK4idol6OsiCbc5cloneEv", "idol::OsiCbc::clone"], [85, 2, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional"], [85, 2, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional"], [85, 4, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional::t_conditional_value"], [85, 4, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional::t_conditional_value"], [85, 4, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional::t_else"], [85, 4, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional::t_if"], [85, 4, 1, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCbc::conditional::t_if"], [85, 2, 1, "_CPPv4NK4idol6OsiCbc27create_osi_solver_interfaceEv", "idol::OsiCbc::create_osi_solver_interface"], [85, 2, 1, "_CPPv4I0ENK4idol6OsiCbc2isEbv", "idol::OsiCbc::is"], [85, 3, 1, "_CPPv4I0ENK4idol6OsiCbc2isEbv", "idol::OsiCbc::is::T"], [85, 2, 1, "_CPPv4NK4idol6OsiCbcclERK5Model", "idol::OsiCbc::operator()"], [85, 4, 1, "_CPPv4NK4idol6OsiCbcclERK5Model", "idol::OsiCbc::operator()::t_model"], [85, 2, 1, "_CPPv4N4idol6OsiCbc27with_absolute_gap_toleranceEd", "idol::OsiCbc::with_absolute_gap_tolerance"], [85, 4, 1, "_CPPv4N4idol6OsiCbc27with_absolute_gap_toleranceEd", "idol::OsiCbc::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [85, 2, 1, "_CPPv4N4idol6OsiCbc20with_best_bound_stopEd", "idol::OsiCbc::with_best_bound_stop"], [85, 4, 1, "_CPPv4N4idol6OsiCbc20with_best_bound_stopEd", "idol::OsiCbc::with_best_bound_stop::t_best_bound_stop"], [85, 2, 1, "_CPPv4N4idol6OsiCbc18with_best_obj_stopEd", "idol::OsiCbc::with_best_obj_stop"], [85, 4, 1, "_CPPv4N4idol6OsiCbc18with_best_obj_stopEd", "idol::OsiCbc::with_best_obj_stop::t_user_best_obj"], [85, 2, 1, "_CPPv4N4idol6OsiCbc33with_infeasible_or_unbounded_infoEb", "idol::OsiCbc::with_infeasible_or_unbounded_info"], [85, 4, 1, "_CPPv4N4idol6OsiCbc33with_infeasible_or_unbounded_infoEb", "idol::OsiCbc::with_infeasible_or_unbounded_info::t_value"], [85, 2, 1, "_CPPv4N4idol6OsiCbc20with_iteration_limitEj", "idol::OsiCbc::with_iteration_limit"], [85, 4, 1, "_CPPv4N4idol6OsiCbc20with_iteration_limitEj", "idol::OsiCbc::with_iteration_limit::t_iteration_count_limit"], [85, 2, 1, "_CPPv4N4idol6OsiCbc9with_logsEb", "idol::OsiCbc::with_logs"], [85, 4, 1, "_CPPv4N4idol6OsiCbc9with_logsEb", "idol::OsiCbc::with_logs::t_value"], [85, 2, 1, "_CPPv4N4idol6OsiCbc13with_presolveEb", "idol::OsiCbc::with_presolve"], [85, 4, 1, "_CPPv4N4idol6OsiCbc13with_presolveEb", "idol::OsiCbc::with_presolve::t_value"], [85, 2, 1, "_CPPv4N4idol6OsiCbc27with_relative_gap_toleranceEd", "idol::OsiCbc::with_relative_gap_tolerance"], [85, 4, 1, "_CPPv4N4idol6OsiCbc27with_relative_gap_toleranceEd", "idol::OsiCbc::with_relative_gap_tolerance::t_relative_gap_tolerance"], [85, 2, 1, "_CPPv4N4idol6OsiCbc17with_thread_limitEj", "idol::OsiCbc::with_thread_limit"], [85, 4, 1, "_CPPv4N4idol6OsiCbc17with_thread_limitEj", "idol::OsiCbc::with_thread_limit::t_max_n_threads"], [85, 2, 1, "_CPPv4N4idol6OsiCbc15with_time_limitEd", "idol::OsiCbc::with_time_limit"], [85, 4, 1, "_CPPv4N4idol6OsiCbc15with_time_limitEd", "idol::OsiCbc::with_time_limit::t_time_limit"], [86, 1, 1, "_CPPv4N4idol6OsiClpE", "idol::OsiClp"], [86, 2, 1, "_CPPv4N4idol6OsiClp20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiClp::ContinuousRelaxation"], [86, 4, 1, "_CPPv4N4idol6OsiClp20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiClp::ContinuousRelaxation::t_solver_interface"], [86, 2, 1, "_CPPv4I0EN4idol6OsiClp2asER1Tv", "idol::OsiClp::as"], [86, 2, 1, "_CPPv4I0ENK4idol6OsiClp2asERK1Tv", "idol::OsiClp::as"], [86, 3, 1, "_CPPv4I0EN4idol6OsiClp2asER1Tv", "idol::OsiClp::as::T"], [86, 3, 1, "_CPPv4I0ENK4idol6OsiClp2asERK1Tv", "idol::OsiClp::as::T"], [86, 2, 1, "_CPPv4NK4idol6OsiClp5cloneEv", "idol::OsiClp::clone"], [86, 2, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional"], [86, 2, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional"], [86, 4, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional::t_conditional_value"], [86, 4, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional::t_conditional_value"], [86, 4, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional::t_else"], [86, 4, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional::t_if"], [86, 4, 1, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiClp::conditional::t_if"], [86, 2, 1, "_CPPv4NK4idol6OsiClp27create_osi_solver_interfaceEv", "idol::OsiClp::create_osi_solver_interface"], [86, 2, 1, "_CPPv4I0ENK4idol6OsiClp2isEbv", "idol::OsiClp::is"], [86, 3, 1, "_CPPv4I0ENK4idol6OsiClp2isEbv", "idol::OsiClp::is::T"], [86, 2, 1, "_CPPv4NK4idol6OsiClpclERK5Model", "idol::OsiClp::operator()"], [86, 4, 1, "_CPPv4NK4idol6OsiClpclERK5Model", "idol::OsiClp::operator()::t_model"], [86, 2, 1, "_CPPv4N4idol6OsiClp27with_absolute_gap_toleranceEd", "idol::OsiClp::with_absolute_gap_tolerance"], [86, 4, 1, "_CPPv4N4idol6OsiClp27with_absolute_gap_toleranceEd", "idol::OsiClp::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [86, 2, 1, "_CPPv4N4idol6OsiClp20with_best_bound_stopEd", "idol::OsiClp::with_best_bound_stop"], [86, 4, 1, "_CPPv4N4idol6OsiClp20with_best_bound_stopEd", "idol::OsiClp::with_best_bound_stop::t_best_bound_stop"], [86, 2, 1, "_CPPv4N4idol6OsiClp18with_best_obj_stopEd", "idol::OsiClp::with_best_obj_stop"], [86, 4, 1, "_CPPv4N4idol6OsiClp18with_best_obj_stopEd", "idol::OsiClp::with_best_obj_stop::t_user_best_obj"], [86, 2, 1, "_CPPv4N4idol6OsiClp33with_infeasible_or_unbounded_infoEb", "idol::OsiClp::with_infeasible_or_unbounded_info"], [86, 4, 1, "_CPPv4N4idol6OsiClp33with_infeasible_or_unbounded_infoEb", "idol::OsiClp::with_infeasible_or_unbounded_info::t_value"], [86, 2, 1, "_CPPv4N4idol6OsiClp20with_iteration_limitEj", "idol::OsiClp::with_iteration_limit"], [86, 4, 1, "_CPPv4N4idol6OsiClp20with_iteration_limitEj", "idol::OsiClp::with_iteration_limit::t_iteration_count_limit"], [86, 2, 1, "_CPPv4N4idol6OsiClp9with_logsEb", "idol::OsiClp::with_logs"], [86, 4, 1, "_CPPv4N4idol6OsiClp9with_logsEb", "idol::OsiClp::with_logs::t_value"], [86, 2, 1, "_CPPv4N4idol6OsiClp13with_presolveEb", "idol::OsiClp::with_presolve"], [86, 4, 1, "_CPPv4N4idol6OsiClp13with_presolveEb", "idol::OsiClp::with_presolve::t_value"], [86, 2, 1, "_CPPv4N4idol6OsiClp27with_relative_gap_toleranceEd", "idol::OsiClp::with_relative_gap_tolerance"], [86, 4, 1, "_CPPv4N4idol6OsiClp27with_relative_gap_toleranceEd", "idol::OsiClp::with_relative_gap_tolerance::t_relative_gap_tolerance"], [86, 2, 1, "_CPPv4N4idol6OsiClp17with_thread_limitEj", "idol::OsiClp::with_thread_limit"], [86, 4, 1, "_CPPv4N4idol6OsiClp17with_thread_limitEj", "idol::OsiClp::with_thread_limit::t_max_n_threads"], [86, 2, 1, "_CPPv4N4idol6OsiClp15with_time_limitEd", "idol::OsiClp::with_time_limit"], [86, 4, 1, "_CPPv4N4idol6OsiClp15with_time_limitEd", "idol::OsiClp::with_time_limit::t_time_limit"], [87, 1, 1, "_CPPv4N4idol8OsiCplexE", "idol::OsiCplex"], [87, 2, 1, "_CPPv4N4idol8OsiCplex20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiCplex::ContinuousRelaxation"], [87, 4, 1, "_CPPv4N4idol8OsiCplex20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiCplex::ContinuousRelaxation::t_solver_interface"], [87, 2, 1, "_CPPv4I0EN4idol8OsiCplex2asER1Tv", "idol::OsiCplex::as"], [87, 2, 1, "_CPPv4I0ENK4idol8OsiCplex2asERK1Tv", "idol::OsiCplex::as"], [87, 3, 1, "_CPPv4I0EN4idol8OsiCplex2asER1Tv", "idol::OsiCplex::as::T"], [87, 3, 1, "_CPPv4I0ENK4idol8OsiCplex2asERK1Tv", "idol::OsiCplex::as::T"], [87, 2, 1, "_CPPv4NK4idol8OsiCplex5cloneEv", "idol::OsiCplex::clone"], [87, 2, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional"], [87, 2, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional"], [87, 4, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional::t_conditional_value"], [87, 4, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional::t_conditional_value"], [87, 4, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional::t_else"], [87, 4, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional::t_if"], [87, 4, 1, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiCplex::conditional::t_if"], [87, 2, 1, "_CPPv4NK4idol8OsiCplex27create_osi_solver_interfaceEv", "idol::OsiCplex::create_osi_solver_interface"], [87, 2, 1, "_CPPv4I0ENK4idol8OsiCplex2isEbv", "idol::OsiCplex::is"], [87, 3, 1, "_CPPv4I0ENK4idol8OsiCplex2isEbv", "idol::OsiCplex::is::T"], [87, 2, 1, "_CPPv4NK4idol8OsiCplexclERK5Model", "idol::OsiCplex::operator()"], [87, 4, 1, "_CPPv4NK4idol8OsiCplexclERK5Model", "idol::OsiCplex::operator()::t_model"], [87, 2, 1, "_CPPv4N4idol8OsiCplex27with_absolute_gap_toleranceEd", "idol::OsiCplex::with_absolute_gap_tolerance"], [87, 4, 1, "_CPPv4N4idol8OsiCplex27with_absolute_gap_toleranceEd", "idol::OsiCplex::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [87, 2, 1, "_CPPv4N4idol8OsiCplex20with_best_bound_stopEd", "idol::OsiCplex::with_best_bound_stop"], [87, 4, 1, "_CPPv4N4idol8OsiCplex20with_best_bound_stopEd", "idol::OsiCplex::with_best_bound_stop::t_best_bound_stop"], [87, 2, 1, "_CPPv4N4idol8OsiCplex18with_best_obj_stopEd", "idol::OsiCplex::with_best_obj_stop"], [87, 4, 1, "_CPPv4N4idol8OsiCplex18with_best_obj_stopEd", "idol::OsiCplex::with_best_obj_stop::t_user_best_obj"], [87, 2, 1, "_CPPv4N4idol8OsiCplex33with_infeasible_or_unbounded_infoEb", "idol::OsiCplex::with_infeasible_or_unbounded_info"], [87, 4, 1, "_CPPv4N4idol8OsiCplex33with_infeasible_or_unbounded_infoEb", "idol::OsiCplex::with_infeasible_or_unbounded_info::t_value"], [87, 2, 1, "_CPPv4N4idol8OsiCplex20with_iteration_limitEj", "idol::OsiCplex::with_iteration_limit"], [87, 4, 1, "_CPPv4N4idol8OsiCplex20with_iteration_limitEj", "idol::OsiCplex::with_iteration_limit::t_iteration_count_limit"], [87, 2, 1, "_CPPv4N4idol8OsiCplex9with_logsEb", "idol::OsiCplex::with_logs"], [87, 4, 1, "_CPPv4N4idol8OsiCplex9with_logsEb", "idol::OsiCplex::with_logs::t_value"], [87, 2, 1, "_CPPv4N4idol8OsiCplex13with_presolveEb", "idol::OsiCplex::with_presolve"], [87, 4, 1, "_CPPv4N4idol8OsiCplex13with_presolveEb", "idol::OsiCplex::with_presolve::t_value"], [87, 2, 1, "_CPPv4N4idol8OsiCplex27with_relative_gap_toleranceEd", "idol::OsiCplex::with_relative_gap_tolerance"], [87, 4, 1, "_CPPv4N4idol8OsiCplex27with_relative_gap_toleranceEd", "idol::OsiCplex::with_relative_gap_tolerance::t_relative_gap_tolerance"], [87, 2, 1, "_CPPv4N4idol8OsiCplex17with_thread_limitEj", "idol::OsiCplex::with_thread_limit"], [87, 4, 1, "_CPPv4N4idol8OsiCplex17with_thread_limitEj", "idol::OsiCplex::with_thread_limit::t_max_n_threads"], [87, 2, 1, "_CPPv4N4idol8OsiCplex15with_time_limitEd", "idol::OsiCplex::with_time_limit"], [87, 4, 1, "_CPPv4N4idol8OsiCplex15with_time_limitEd", "idol::OsiCplex::with_time_limit::t_time_limit"], [88, 1, 1, "_CPPv4N4idol11OsiSymphonyE", "idol::OsiSymphony"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiSymphony::ContinuousRelaxation"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony20ContinuousRelaxationERK18OsiSolverInterface", "idol::OsiSymphony::ContinuousRelaxation::t_solver_interface"], [88, 2, 1, "_CPPv4I0EN4idol11OsiSymphony2asER1Tv", "idol::OsiSymphony::as"], [88, 2, 1, "_CPPv4I0ENK4idol11OsiSymphony2asERK1Tv", "idol::OsiSymphony::as"], [88, 3, 1, "_CPPv4I0EN4idol11OsiSymphony2asER1Tv", "idol::OsiSymphony::as::T"], [88, 3, 1, "_CPPv4I0ENK4idol11OsiSymphony2asERK1Tv", "idol::OsiSymphony::as::T"], [88, 2, 1, "_CPPv4NK4idol11OsiSymphony5cloneEv", "idol::OsiSymphony::clone"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional::t_conditional_value"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional::t_conditional_value"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional::t_else"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional::t_if"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE", "idol::OsiSymphony::conditional::t_if"], [88, 2, 1, "_CPPv4NK4idol11OsiSymphony27create_osi_solver_interfaceEv", "idol::OsiSymphony::create_osi_solver_interface"], [88, 2, 1, "_CPPv4I0ENK4idol11OsiSymphony2isEbv", "idol::OsiSymphony::is"], [88, 3, 1, "_CPPv4I0ENK4idol11OsiSymphony2isEbv", "idol::OsiSymphony::is::T"], [88, 2, 1, "_CPPv4NK4idol11OsiSymphonyclERK5Model", "idol::OsiSymphony::operator()"], [88, 4, 1, "_CPPv4NK4idol11OsiSymphonyclERK5Model", "idol::OsiSymphony::operator()::t_model"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony27with_absolute_gap_toleranceEd", "idol::OsiSymphony::with_absolute_gap_tolerance"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony27with_absolute_gap_toleranceEd", "idol::OsiSymphony::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony20with_best_bound_stopEd", "idol::OsiSymphony::with_best_bound_stop"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony20with_best_bound_stopEd", "idol::OsiSymphony::with_best_bound_stop::t_best_bound_stop"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony18with_best_obj_stopEd", "idol::OsiSymphony::with_best_obj_stop"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony18with_best_obj_stopEd", "idol::OsiSymphony::with_best_obj_stop::t_user_best_obj"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony33with_infeasible_or_unbounded_infoEb", "idol::OsiSymphony::with_infeasible_or_unbounded_info"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony33with_infeasible_or_unbounded_infoEb", "idol::OsiSymphony::with_infeasible_or_unbounded_info::t_value"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony20with_iteration_limitEj", "idol::OsiSymphony::with_iteration_limit"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony20with_iteration_limitEj", "idol::OsiSymphony::with_iteration_limit::t_iteration_count_limit"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony9with_logsEb", "idol::OsiSymphony::with_logs"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony9with_logsEb", "idol::OsiSymphony::with_logs::t_value"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony13with_presolveEb", "idol::OsiSymphony::with_presolve"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony13with_presolveEb", "idol::OsiSymphony::with_presolve::t_value"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony27with_relative_gap_toleranceEd", "idol::OsiSymphony::with_relative_gap_tolerance"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony27with_relative_gap_toleranceEd", "idol::OsiSymphony::with_relative_gap_tolerance::t_relative_gap_tolerance"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony17with_thread_limitEj", "idol::OsiSymphony::with_thread_limit"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony17with_thread_limitEj", "idol::OsiSymphony::with_thread_limit::t_max_n_threads"], [88, 2, 1, "_CPPv4N4idol11OsiSymphony15with_time_limitEd", "idol::OsiSymphony::with_time_limit"], [88, 4, 1, "_CPPv4N4idol11OsiSymphony15with_time_limitEd", "idol::OsiSymphony::with_time_limit::t_time_limit"], [64, 1, 1, "_CPPv4N4idol5ParamE", "idol::Param"], [64, 2, 1, "_CPPv4N4idol5Param5ParamERK3Ctr", "idol::Param::Param"], [64, 2, 1, "_CPPv4N4idol5Param5ParamERK3Var", "idol::Param::Param"], [64, 2, 1, "_CPPv4N4idol5Param5ParamERK5Param", "idol::Param::Param"], [64, 2, 1, "_CPPv4N4idol5Param5ParamERR5Param", "idol::Param::Param"], [64, 4, 1, "_CPPv4N4idol5Param5ParamERK3Ctr", "idol::Param::Param::t_ctr"], [64, 4, 1, "_CPPv4N4idol5Param5ParamERK5Param", "idol::Param::Param::t_param"], [64, 4, 1, "_CPPv4N4idol5Param5ParamERR5Param", "idol::Param::Param::t_param"], [64, 4, 1, "_CPPv4N4idol5Param5ParamERK3Var", "idol::Param::Param::t_var"], [64, 2, 1, "_CPPv4I0ENK4idol5Param2asE1Tv", "idol::Param::as"], [64, 3, 1, "_CPPv4I0ENK4idol5Param2asE1Tv", "idol::Param::as::T"], [64, 2, 1, "_CPPv4NK4idol5Param2idEv", "idol::Param::id"], [64, 2, 1, "_CPPv4I0ENK4idol5Param2isEbv", "idol::Param::is"], [64, 3, 1, "_CPPv4I0ENK4idol5Param2isEbv", "idol::Param::is::T"], [64, 2, 1, "_CPPv4NK4idol5Param4nameEv", "idol::Param::name"], [64, 2, 1, "_CPPv4N4idol5ParamaSERK5Param", "idol::Param::operator="], [64, 2, 1, "_CPPv4N4idol5ParamaSERR5Param", "idol::Param::operator="], [64, 4, 1, "_CPPv4N4idol5ParamaSERK5Param", "idol::Param::operator=::t_param"], [64, 4, 1, "_CPPv4N4idol5ParamaSERR5Param", "idol::Param::operator=::t_param"], [12, 0, 1, "_CPPv4N4idol8Problems3FLPE", "idol::Problems::FLP"], [12, 1, 1, "_CPPv4N4idol8Problems3FLP8InstanceE", "idol::Problems::FLP::Instance"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP8Instance8InstanceEjj", "idol::Problems::FLP::Instance::Instance"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance8InstanceEjj", "idol::Problems::FLP::Instance::Instance::t_n_customers"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance8InstanceEjj", "idol::Problems::FLP::Instance::Instance::t_n_facilities"], [12, 2, 1, "_CPPv4NK4idol8Problems3FLP8Instance8capacityEj", "idol::Problems::FLP::Instance::capacity"], [12, 4, 1, "_CPPv4NK4idol8Problems3FLP8Instance8capacityEj", "idol::Problems::FLP::Instance::capacity::t_i"], [12, 2, 1, "_CPPv4NK4idol8Problems3FLP8Instance6demandEj", "idol::Problems::FLP::Instance::demand"], [12, 4, 1, "_CPPv4NK4idol8Problems3FLP8Instance6demandEj", "idol::Problems::FLP::Instance::demand::t_j"], [12, 2, 1, "_CPPv4NK4idol8Problems3FLP8Instance10fixed_costEj", "idol::Problems::FLP::Instance::fixed_cost"], [12, 4, 1, "_CPPv4NK4idol8Problems3FLP8Instance10fixed_costEj", "idol::Problems::FLP::Instance::fixed_cost::t_i"], [12, 2, 1, "_CPPv4NK4idol8Problems3FLP8Instance11n_customersEv", "idol::Problems::FLP::Instance::n_customers"], [12, 2, 1, "_CPPv4NK4idol8Problems3FLP8Instance12n_facilitiesEv", "idol::Problems::FLP::Instance::n_facilities"], [12, 2, 1, "_CPPv4NK4idol8Problems3FLP8Instance28per_unit_transportation_costEjj", "idol::Problems::FLP::Instance::per_unit_transportation_cost"], [12, 4, 1, "_CPPv4NK4idol8Problems3FLP8Instance28per_unit_transportation_costEjj", "idol::Problems::FLP::Instance::per_unit_transportation_cost::t_i"], [12, 4, 1, "_CPPv4NK4idol8Problems3FLP8Instance28per_unit_transportation_costEjj", "idol::Problems::FLP::Instance::per_unit_transportation_cost::t_j"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP8Instance12set_capacityEjd", "idol::Problems::FLP::Instance::set_capacity"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance12set_capacityEjd", "idol::Problems::FLP::Instance::set_capacity::t_i"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance12set_capacityEjd", "idol::Problems::FLP::Instance::set_capacity::t_value"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP8Instance10set_demandEjd", "idol::Problems::FLP::Instance::set_demand"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance10set_demandEjd", "idol::Problems::FLP::Instance::set_demand::t_j"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance10set_demandEjd", "idol::Problems::FLP::Instance::set_demand::t_value"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP8Instance14set_fixed_costEjd", "idol::Problems::FLP::Instance::set_fixed_cost"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance14set_fixed_costEjd", "idol::Problems::FLP::Instance::set_fixed_cost::t_i"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance14set_fixed_costEjd", "idol::Problems::FLP::Instance::set_fixed_cost::t_value"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP8Instance32set_per_unit_transportation_costEjjd", "idol::Problems::FLP::Instance::set_per_unit_transportation_cost"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance32set_per_unit_transportation_costEjjd", "idol::Problems::FLP::Instance::set_per_unit_transportation_cost::t_i"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance32set_per_unit_transportation_costEjjd", "idol::Problems::FLP::Instance::set_per_unit_transportation_cost::t_j"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP8Instance32set_per_unit_transportation_costEjjd", "idol::Problems::FLP::Instance::set_per_unit_transportation_cost::t_value"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP39generate_instance_1991_Cornuejols_et_alEjjd", "idol::Problems::FLP::generate_instance_1991_Cornuejols_et_al"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP39generate_instance_1991_Cornuejols_et_alEjjd", "idol::Problems::FLP::generate_instance_1991_Cornuejols_et_al::t_n_customers"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP39generate_instance_1991_Cornuejols_et_alEjjd", "idol::Problems::FLP::generate_instance_1991_Cornuejols_et_al::t_n_facilities"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP39generate_instance_1991_Cornuejols_et_alEjjd", "idol::Problems::FLP::generate_instance_1991_Cornuejols_et_al::t_ratio_capacity_over_demand"], [12, 2, 1, "_CPPv4N4idol8Problems3FLPlsERNSt7ostreamERKN4idol8Problems3FLP8InstanceE", "idol::Problems::FLP::operator<<"], [12, 4, 1, "_CPPv4N4idol8Problems3FLPlsERNSt7ostreamERKN4idol8Problems3FLP8InstanceE", "idol::Problems::FLP::operator<<::t_instance"], [12, 4, 1, "_CPPv4N4idol8Problems3FLPlsERNSt7ostreamERKN4idol8Problems3FLP8InstanceE", "idol::Problems::FLP::operator<<::t_os"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP35read_instance_1991_Cornuejols_et_alERKNSt6stringE", "idol::Problems::FLP::read_instance_1991_Cornuejols_et_al"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP35read_instance_1991_Cornuejols_et_alERKNSt6stringE", "idol::Problems::FLP::read_instance_1991_Cornuejols_et_al::t_filename"], [12, 2, 1, "_CPPv4N4idol8Problems3FLP30read_instance_2021_Cheng_et_alERKNSt6stringE", "idol::Problems::FLP::read_instance_2021_Cheng_et_al"], [12, 4, 1, "_CPPv4N4idol8Problems3FLP30read_instance_2021_Cheng_et_alERKNSt6stringE", "idol::Problems::FLP::read_instance_2021_Cheng_et_al::t_filename"], [13, 0, 1, "_CPPv4N4idol8Problems3GAPE", "idol::Problems::GAP"], [13, 1, 1, "_CPPv4N4idol8Problems3GAP8InstanceE", "idol::Problems::GAP::Instance"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8Instance8InstanceERK8Instance", "idol::Problems::GAP::Instance::Instance"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8Instance8InstanceERR8Instance", "idol::Problems::GAP::Instance::Instance"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8Instance8InstanceEjj", "idol::Problems::GAP::Instance::Instance"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance8InstanceEjj", "idol::Problems::GAP::Instance::Instance::t_n_agents"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance8InstanceEjj", "idol::Problems::GAP::Instance::Instance::t_n_jobs"], [13, 2, 1, "_CPPv4NK4idol8Problems3GAP8Instance8capacityEj", "idol::Problems::GAP::Instance::capacity"], [13, 4, 1, "_CPPv4NK4idol8Problems3GAP8Instance8capacityEj", "idol::Problems::GAP::Instance::capacity::t_agent"], [13, 2, 1, "_CPPv4NK4idol8Problems3GAP8Instance4costEjj", "idol::Problems::GAP::Instance::cost"], [13, 4, 1, "_CPPv4NK4idol8Problems3GAP8Instance4costEjj", "idol::Problems::GAP::Instance::cost::t_agent"], [13, 4, 1, "_CPPv4NK4idol8Problems3GAP8Instance4costEjj", "idol::Problems::GAP::Instance::cost::t_job"], [13, 2, 1, "_CPPv4NK4idol8Problems3GAP8Instance8n_agentsEv", "idol::Problems::GAP::Instance::n_agents"], [13, 2, 1, "_CPPv4NK4idol8Problems3GAP8Instance6n_jobsEv", "idol::Problems::GAP::Instance::n_jobs"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8InstanceaSERK8Instance", "idol::Problems::GAP::Instance::operator="], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8InstanceaSERR8Instance", "idol::Problems::GAP::Instance::operator="], [13, 2, 1, "_CPPv4NK4idol8Problems3GAP8Instance20resource_consumptionEjj", "idol::Problems::GAP::Instance::resource_consumption"], [13, 4, 1, "_CPPv4NK4idol8Problems3GAP8Instance20resource_consumptionEjj", "idol::Problems::GAP::Instance::resource_consumption::t_agent"], [13, 4, 1, "_CPPv4NK4idol8Problems3GAP8Instance20resource_consumptionEjj", "idol::Problems::GAP::Instance::resource_consumption::t_job"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8Instance12set_capacityEjd", "idol::Problems::GAP::Instance::set_capacity"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance12set_capacityEjd", "idol::Problems::GAP::Instance::set_capacity::t_agent"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance12set_capacityEjd", "idol::Problems::GAP::Instance::set_capacity::t_value"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8Instance8set_costEjjd", "idol::Problems::GAP::Instance::set_cost"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance8set_costEjjd", "idol::Problems::GAP::Instance::set_cost::t_agent"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance8set_costEjjd", "idol::Problems::GAP::Instance::set_cost::t_job"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance8set_costEjjd", "idol::Problems::GAP::Instance::set_cost::t_value"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8Instance24set_resource_consumptionEjjd", "idol::Problems::GAP::Instance::set_resource_consumption"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance24set_resource_consumptionEjjd", "idol::Problems::GAP::Instance::set_resource_consumption::t_agent"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance24set_resource_consumptionEjjd", "idol::Problems::GAP::Instance::set_resource_consumption::t_job"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP8Instance24set_resource_consumptionEjjd", "idol::Problems::GAP::Instance::set_resource_consumption::t_value"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP8InstanceD0Ev", "idol::Problems::GAP::Instance::~Instance"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP40generate_instance_Chu_and_Beasley_1997_CEjj", "idol::Problems::GAP::generate_instance_Chu_and_Beasley_1997_C"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP40generate_instance_Chu_and_Beasley_1997_CEjj", "idol::Problems::GAP::generate_instance_Chu_and_Beasley_1997_C::t_n_jobs"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP40generate_instance_Chu_and_Beasley_1997_CEjj", "idol::Problems::GAP::generate_instance_Chu_and_Beasley_1997_C::t_n_machines"], [13, 2, 1, "_CPPv4N4idol8Problems3GAPlsERNSt7ostreamERKN4idol8Problems3GAP8InstanceE", "idol::Problems::GAP::operator<<"], [13, 4, 1, "_CPPv4N4idol8Problems3GAPlsERNSt7ostreamERKN4idol8Problems3GAP8InstanceE", "idol::Problems::GAP::operator<<::t_instance"], [13, 4, 1, "_CPPv4N4idol8Problems3GAPlsERNSt7ostreamERKN4idol8Problems3GAP8InstanceE", "idol::Problems::GAP::operator<<::t_os"], [13, 2, 1, "_CPPv4N4idol8Problems3GAP13read_instanceERKNSt6stringE", "idol::Problems::GAP::read_instance"], [13, 4, 1, "_CPPv4N4idol8Problems3GAP13read_instanceERKNSt6stringE", "idol::Problems::GAP::read_instance::t_filename"], [14, 0, 1, "_CPPv4N4idol8Problems2KPE", "idol::Problems::KP"], [14, 1, 1, "_CPPv4N4idol8Problems2KP8InstanceE", "idol::Problems::KP::Instance"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8Instance8InstanceERK8Instance", "idol::Problems::KP::Instance::Instance"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8Instance8InstanceERR8Instance", "idol::Problems::KP::Instance::Instance"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8Instance8InstanceEj", "idol::Problems::KP::Instance::Instance"], [14, 4, 1, "_CPPv4N4idol8Problems2KP8Instance8InstanceEj", "idol::Problems::KP::Instance::Instance::t_n_items"], [14, 2, 1, "_CPPv4NK4idol8Problems2KP8Instance8capacityEv", "idol::Problems::KP::Instance::capacity"], [14, 2, 1, "_CPPv4NK4idol8Problems2KP8Instance7n_itemsEv", "idol::Problems::KP::Instance::n_items"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8InstanceaSERK8Instance", "idol::Problems::KP::Instance::operator="], [14, 2, 1, "_CPPv4N4idol8Problems2KP8InstanceaSERR8Instance", "idol::Problems::KP::Instance::operator="], [14, 2, 1, "_CPPv4NK4idol8Problems2KP8Instance6profitEj", "idol::Problems::KP::Instance::profit"], [14, 4, 1, "_CPPv4NK4idol8Problems2KP8Instance6profitEj", "idol::Problems::KP::Instance::profit::t_item"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8Instance12set_capacityEd", "idol::Problems::KP::Instance::set_capacity"], [14, 4, 1, "_CPPv4N4idol8Problems2KP8Instance12set_capacityEd", "idol::Problems::KP::Instance::set_capacity::t_value"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8Instance10set_profitEjd", "idol::Problems::KP::Instance::set_profit"], [14, 4, 1, "_CPPv4N4idol8Problems2KP8Instance10set_profitEjd", "idol::Problems::KP::Instance::set_profit::t_item"], [14, 4, 1, "_CPPv4N4idol8Problems2KP8Instance10set_profitEjd", "idol::Problems::KP::Instance::set_profit::t_value"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8Instance10set_weightEjd", "idol::Problems::KP::Instance::set_weight"], [14, 4, 1, "_CPPv4N4idol8Problems2KP8Instance10set_weightEjd", "idol::Problems::KP::Instance::set_weight::t_item"], [14, 4, 1, "_CPPv4N4idol8Problems2KP8Instance10set_weightEjd", "idol::Problems::KP::Instance::set_weight::t_value"], [14, 2, 1, "_CPPv4NK4idol8Problems2KP8Instance6weightEj", "idol::Problems::KP::Instance::weight"], [14, 4, 1, "_CPPv4NK4idol8Problems2KP8Instance6weightEj", "idol::Problems::KP::Instance::weight::t_item"], [14, 2, 1, "_CPPv4N4idol8Problems2KP8InstanceD0Ev", "idol::Problems::KP::Instance::~Instance"], [14, 2, 1, "_CPPv4N4idol8Problems2KP13read_instanceERKNSt6stringE", "idol::Problems::KP::read_instance"], [14, 4, 1, "_CPPv4N4idol8Problems2KP13read_instanceERKNSt6stringE", "idol::Problems::KP::read_instance::t_filename"], [14, 2, 1, "_CPPv4N4idol8Problems2KP19read_instance_kplibERKNSt6stringE", "idol::Problems::KP::read_instance_kplib"], [14, 4, 1, "_CPPv4N4idol8Problems2KP19read_instance_kplibERKNSt6stringE", "idol::Problems::KP::read_instance_kplib::t_filename"], [15, 0, 1, "_CPPv4N4idol8Problems3MKPE", "idol::Problems::MKP"], [15, 1, 1, "_CPPv4N4idol8Problems3MKP8InstanceE", "idol::Problems::MKP::Instance"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8Instance8InstanceERK8Instance", "idol::Problems::MKP::Instance::Instance"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8Instance8InstanceERR8Instance", "idol::Problems::MKP::Instance::Instance"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8Instance8InstanceEjj", "idol::Problems::MKP::Instance::Instance"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance8InstanceEjj", "idol::Problems::MKP::Instance::Instance::t_n_items"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance8InstanceEjj", "idol::Problems::MKP::Instance::Instance::t_n_knapsacks"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance10capacitiesEv", "idol::Problems::MKP::Instance::capacities"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance8capacityEj", "idol::Problems::MKP::Instance::capacity"], [15, 4, 1, "_CPPv4NK4idol8Problems3MKP8Instance8capacityEj", "idol::Problems::MKP::Instance::capacity::t_knapsack"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance7n_itemsEv", "idol::Problems::MKP::Instance::n_items"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance11n_knapsacksEv", "idol::Problems::MKP::Instance::n_knapsacks"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8InstanceaSERK8Instance", "idol::Problems::MKP::Instance::operator="], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8InstanceaSERR8Instance", "idol::Problems::MKP::Instance::operator="], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance6profitEj", "idol::Problems::MKP::Instance::profit"], [15, 4, 1, "_CPPv4NK4idol8Problems3MKP8Instance6profitEj", "idol::Problems::MKP::Instance::profit::t_item"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance7profitsEv", "idol::Problems::MKP::Instance::profits"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8Instance12set_capacityEjd", "idol::Problems::MKP::Instance::set_capacity"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance12set_capacityEjd", "idol::Problems::MKP::Instance::set_capacity::t_knapsack"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance12set_capacityEjd", "idol::Problems::MKP::Instance::set_capacity::t_value"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8Instance10set_profitEjd", "idol::Problems::MKP::Instance::set_profit"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance10set_profitEjd", "idol::Problems::MKP::Instance::set_profit::t_item"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance10set_profitEjd", "idol::Problems::MKP::Instance::set_profit::t_value"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8Instance10set_weightEjd", "idol::Problems::MKP::Instance::set_weight"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance10set_weightEjd", "idol::Problems::MKP::Instance::set_weight::t_item"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP8Instance10set_weightEjd", "idol::Problems::MKP::Instance::set_weight::t_value"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance6weightEj", "idol::Problems::MKP::Instance::weight"], [15, 4, 1, "_CPPv4NK4idol8Problems3MKP8Instance6weightEj", "idol::Problems::MKP::Instance::weight::t_item"], [15, 2, 1, "_CPPv4NK4idol8Problems3MKP8Instance7weightsEv", "idol::Problems::MKP::Instance::weights"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP8InstanceD0Ev", "idol::Problems::MKP::Instance::~Instance"], [15, 2, 1, "_CPPv4N4idol8Problems3MKP13read_instanceERKNSt6stringE", "idol::Problems::MKP::read_instance"], [15, 4, 1, "_CPPv4N4idol8Problems3MKP13read_instanceERKNSt6stringE", "idol::Problems::MKP::read_instance::t_filename"], [16, 0, 1, "_CPPv4N4idol8Problems3SRPE", "idol::Problems::SRP"], [16, 1, 1, "_CPPv4N4idol8Problems3SRP8InstanceE", "idol::Problems::SRP::Instance"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance8InstanceEjjj", "idol::Problems::SRP::Instance::Instance"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance8InstanceEjjj", "idol::Problems::SRP::Instance::Instance::t_n_part_time_staff"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance8InstanceEjjj", "idol::Problems::SRP::Instance::Instance::t_n_regular_staff"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance8InstanceEjjj", "idol::Problems::SRP::Instance::Instance::t_n_time_periods"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance6demandEj", "idol::Problems::SRP::Instance::demand"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance6demandEj", "idol::Problems::SRP::Instance::demand::t_time_index"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance17n_part_time_staffEv", "idol::Problems::SRP::Instance::n_part_time_staff"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance15n_regular_staffEv", "idol::Problems::SRP::Instance::n_regular_staff"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance14n_time_periodsEv", "idol::Problems::SRP::Instance::n_time_periods"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8InstancelsERNSt7ostreamERK8Instance", "idol::Problems::SRP::Instance::operator<<"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance25part_time_fixed_wage_costEjj", "idol::Problems::SRP::Instance::part_time_fixed_wage_cost"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance25part_time_fixed_wage_costEjj", "idol::Problems::SRP::Instance::part_time_fixed_wage_cost::t_staff_index"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance25part_time_fixed_wage_costEjj", "idol::Problems::SRP::Instance::part_time_fixed_wage_cost::t_time_index"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance32part_time_staff_hourly_wage_costEjj", "idol::Problems::SRP::Instance::part_time_staff_hourly_wage_cost"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance32part_time_staff_hourly_wage_costEjj", "idol::Problems::SRP::Instance::part_time_staff_hourly_wage_cost::t_staff_index"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance32part_time_staff_hourly_wage_costEjj", "idol::Problems::SRP::Instance::part_time_staff_hourly_wage_cost::t_time_index"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance40part_time_staff_maximum_number_of_shiftsEj", "idol::Problems::SRP::Instance::part_time_staff_maximum_number_of_shifts"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance40part_time_staff_maximum_number_of_shiftsEj", "idol::Problems::SRP::Instance::part_time_staff_maximum_number_of_shifts::t_staff_index"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance40part_time_staff_minimum_number_of_shiftsEj", "idol::Problems::SRP::Instance::part_time_staff_minimum_number_of_shifts"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance40part_time_staff_minimum_number_of_shiftsEj", "idol::Problems::SRP::Instance::part_time_staff_minimum_number_of_shifts::t_staff_index"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance23read_instance_from_fileERKNSt6stringE", "idol::Problems::SRP::Instance::read_instance_from_file"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance29regular_staff_fixed_wage_costEjj", "idol::Problems::SRP::Instance::regular_staff_fixed_wage_cost"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance29regular_staff_fixed_wage_costEjj", "idol::Problems::SRP::Instance::regular_staff_fixed_wage_cost::t_staff_index"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance29regular_staff_fixed_wage_costEjj", "idol::Problems::SRP::Instance::regular_staff_fixed_wage_cost::t_time_index"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance38regular_staff_maximum_number_of_shiftsEj", "idol::Problems::SRP::Instance::regular_staff_maximum_number_of_shifts"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance38regular_staff_maximum_number_of_shiftsEj", "idol::Problems::SRP::Instance::regular_staff_maximum_number_of_shifts::t_staff_index"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance38regular_staff_minimum_number_of_shiftsEj", "idol::Problems::SRP::Instance::regular_staff_minimum_number_of_shifts"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance38regular_staff_minimum_number_of_shiftsEj", "idol::Problems::SRP::Instance::regular_staff_minimum_number_of_shifts::t_staff_index"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance10set_demandEjd", "idol::Problems::SRP::Instance::set_demand"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance10set_demandEjd", "idol::Problems::SRP::Instance::set_demand::t_time_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance10set_demandEjd", "idol::Problems::SRP::Instance::set_demand::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_part_time_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_fixed_wage_cost"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_part_time_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_fixed_wage_cost::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_part_time_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_fixed_wage_cost::t_time_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_part_time_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_fixed_wage_cost::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance36set_part_time_staff_hourly_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_staff_hourly_wage_cost"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance36set_part_time_staff_hourly_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_staff_hourly_wage_cost::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance36set_part_time_staff_hourly_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_staff_hourly_wage_cost::t_time_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance36set_part_time_staff_hourly_wage_costEjjd", "idol::Problems::SRP::Instance::set_part_time_staff_hourly_wage_cost::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_maximum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_part_time_staff_maximum_number_of_shifts"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_maximum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_part_time_staff_maximum_number_of_shifts::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_maximum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_part_time_staff_maximum_number_of_shifts::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_minimum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_part_time_staff_minimum_number_of_shifts"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_minimum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_part_time_staff_minimum_number_of_shifts::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_minimum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_part_time_staff_minimum_number_of_shifts::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance33set_regular_staff_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_regular_staff_fixed_wage_cost"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance33set_regular_staff_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_regular_staff_fixed_wage_cost::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance33set_regular_staff_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_regular_staff_fixed_wage_cost::t_time_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance33set_regular_staff_fixed_wage_costEjjd", "idol::Problems::SRP::Instance::set_regular_staff_fixed_wage_cost::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_maximum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_regular_staff_maximum_number_of_shifts"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_maximum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_regular_staff_maximum_number_of_shifts::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_maximum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_regular_staff_maximum_number_of_shifts::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_minimum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_regular_staff_minimum_number_of_shifts"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_minimum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_regular_staff_minimum_number_of_shifts::t_staff_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_minimum_number_of_shiftsEjd", "idol::Problems::SRP::Instance::set_regular_staff_minimum_number_of_shifts::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance32set_regular_staff_shift_durationEj", "idol::Problems::SRP::Instance::set_regular_staff_shift_duration"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance32set_regular_staff_shift_durationEj", "idol::Problems::SRP::Instance::set_regular_staff_shift_duration::t_value"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_unmet_demand_penalty_costEjd", "idol::Problems::SRP::Instance::set_unmet_demand_penalty_cost"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_unmet_demand_penalty_costEjd", "idol::Problems::SRP::Instance::set_unmet_demand_penalty_cost::t_index_index"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP8Instance29set_unmet_demand_penalty_costEjd", "idol::Problems::SRP::Instance::set_unmet_demand_penalty_cost::t_value"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance14shift_durationEv", "idol::Problems::SRP::Instance::shift_duration"], [16, 2, 1, "_CPPv4NK4idol8Problems3SRP8Instance25unmet_demand_penalty_costEj", "idol::Problems::SRP::Instance::unmet_demand_penalty_cost"], [16, 4, 1, "_CPPv4NK4idol8Problems3SRP8Instance25unmet_demand_penalty_costEj", "idol::Problems::SRP::Instance::unmet_demand_penalty_cost::t_time_index"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP40generate_random_instance_Zhao_et_al_2012Ejjj", "idol::Problems::SRP::generate_random_instance_Zhao_et_al_2012"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP40generate_random_instance_Zhao_et_al_2012Ejjj", "idol::Problems::SRP::generate_random_instance_Zhao_et_al_2012::t_n_part_time_staff"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP40generate_random_instance_Zhao_et_al_2012Ejjj", "idol::Problems::SRP::generate_random_instance_Zhao_et_al_2012::t_n_regular_staff"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP40generate_random_instance_Zhao_et_al_2012Ejjj", "idol::Problems::SRP::generate_random_instance_Zhao_et_al_2012::t_n_time_periods"], [16, 2, 1, "_CPPv4N4idol8Problems3SRPlsERNSt7ostreamERK8Instance", "idol::Problems::SRP::operator<<"], [16, 4, 1, "_CPPv4N4idol8Problems3SRPlsERNSt7ostreamERK8Instance", "idol::Problems::SRP::operator<<::t_instance"], [16, 4, 1, "_CPPv4N4idol8Problems3SRPlsERNSt7ostreamERK8Instance", "idol::Problems::SRP::operator<<::t_os"], [16, 2, 1, "_CPPv4N4idol8Problems3SRP23read_instance_from_fileERKNSt6stringE", "idol::Problems::SRP::read_instance_from_file"], [16, 4, 1, "_CPPv4N4idol8Problems3SRP23read_instance_from_fileERKNSt6stringE", "idol::Problems::SRP::read_instance_from_file::t_path_to_file"], [102, 5, 1, "_CPPv4N4idol13CallbackEvent14PrunedSolutionE", "idol::PrunedSolution"], [39, 1, 1, "_CPPv4N4idol10PseudoCostE", "idol::PseudoCost"], [39, 2, 1, "_CPPv4I0EN4idol10PseudoCost10PseudoCostE9IteratorT9IteratorT", "idol::PseudoCost::PseudoCost"], [39, 2, 1, "_CPPv4N4idol10PseudoCost10PseudoCostEv", "idol::PseudoCost::PseudoCost"], [39, 3, 1, "_CPPv4I0EN4idol10PseudoCost10PseudoCostE9IteratorT9IteratorT", "idol::PseudoCost::PseudoCost::IteratorT"], [39, 4, 1, "_CPPv4I0EN4idol10PseudoCost10PseudoCostE9IteratorT9IteratorT", "idol::PseudoCost::PseudoCost::t_begin"], [39, 4, 1, "_CPPv4I0EN4idol10PseudoCost10PseudoCostE9IteratorT9IteratorT", "idol::PseudoCost::PseudoCost::t_end"], [39, 1, 1, "_CPPv4I0EN4idol10PseudoCost8StrategyE", "idol::PseudoCost::Strategy"], [39, 3, 1, "_CPPv4I0EN4idol10PseudoCost8StrategyE", "idol::PseudoCost::Strategy::NodeInfoT"], [39, 2, 1, "_CPPv4N4idol10PseudoCost8Strategy8StrategyERK10PseudoCost", "idol::PseudoCost::Strategy::Strategy"], [39, 2, 1, "_CPPv4N4idol10PseudoCost8Strategy8StrategyEv", "idol::PseudoCost::Strategy::Strategy"], [39, 4, 1, "_CPPv4N4idol10PseudoCost8Strategy8StrategyERK10PseudoCost", "idol::PseudoCost::Strategy::Strategy::t_parent"], [39, 2, 1, "_CPPv4NK4idol10PseudoCost8Strategy5cloneEv", "idol::PseudoCost::Strategy::clone"], [39, 2, 1, "_CPPv4NK4idol10PseudoCost8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::PseudoCost::Strategy::operator()"], [39, 2, 1, "_CPPv4NK4idol10PseudoCost8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::PseudoCost::Strategy::operator()"], [39, 4, 1, "_CPPv4NK4idol10PseudoCost8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::PseudoCost::Strategy::operator()::t_parent"], [39, 4, 1, "_CPPv4NK4idol10PseudoCost8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::PseudoCost::Strategy::operator()::t_parent"], [65, 1, 1, "_CPPv4I0000EN4idol8QuadExprE", "idol::QuadExpr"], [65, 3, 1, "_CPPv4I0000EN4idol8QuadExprE", "idol::QuadExpr::EqualTo"], [65, 3, 1, "_CPPv4I0000EN4idol8QuadExprE", "idol::QuadExpr::Hash"], [65, 3, 1, "_CPPv4I0000EN4idol8QuadExprE", "idol::QuadExpr::Key1"], [65, 3, 1, "_CPPv4I0000EN4idol8QuadExprE", "idol::QuadExpr::Key2"], [65, 2, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK4Key1RK4Key2", "idol::QuadExpr::QuadExpr"], [65, 2, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr"], [65, 2, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK8QuadExpr", "idol::QuadExpr::QuadExpr"], [65, 2, 1, "_CPPv4N4idol8QuadExpr8QuadExprERR8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr"], [65, 2, 1, "_CPPv4N4idol8QuadExpr8QuadExprERR8QuadExpr", "idol::QuadExpr::QuadExpr"], [65, 2, 1, "_CPPv4N4idol8QuadExpr8QuadExprEv", "idol::QuadExpr::QuadExpr"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_a"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_a"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERR8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_a"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_b"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_b"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERR8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_b"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERK8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_factor"], [65, 4, 1, "_CPPv4N4idol8QuadExpr8QuadExprERR8ConstantRK4Key1RK4Key2", "idol::QuadExpr::QuadExpr::t_factor"], [65, 2, 1, "_CPPv4NK4idol8QuadExpr3fixERKN8Solution6PrimalE", "idol::QuadExpr::fix"], [65, 4, 1, "_CPPv4NK4idol8QuadExpr3fixERKN8Solution6PrimalE", "idol::QuadExpr::fix::t_primals"], [65, 2, 1, "_CPPv4NK4idol8QuadExpr3getERK4Key1RK4Key2", "idol::QuadExpr::get"], [65, 4, 1, "_CPPv4NK4idol8QuadExpr3getERK4Key1RK4Key2", "idol::QuadExpr::get::t_a"], [65, 4, 1, "_CPPv4NK4idol8QuadExpr3getERK4Key1RK4Key2", "idol::QuadExpr::get::t_b"], [65, 2, 1, "_CPPv4N4idol8QuadExpraSERK8QuadExpr", "idol::QuadExpr::operator="], [65, 2, 1, "_CPPv4N4idol8QuadExpraSERR8QuadExpr", "idol::QuadExpr::operator="], [65, 2, 1, "_CPPv4N4idol8QuadExpr3setERK4Key1RK4Key28Constant", "idol::QuadExpr::set"], [65, 4, 1, "_CPPv4N4idol8QuadExpr3setERK4Key1RK4Key28Constant", "idol::QuadExpr::set::t_a"], [65, 4, 1, "_CPPv4N4idol8QuadExpr3setERK4Key1RK4Key28Constant", "idol::QuadExpr::set::t_b"], [65, 4, 1, "_CPPv4N4idol8QuadExpr3setERK4Key1RK4Key28Constant", "idol::QuadExpr::set::t_coefficient"], [65, 2, 1, "_CPPv4N4idol8QuadExprD0Ev", "idol::QuadExpr::~QuadExpr"], [4, 1, 1, "_CPPv4N4idol6Robust13CCGSeparators7BilevelE", "idol::Robust::CCGSeparators::Bilevel"], [4, 2, 1, "_CPPv4NK4idol6Robust13CCGSeparators7Bilevel5cloneEv", "idol::Robust::CCGSeparators::Bilevel::clone"], [4, 2, 1, "_CPPv4NK4idol6Robust13CCGSeparators7BilevelclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Bilevel::operator()"], [4, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7BilevelclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Bilevel::operator()::t_parent"], [4, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7BilevelclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Bilevel::operator()::t_row"], [4, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7BilevelclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Bilevel::operator()::t_type"], [4, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7BilevelclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Bilevel::operator()::t_upper_level_solution"], [5, 1, 1, "_CPPv4N4idol6Robust13CCGSeparators7DualizeE", "idol::Robust::CCGSeparators::Dualize"], [5, 2, 1, "_CPPv4N4idol6Robust13CCGSeparators7Dualize7DualizeERK7Dualize", "idol::Robust::CCGSeparators::Dualize::Dualize"], [5, 2, 1, "_CPPv4N4idol6Robust13CCGSeparators7Dualize7DualizeEv", "idol::Robust::CCGSeparators::Dualize::Dualize"], [5, 4, 1, "_CPPv4N4idol6Robust13CCGSeparators7Dualize7DualizeERK7Dualize", "idol::Robust::CCGSeparators::Dualize::Dualize::t_src"], [5, 2, 1, "_CPPv4NK4idol6Robust13CCGSeparators7Dualize5cloneEv", "idol::Robust::CCGSeparators::Dualize::clone"], [5, 2, 1, "_CPPv4NK4idol6Robust13CCGSeparators7DualizeclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Dualize::operator()"], [5, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7DualizeclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Dualize::operator()::t_parent"], [5, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7DualizeclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Dualize::operator()::t_row"], [5, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7DualizeclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Dualize::operator()::t_type"], [5, 4, 1, "_CPPv4NK4idol6Robust13CCGSeparators7DualizeclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType", "idol::Robust::CCGSeparators::Dualize::operator()::t_upper_level_solution"], [5, 2, 1, "_CPPv4N4idol6Robust13CCGSeparators7Dualize14with_optimizerERK16OptimizerFactory", "idol::Robust::CCGSeparators::Dualize::with_optimizer"], [5, 4, 1, "_CPPv4N4idol6Robust13CCGSeparators7Dualize14with_optimizerERK16OptimizerFactory", "idol::Robust::CCGSeparators::Dualize::with_optimizer::t_optimizer_factory"], [7, 1, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilizationE", "idol::Robust::CCGStabilizers::NoStabilization"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization15NoStabilizationERK15NoStabilization", "idol::Robust::CCGStabilizers::NoStabilization::NoStabilization"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization15NoStabilizationERR15NoStabilization", "idol::Robust::CCGStabilizers::NoStabilization::NoStabilization"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization15NoStabilizationEv", "idol::Robust::CCGStabilizers::NoStabilization::NoStabilization"], [7, 1, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8StrategyE", "idol::Robust::CCGStabilizers::NoStabilization::Strategy"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8Strategy39analyze_current_master_problem_solutionEv", "idol::Robust::CCGStabilizers::NoStabilization::Strategy::analyze_current_master_problem_solution"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8Strategy32analyze_last_separation_solutionEv", "idol::Robust::CCGStabilizers::NoStabilization::Strategy::analyze_last_separation_solution"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8Strategy10initializeEv", "idol::Robust::CCGStabilizers::NoStabilization::Strategy::initialize"], [7, 2, 1, "_CPPv4NK4idol6Robust14CCGStabilizers15NoStabilization5cloneEv", "idol::Robust::CCGStabilizers::NoStabilization::clone"], [7, 2, 1, "_CPPv4NK4idol6Robust14CCGStabilizers15NoStabilizationclEv", "idol::Robust::CCGStabilizers::NoStabilization::operator()"], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilizationaSERK15NoStabilization", "idol::Robust::CCGStabilizers::NoStabilization::operator="], [7, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilizationaSERR15NoStabilization", "idol::Robust::CCGStabilizers::NoStabilization::operator="], [9, 1, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegionE", "idol::Robust::CCGStabilizers::TrustRegion"], [9, 1, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8StrategyE", "idol::Robust::CCGStabilizers::TrustRegion::Strategy"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy8StrategyERKNSt6vectorIdEE", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::Strategy"], [9, 4, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy8StrategyERKNSt6vectorIdEE", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::Strategy::t_trust_factors"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy39add_reversed_local_branching_constraintEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::add_reversed_local_branching_constraint"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy39analyze_current_master_problem_solutionEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::analyze_current_master_problem_solution"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy32analyze_last_separation_solutionEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::analyze_last_separation_solution"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy23build_distance_to_pointERKN8Solution6PrimalE", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::build_distance_to_point"], [9, 4, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy23build_distance_to_pointERKN8Solution6PrimalE", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::build_distance_to_point::t_point"], [9, 2, 1, "_CPPv4NK4idol6Robust14CCGStabilizers11TrustRegion8Strategy14current_radiusEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::current_radius"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy10initializeEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::initialize"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy36remove_all_stabilization_constraintsER5Model", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::remove_all_stabilization_constraints"], [9, 4, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy36remove_all_stabilization_constraintsER5Model", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::remove_all_stabilization_constraints::t_model"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy33update_local_branching_constraintEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::update_local_branching_constraint"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy13update_radiusEv", "idol::Robust::CCGStabilizers::TrustRegion::Strategy::update_radius"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion11TrustRegionERK11TrustRegion", "idol::Robust::CCGStabilizers::TrustRegion::TrustRegion"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion11TrustRegionEv", "idol::Robust::CCGStabilizers::TrustRegion::TrustRegion"], [9, 4, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion11TrustRegionERK11TrustRegion", "idol::Robust::CCGStabilizers::TrustRegion::TrustRegion::t_other"], [9, 2, 1, "_CPPv4NK4idol6Robust14CCGStabilizers11TrustRegion5cloneEv", "idol::Robust::CCGStabilizers::TrustRegion::clone"], [9, 2, 1, "_CPPv4NK4idol6Robust14CCGStabilizers11TrustRegionclEv", "idol::Robust::CCGStabilizers::TrustRegion::operator()"], [9, 2, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion18with_trust_factorsENSt6vectorIdEE", "idol::Robust::CCGStabilizers::TrustRegion::with_trust_factors"], [9, 4, 1, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion18with_trust_factorsENSt6vectorIdEE", "idol::Robust::CCGStabilizers::TrustRegion::with_trust_factors::t_trust_factors"], [2, 1, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationE", "idol::Robust::ColumnAndConstraintGeneration"], [43, 1, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationE", "idol::Robust::ColumnAndConstraintGeneration"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERR29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERR29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_lower_level_constraints"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_lower_level_constraints"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_lower_level_variables"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_lower_level_variables"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_src"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_src"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_uncertainty_set"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model", "idol::Robust::ColumnAndConstraintGeneration::ColumnAndConstraintGeneration::t_uncertainty_set"], [2, 2, 1, "_CPPv4I0EN4idol6Robust29ColumnAndConstraintGeneration2asER1Tv", "idol::Robust::ColumnAndConstraintGeneration::as"], [2, 2, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2asERK1Tv", "idol::Robust::ColumnAndConstraintGeneration::as"], [43, 2, 1, "_CPPv4I0EN4idol6Robust29ColumnAndConstraintGeneration2asER1Tv", "idol::Robust::ColumnAndConstraintGeneration::as"], [43, 2, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2asERK1Tv", "idol::Robust::ColumnAndConstraintGeneration::as"], [2, 3, 1, "_CPPv4I0EN4idol6Robust29ColumnAndConstraintGeneration2asER1Tv", "idol::Robust::ColumnAndConstraintGeneration::as::T"], [2, 3, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2asERK1Tv", "idol::Robust::ColumnAndConstraintGeneration::as::T"], [43, 3, 1, "_CPPv4I0EN4idol6Robust29ColumnAndConstraintGeneration2asER1Tv", "idol::Robust::ColumnAndConstraintGeneration::as::T"], [43, 3, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2asERK1Tv", "idol::Robust::ColumnAndConstraintGeneration::as::T"], [2, 2, 1, "_CPPv4NK4idol6Robust29ColumnAndConstraintGeneration5cloneEv", "idol::Robust::ColumnAndConstraintGeneration::clone"], [43, 2, 1, "_CPPv4NK4idol6Robust29ColumnAndConstraintGeneration5cloneEv", "idol::Robust::ColumnAndConstraintGeneration::clone"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_conditional_value"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_conditional_value"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_conditional_value"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_conditional_value"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_else"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_else"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_if"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_if"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_if"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE", "idol::Robust::ColumnAndConstraintGeneration::conditional::t_if"], [2, 2, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2isEbv", "idol::Robust::ColumnAndConstraintGeneration::is"], [43, 2, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2isEbv", "idol::Robust::ColumnAndConstraintGeneration::is"], [2, 3, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2isEbv", "idol::Robust::ColumnAndConstraintGeneration::is::T"], [43, 3, 1, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2isEbv", "idol::Robust::ColumnAndConstraintGeneration::is::T"], [2, 2, 1, "_CPPv4NK4idol6Robust29ColumnAndConstraintGenerationclERK5Model", "idol::Robust::ColumnAndConstraintGeneration::operator()"], [43, 2, 1, "_CPPv4NK4idol6Robust29ColumnAndConstraintGenerationclERK5Model", "idol::Robust::ColumnAndConstraintGeneration::operator()"], [2, 4, 1, "_CPPv4NK4idol6Robust29ColumnAndConstraintGenerationclERK5Model", "idol::Robust::ColumnAndConstraintGeneration::operator()::t_model"], [43, 4, 1, "_CPPv4NK4idol6Robust29ColumnAndConstraintGenerationclERK5Model", "idol::Robust::ColumnAndConstraintGeneration::operator()::t_model"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERK29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::operator="], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERR29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::operator="], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERK29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::operator="], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERR29ColumnAndConstraintGeneration", "idol::Robust::ColumnAndConstraintGeneration::operator="], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_absolute_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_absolute_gap_tolerance"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_absolute_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_absolute_gap_tolerance"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_absolute_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_absolute_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_absolute_gap_tolerance::t_absolute_gap_tolerance"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_best_bound_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_bound_stop"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_best_bound_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_bound_stop"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_best_bound_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_bound_stop::t_best_bound_stop"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_best_bound_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_bound_stop::t_best_bound_stop"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_best_obj_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_obj_stop"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_best_obj_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_obj_stop"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_best_obj_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_obj_stop::t_user_best_obj"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_best_obj_stopEd", "idol::Robust::ColumnAndConstraintGeneration::with_best_obj_stop::t_user_best_obj"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration22with_complete_recourseEb", "idol::Robust::ColumnAndConstraintGeneration::with_complete_recourse"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration22with_complete_recourseEb", "idol::Robust::ColumnAndConstraintGeneration::with_complete_recourse"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration22with_complete_recourseEb", "idol::Robust::ColumnAndConstraintGeneration::with_complete_recourse::t_value"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration22with_complete_recourseEb", "idol::Robust::ColumnAndConstraintGeneration::with_complete_recourse::t_value"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration33with_infeasible_or_unbounded_infoEb", "idol::Robust::ColumnAndConstraintGeneration::with_infeasible_or_unbounded_info"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration33with_infeasible_or_unbounded_infoEb", "idol::Robust::ColumnAndConstraintGeneration::with_infeasible_or_unbounded_info"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration33with_infeasible_or_unbounded_infoEb", "idol::Robust::ColumnAndConstraintGeneration::with_infeasible_or_unbounded_info::t_value"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration33with_infeasible_or_unbounded_infoEb", "idol::Robust::ColumnAndConstraintGeneration::with_infeasible_or_unbounded_info::t_value"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_iteration_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_iteration_limit"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_iteration_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_iteration_limit"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_iteration_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_iteration_limit::t_iteration_count_limit"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_iteration_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_iteration_limit::t_iteration_count_limit"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration9with_logsEb", "idol::Robust::ColumnAndConstraintGeneration::with_logs"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration9with_logsEb", "idol::Robust::ColumnAndConstraintGeneration::with_logs"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration9with_logsEb", "idol::Robust::ColumnAndConstraintGeneration::with_logs::t_value"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration9with_logsEb", "idol::Robust::ColumnAndConstraintGeneration::with_logs::t_value"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration21with_master_optimizerERK16OptimizerFactory", "idol::Robust::ColumnAndConstraintGeneration::with_master_optimizer"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration21with_master_optimizerERK16OptimizerFactory", "idol::Robust::ColumnAndConstraintGeneration::with_master_optimizer"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration21with_master_optimizerERK16OptimizerFactory", "idol::Robust::ColumnAndConstraintGeneration::with_master_optimizer::t_optimizer"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration21with_master_optimizerERK16OptimizerFactory", "idol::Robust::ColumnAndConstraintGeneration::with_master_optimizer::t_optimizer"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration13with_presolveEb", "idol::Robust::ColumnAndConstraintGeneration::with_presolve"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration13with_presolveEb", "idol::Robust::ColumnAndConstraintGeneration::with_presolve"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration13with_presolveEb", "idol::Robust::ColumnAndConstraintGeneration::with_presolve::t_value"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration13with_presolveEb", "idol::Robust::ColumnAndConstraintGeneration::with_presolve::t_value"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_relative_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_relative_gap_tolerance"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_relative_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_relative_gap_tolerance"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_relative_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_relative_gap_tolerance::t_relative_gap_tolerance"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_relative_gap_toleranceEd", "idol::Robust::ColumnAndConstraintGeneration::with_relative_gap_tolerance::t_relative_gap_tolerance"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration14with_separatorERK12CCGSeparator", "idol::Robust::ColumnAndConstraintGeneration::with_separator"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration14with_separatorERK12CCGSeparator", "idol::Robust::ColumnAndConstraintGeneration::with_separator"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration14with_separatorERK12CCGSeparator", "idol::Robust::ColumnAndConstraintGeneration::with_separator::t_separator"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration14with_separatorERK12CCGSeparator", "idol::Robust::ColumnAndConstraintGeneration::with_separator::t_separator"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_stabilizationERK13CCGStabilizer", "idol::Robust::ColumnAndConstraintGeneration::with_stabilization"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_stabilizationERK13CCGStabilizer", "idol::Robust::ColumnAndConstraintGeneration::with_stabilization"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_stabilizationERK13CCGStabilizer", "idol::Robust::ColumnAndConstraintGeneration::with_stabilization::t_stabilizer"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_stabilizationERK13CCGStabilizer", "idol::Robust::ColumnAndConstraintGeneration::with_stabilization::t_stabilizer"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration17with_thread_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_thread_limit"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration17with_thread_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_thread_limit"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration17with_thread_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_thread_limit::t_max_n_threads"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration17with_thread_limitEj", "idol::Robust::ColumnAndConstraintGeneration::with_thread_limit::t_max_n_threads"], [2, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration15with_time_limitEd", "idol::Robust::ColumnAndConstraintGeneration::with_time_limit"], [43, 2, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration15with_time_limitEd", "idol::Robust::ColumnAndConstraintGeneration::with_time_limit"], [2, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration15with_time_limitEd", "idol::Robust::ColumnAndConstraintGeneration::with_time_limit::t_time_limit"], [43, 4, 1, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration15with_time_limitEd", "idol::Robust::ColumnAndConstraintGeneration::with_time_limit::t_time_limit"], [66, 1, 1, "_CPPv4N4idol3RowE", "idol::Row"], [66, 7, 1, "_CPPv4N4idol3Row8EmptyRowE", "idol::Row::EmptyRow"], [66, 2, 1, "_CPPv4N4idol3Row3RowERK3Row", "idol::Row::Row"], [66, 2, 1, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERK4ExprI3Var3VarE", "idol::Row::Row"], [66, 2, 1, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERR4ExprI3Var3VarE", "idol::Row::Row"], [66, 2, 1, "_CPPv4N4idol3Row3RowERR3Row", "idol::Row::Row"], [66, 2, 1, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERK4ExprI3Var3VarE", "idol::Row::Row"], [66, 2, 1, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERR4ExprI3Var3VarE", "idol::Row::Row"], [66, 2, 1, "_CPPv4N4idol3Row3RowEv", "idol::Row::Row"], [66, 4, 1, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERK4ExprI3Var3VarE", "idol::Row::Row::t_lhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERR4ExprI3Var3VarE", "idol::Row::Row::t_lhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERK4ExprI3Var3VarE", "idol::Row::Row::t_lhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERR4ExprI3Var3VarE", "idol::Row::Row::t_lhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERK4ExprI3Var3VarE", "idol::Row::Row::t_rhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERR4ExprI3Var3VarE", "idol::Row::Row::t_rhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERK4ExprI3Var3VarE", "idol::Row::Row::t_rhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERR4ExprI3Var3VarE", "idol::Row::Row::t_rhs"], [66, 4, 1, "_CPPv4N4idol3Row3RowERK3Row", "idol::Row::Row::t_src"], [66, 4, 1, "_CPPv4N4idol3Row3RowERR3Row", "idol::Row::Row::t_src"], [66, 2, 1, "_CPPv4NK4idol3Row3fixERKN8Solution4DualE", "idol::Row::fix"], [66, 2, 1, "_CPPv4NK4idol3Row3fixERKN8Solution6PrimalE", "idol::Row::fix"], [66, 4, 1, "_CPPv4NK4idol3Row3fixERKN8Solution4DualE", "idol::Row::fix::t_duals"], [66, 4, 1, "_CPPv4NK4idol3Row3fixERKN8Solution6PrimalE", "idol::Row::fix::t_primals"], [66, 2, 1, "_CPPv4NK4idol3Row3gcdEv", "idol::Row::gcd"], [66, 2, 1, "_CPPv4NK4idol3Row11is_violatedERKN8Solution6PrimalE7CtrTyped", "idol::Row::is_violated"], [66, 4, 1, "_CPPv4NK4idol3Row11is_violatedERKN8Solution6PrimalE7CtrTyped", "idol::Row::is_violated::t_primals"], [66, 4, 1, "_CPPv4NK4idol3Row11is_violatedERKN8Solution6PrimalE7CtrTyped", "idol::Row::is_violated::t_tolerance"], [66, 4, 1, "_CPPv4NK4idol3Row11is_violatedERKN8Solution6PrimalE7CtrTyped", "idol::Row::is_violated::t_type"], [66, 2, 1, "_CPPv4N4idol3Row6linearEv", "idol::Row::linear"], [66, 2, 1, "_CPPv4NK4idol3Row6linearEv", "idol::Row::linear"], [66, 2, 1, "_CPPv4N4idol3Row38multiply_with_precision_by_power_of_10Ejj", "idol::Row::multiply_with_precision_by_power_of_10"], [66, 4, 1, "_CPPv4N4idol3Row38multiply_with_precision_by_power_of_10Ejj", "idol::Row::multiply_with_precision_by_power_of_10::t_exponent"], [66, 4, 1, "_CPPv4N4idol3Row38multiply_with_precision_by_power_of_10Ejj", "idol::Row::multiply_with_precision_by_power_of_10::t_n_significant_digits"], [66, 2, 1, "_CPPv4N4idol3RowmLEd", "idol::Row::operator*="], [66, 4, 1, "_CPPv4N4idol3RowmLEd", "idol::Row::operator*=::t_rhs"], [66, 2, 1, "_CPPv4N4idol3RowpLERK3Row", "idol::Row::operator+="], [66, 4, 1, "_CPPv4N4idol3RowpLERK3Row", "idol::Row::operator+=::t_rhs"], [66, 2, 1, "_CPPv4N4idol3RowmIERK3Row", "idol::Row::operator-="], [66, 4, 1, "_CPPv4N4idol3RowmIERK3Row", "idol::Row::operator-=::t_rhs"], [66, 2, 1, "_CPPv4N4idol3RowdVEd", "idol::Row::operator/="], [66, 4, 1, "_CPPv4N4idol3RowdVEd", "idol::Row::operator/=::t_rhs"], [66, 2, 1, "_CPPv4N4idol3RowaSERK3Row", "idol::Row::operator="], [66, 2, 1, "_CPPv4N4idol3RowaSERR3Row", "idol::Row::operator="], [66, 4, 1, "_CPPv4N4idol3RowaSERK3Row", "idol::Row::operator=::t_src"], [66, 4, 1, "_CPPv4N4idol3RowaSERR3Row", "idol::Row::operator=::t_src"], [66, 2, 1, "_CPPv4N4idol3Row9quadraticEv", "idol::Row::quadratic"], [66, 2, 1, "_CPPv4NK4idol3Row9quadraticEv", "idol::Row::quadratic"], [66, 2, 1, "_CPPv4N4idol3Row3rhsEv", "idol::Row::rhs"], [66, 2, 1, "_CPPv4NK4idol3Row3rhsEv", "idol::Row::rhs"], [66, 2, 1, "_CPPv4N4idol3Row17scale_to_integersEj", "idol::Row::scale_to_integers"], [66, 4, 1, "_CPPv4N4idol3Row17scale_to_integersEj", "idol::Row::scale_to_integers::t_n_significant_digits"], [66, 2, 1, "_CPPv4N4idol3Row10set_linearERK7LinExprI3VarE", "idol::Row::set_linear"], [66, 2, 1, "_CPPv4N4idol3Row10set_linearERR7LinExprI3VarE", "idol::Row::set_linear"], [66, 4, 1, "_CPPv4N4idol3Row10set_linearERK7LinExprI3VarE", "idol::Row::set_linear::t_lin_expr"], [66, 4, 1, "_CPPv4N4idol3Row10set_linearERR7LinExprI3VarE", "idol::Row::set_linear::t_lin_expr"], [66, 2, 1, "_CPPv4N4idol3Row13set_quadraticERK8QuadExprI3Var3VarE", "idol::Row::set_quadratic"], [66, 2, 1, "_CPPv4N4idol3Row13set_quadraticERR8QuadExprI3Var3VarE", "idol::Row::set_quadratic"], [66, 4, 1, "_CPPv4N4idol3Row13set_quadraticERK8QuadExprI3Var3VarE", "idol::Row::set_quadratic::t_quad_expr"], [66, 4, 1, "_CPPv4N4idol3Row13set_quadraticERR8QuadExprI3Var3VarE", "idol::Row::set_quadratic::t_quad_expr"], [66, 2, 1, "_CPPv4N4idol3Row7set_rhsERK8Constant", "idol::Row::set_rhs"], [66, 2, 1, "_CPPv4N4idol3Row7set_rhsERR8Constant", "idol::Row::set_rhs"], [66, 4, 1, "_CPPv4N4idol3Row7set_rhsERK8Constant", "idol::Row::set_rhs::t_rhs"], [66, 4, 1, "_CPPv4N4idol3Row7set_rhsERR8Constant", "idol::Row::set_rhs::t_rhs"], [66, 2, 1, "_CPPv4NK4idol3Row5valueERKN8Solution6PrimalE", "idol::Row::value"], [66, 4, 1, "_CPPv4NK4idol3Row5valueERKN8Solution6PrimalE", "idol::Row::value::t_primals"], [67, 1, 1, "_CPPv4N4idol8Solution4DualE", "idol::Solution::Dual"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual5beginEv", "idol::Solution::Dual::begin"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual6cbeginEv", "idol::Solution::Dual::cbegin"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual4cendEv", "idol::Solution::Dual::cend"], [67, 0, 1, "_CPPv4N4idol8Solution4Dual14const_iteratorE", "idol::Solution::Dual::const_iterator"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual3endEv", "idol::Solution::Dual::end"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual3getERK3Ctr", "idol::Solution::Dual::get"], [67, 4, 1, "_CPPv4NK4idol8Solution4Dual3getERK3Ctr", "idol::Solution::Dual::get::t_key"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual19has_objective_valueEv", "idol::Solution::Dual::has_objective_value"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual22merge_without_conflictE4Dual", "idol::Solution::Dual::merge_without_conflict"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual22merge_without_conflictE4Dual", "idol::Solution::Dual::merge_without_conflict::t_rhs"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual4normEd", "idol::Solution::Dual::norm"], [67, 4, 1, "_CPPv4NK4idol8Solution4Dual4normEd", "idol::Solution::Dual::norm::t_p"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual9normalizeEd", "idol::Solution::Dual::normalize"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual9normalizeEd", "idol::Solution::Dual::normalize::t_p"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual15objective_valueEv", "idol::Solution::Dual::objective_value"], [67, 2, 1, "_CPPv4N4idol8Solution4DualmLEd", "idol::Solution::Dual::operator*="], [67, 4, 1, "_CPPv4N4idol8Solution4DualmLEd", "idol::Solution::Dual::operator*=::t_factor"], [67, 2, 1, "_CPPv4N4idol8Solution4DualpLERK4Dual", "idol::Solution::Dual::operator+="], [67, 4, 1, "_CPPv4N4idol8Solution4DualpLERK4Dual", "idol::Solution::Dual::operator+=::t_rhs"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual6reasonEv", "idol::Solution::Dual::reason"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual21reset_objective_valueEv", "idol::Solution::Dual::reset_objective_value"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual5roundEj", "idol::Solution::Dual::round"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual5roundEj", "idol::Solution::Dual::round::t_n_digits"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual3setERK3Ctrd", "idol::Solution::Dual::set"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual3setERK3Ctrd", "idol::Solution::Dual::set::t_key"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual3setERK3Ctrd", "idol::Solution::Dual::set::t_value"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual19set_objective_valueEd", "idol::Solution::Dual::set_objective_value"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual19set_objective_valueEd", "idol::Solution::Dual::set_objective_value::t_value"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual10set_reasonE14SolutionReason", "idol::Solution::Dual::set_reason"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual10set_reasonE14SolutionReason", "idol::Solution::Dual::set_reason::t_reason"], [67, 2, 1, "_CPPv4N4idol8Solution4Dual10set_statusE14SolutionStatus", "idol::Solution::Dual::set_status"], [67, 4, 1, "_CPPv4N4idol8Solution4Dual10set_statusE14SolutionStatus", "idol::Solution::Dual::set_status::t_status"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual4sizeEv", "idol::Solution::Dual::size"], [67, 2, 1, "_CPPv4NK4idol8Solution4Dual6statusEv", "idol::Solution::Dual::status"], [68, 1, 1, "_CPPv4N4idol8Solution6PrimalE", "idol::Solution::Primal"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal5beginEv", "idol::Solution::Primal::begin"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal6cbeginEv", "idol::Solution::Primal::cbegin"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal4cendEv", "idol::Solution::Primal::cend"], [68, 0, 1, "_CPPv4N4idol8Solution6Primal14const_iteratorE", "idol::Solution::Primal::const_iterator"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal3endEv", "idol::Solution::Primal::end"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal3getERK3Var", "idol::Solution::Primal::get"], [68, 4, 1, "_CPPv4NK4idol8Solution6Primal3getERK3Var", "idol::Solution::Primal::get::t_key"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal19has_objective_valueEv", "idol::Solution::Primal::has_objective_value"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal22merge_without_conflictE6Primal", "idol::Solution::Primal::merge_without_conflict"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal22merge_without_conflictE6Primal", "idol::Solution::Primal::merge_without_conflict::t_rhs"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal4normEd", "idol::Solution::Primal::norm"], [68, 4, 1, "_CPPv4NK4idol8Solution6Primal4normEd", "idol::Solution::Primal::norm::t_p"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal9normalizeEd", "idol::Solution::Primal::normalize"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal9normalizeEd", "idol::Solution::Primal::normalize::t_p"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal15objective_valueEv", "idol::Solution::Primal::objective_value"], [68, 2, 1, "_CPPv4N4idol8Solution6PrimalmLEd", "idol::Solution::Primal::operator*="], [68, 4, 1, "_CPPv4N4idol8Solution6PrimalmLEd", "idol::Solution::Primal::operator*=::t_factor"], [68, 2, 1, "_CPPv4N4idol8Solution6PrimalpLERK6Primal", "idol::Solution::Primal::operator+="], [68, 4, 1, "_CPPv4N4idol8Solution6PrimalpLERK6Primal", "idol::Solution::Primal::operator+=::t_rhs"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal6reasonEv", "idol::Solution::Primal::reason"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal21reset_objective_valueEv", "idol::Solution::Primal::reset_objective_value"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal5roundEj", "idol::Solution::Primal::round"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal5roundEj", "idol::Solution::Primal::round::t_n_digits"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal3setERK3Vard", "idol::Solution::Primal::set"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal3setERK3Vard", "idol::Solution::Primal::set::t_key"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal3setERK3Vard", "idol::Solution::Primal::set::t_value"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal19set_objective_valueEd", "idol::Solution::Primal::set_objective_value"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal19set_objective_valueEd", "idol::Solution::Primal::set_objective_value::t_value"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal10set_reasonE14SolutionReason", "idol::Solution::Primal::set_reason"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal10set_reasonE14SolutionReason", "idol::Solution::Primal::set_reason::t_reason"], [68, 2, 1, "_CPPv4N4idol8Solution6Primal10set_statusE14SolutionStatus", "idol::Solution::Primal::set_status"], [68, 4, 1, "_CPPv4N4idol8Solution6Primal10set_statusE14SolutionStatus", "idol::Solution::Primal::set_status::t_status"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal4sizeEv", "idol::Solution::Primal::size"], [68, 2, 1, "_CPPv4NK4idol8Solution6Primal6statusEv", "idol::Solution::Primal::status"], [40, 1, 1, "_CPPv4N4idol15StrongBranchingE", "idol::StrongBranching"], [40, 1, 1, "_CPPv4I0EN4idol15StrongBranching8StrategyE", "idol::StrongBranching::Strategy"], [40, 3, 1, "_CPPv4I0EN4idol15StrongBranching8StrategyE", "idol::StrongBranching::Strategy::NodeInfoT"], [40, 2, 1, "_CPPv4N4idol15StrongBranching8Strategy8StrategyERK15StrongBranching", "idol::StrongBranching::Strategy::Strategy"], [40, 2, 1, "_CPPv4N4idol15StrongBranching8Strategy8StrategyERK8StrategyI9NodeInfoTE", "idol::StrongBranching::Strategy::Strategy"], [40, 2, 1, "_CPPv4N4idol15StrongBranching8Strategy8StrategyEv", "idol::StrongBranching::Strategy::Strategy"], [40, 4, 1, "_CPPv4N4idol15StrongBranching8Strategy8StrategyERK15StrongBranching", "idol::StrongBranching::Strategy::Strategy::t_parent"], [40, 4, 1, "_CPPv4N4idol15StrongBranching8Strategy8StrategyERK8StrategyI9NodeInfoTE", "idol::StrongBranching::Strategy::Strategy::t_src"], [40, 2, 1, "_CPPv4NK4idol15StrongBranching8Strategy5cloneEv", "idol::StrongBranching::Strategy::clone"], [40, 2, 1, "_CPPv4NK4idol15StrongBranching8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::StrongBranching::Strategy::operator()"], [40, 2, 1, "_CPPv4NK4idol15StrongBranching8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::StrongBranching::Strategy::operator()"], [40, 4, 1, "_CPPv4NK4idol15StrongBranching8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::StrongBranching::Strategy::operator()::t_parent"], [40, 4, 1, "_CPPv4NK4idol15StrongBranching8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::StrongBranching::Strategy::operator()::t_parent"], [40, 2, 1, "_CPPv4I0EN4idol15StrongBranching15StrongBranchingE9IteratorT9IteratorT", "idol::StrongBranching::StrongBranching"], [40, 2, 1, "_CPPv4N4idol15StrongBranching15StrongBranchingEv", "idol::StrongBranching::StrongBranching"], [40, 3, 1, "_CPPv4I0EN4idol15StrongBranching15StrongBranchingE9IteratorT9IteratorT", "idol::StrongBranching::StrongBranching::IteratorT"], [40, 4, 1, "_CPPv4I0EN4idol15StrongBranching15StrongBranchingE9IteratorT9IteratorT", "idol::StrongBranching::StrongBranching::t_begin"], [40, 4, 1, "_CPPv4I0EN4idol15StrongBranching15StrongBranchingE9IteratorT9IteratorT", "idol::StrongBranching::StrongBranching::t_end"], [40, 2, 1, "_CPPv4N4idol15StrongBranching9add_phaseERK24StrongBranchingPhaseTypejj", "idol::StrongBranching::add_phase"], [40, 4, 1, "_CPPv4N4idol15StrongBranching9add_phaseERK24StrongBranchingPhaseTypejj", "idol::StrongBranching::add_phase::t_max_depth"], [40, 4, 1, "_CPPv4N4idol15StrongBranching9add_phaseERK24StrongBranchingPhaseTypejj", "idol::StrongBranching::add_phase::t_max_n_variables"], [40, 4, 1, "_CPPv4N4idol15StrongBranching9add_phaseERK24StrongBranchingPhaseTypejj", "idol::StrongBranching::add_phase::t_phase"], [40, 2, 1, "_CPPv4N4idol15StrongBranching20with_max_n_variablesEj", "idol::StrongBranching::with_max_n_variables"], [40, 4, 1, "_CPPv4N4idol15StrongBranching20with_max_n_variablesEj", "idol::StrongBranching::with_max_n_variables::t_n_variables"], [40, 2, 1, "_CPPv4N4idol15StrongBranching26with_node_scoring_functionERK17NodeScoreFunction", "idol::StrongBranching::with_node_scoring_function"], [40, 4, 1, "_CPPv4N4idol15StrongBranching26with_node_scoring_functionERK17NodeScoreFunction", "idol::StrongBranching::with_node_scoring_function::t_score_function"], [69, 1, 1, "_CPPv4N4idol7TempCtrE", "idol::TempCtr"], [69, 2, 1, "_CPPv4N4idol7TempCtr7TempCtrERK7TempCtr", "idol::TempCtr::TempCtr"], [69, 2, 1, "_CPPv4N4idol7TempCtr7TempCtrERR3Row7CtrType", "idol::TempCtr::TempCtr"], [69, 2, 1, "_CPPv4N4idol7TempCtr7TempCtrERR7TempCtr", "idol::TempCtr::TempCtr"], [69, 2, 1, "_CPPv4N4idol7TempCtr7TempCtrEv", "idol::TempCtr::TempCtr"], [69, 4, 1, "_CPPv4N4idol7TempCtr7TempCtrERR3Row7CtrType", "idol::TempCtr::TempCtr::t_row"], [69, 4, 1, "_CPPv4N4idol7TempCtr7TempCtrERK7TempCtr", "idol::TempCtr::TempCtr::t_src"], [69, 4, 1, "_CPPv4N4idol7TempCtr7TempCtrERR7TempCtr", "idol::TempCtr::TempCtr::t_src"], [69, 4, 1, "_CPPv4N4idol7TempCtr7TempCtrERR3Row7CtrType", "idol::TempCtr::TempCtr::t_type"], [69, 2, 1, "_CPPv4NK4idol7TempCtr11is_violatedERKN8Solution6PrimalE", "idol::TempCtr::is_violated"], [69, 4, 1, "_CPPv4NK4idol7TempCtr11is_violatedERKN8Solution6PrimalE", "idol::TempCtr::is_violated::t_solution"], [69, 2, 1, "_CPPv4N4idol7TempCtraSERK7TempCtr", "idol::TempCtr::operator="], [69, 2, 1, "_CPPv4N4idol7TempCtraSERR7TempCtr", "idol::TempCtr::operator="], [69, 4, 1, "_CPPv4N4idol7TempCtraSERK7TempCtr", "idol::TempCtr::operator=::t_src"], [69, 4, 1, "_CPPv4N4idol7TempCtraSERR7TempCtr", "idol::TempCtr::operator=::t_src"], [69, 2, 1, "_CPPv4N4idol7TempCtr3rowEv", "idol::TempCtr::row"], [69, 2, 1, "_CPPv4NK4idol7TempCtr3rowEv", "idol::TempCtr::row"], [69, 2, 1, "_CPPv4N4idol7TempCtr8set_typeE7CtrType", "idol::TempCtr::set_type"], [69, 4, 1, "_CPPv4N4idol7TempCtr8set_typeE7CtrType", "idol::TempCtr::set_type::t_type"], [69, 2, 1, "_CPPv4NK4idol7TempCtr4typeEv", "idol::TempCtr::type"], [70, 1, 1, "_CPPv4N4idol7TempVarE", "idol::TempVar"], [70, 2, 1, "_CPPv4N4idol7TempVar7TempVarERK7TempVar", "idol::TempVar::TempVar"], [70, 2, 1, "_CPPv4N4idol7TempVar7TempVarERR7TempVar", "idol::TempVar::TempVar"], [70, 2, 1, "_CPPv4N4idol7TempVar7TempVarEdd7VarTypeRR6Column", "idol::TempVar::TempVar"], [70, 2, 1, "_CPPv4N4idol7TempVar7TempVarEv", "idol::TempVar::TempVar"], [70, 4, 1, "_CPPv4N4idol7TempVar7TempVarEdd7VarTypeRR6Column", "idol::TempVar::TempVar::t_column"], [70, 4, 1, "_CPPv4N4idol7TempVar7TempVarEdd7VarTypeRR6Column", "idol::TempVar::TempVar::t_lb"], [70, 4, 1, "_CPPv4N4idol7TempVar7TempVarERK7TempVar", "idol::TempVar::TempVar::t_src"], [70, 4, 1, "_CPPv4N4idol7TempVar7TempVarERR7TempVar", "idol::TempVar::TempVar::t_src"], [70, 4, 1, "_CPPv4N4idol7TempVar7TempVarEdd7VarTypeRR6Column", "idol::TempVar::TempVar::t_type"], [70, 4, 1, "_CPPv4N4idol7TempVar7TempVarEdd7VarTypeRR6Column", "idol::TempVar::TempVar::t_ub"], [70, 2, 1, "_CPPv4N4idol7TempVar6columnEv", "idol::TempVar::column"], [70, 2, 1, "_CPPv4NK4idol7TempVar6columnEv", "idol::TempVar::column"], [70, 2, 1, "_CPPv4NK4idol7TempVar2lbEv", "idol::TempVar::lb"], [70, 2, 1, "_CPPv4N4idol7TempVaraSERK7TempVar", "idol::TempVar::operator="], [70, 2, 1, "_CPPv4N4idol7TempVaraSERR7TempVar", "idol::TempVar::operator="], [70, 4, 1, "_CPPv4N4idol7TempVaraSERK7TempVar", "idol::TempVar::operator=::t_src"], [70, 4, 1, "_CPPv4N4idol7TempVaraSERR7TempVar", "idol::TempVar::operator=::t_src"], [70, 2, 1, "_CPPv4N4idol7TempVar6set_lbEd", "idol::TempVar::set_lb"], [70, 4, 1, "_CPPv4N4idol7TempVar6set_lbEd", "idol::TempVar::set_lb::t_lb"], [70, 2, 1, "_CPPv4N4idol7TempVar8set_typeE7VarType", "idol::TempVar::set_type"], [70, 4, 1, "_CPPv4N4idol7TempVar8set_typeE7VarType", "idol::TempVar::set_type::t_type"], [70, 2, 1, "_CPPv4N4idol7TempVar6set_ubEd", "idol::TempVar::set_ub"], [70, 4, 1, "_CPPv4N4idol7TempVar6set_ubEd", "idol::TempVar::set_ub::t_ub"], [70, 2, 1, "_CPPv4NK4idol7TempVar4typeEv", "idol::TempVar::type"], [70, 2, 1, "_CPPv4NK4idol7TempVar2ubEv", "idol::TempVar::ub"], [18, 0, 1, "_CPPv4N4idol9ToleranceE", "idol::Tolerance"], [98, 0, 1, "_CPPv4N4idol9ToleranceE", "idol::Tolerance"], [18, 7, 1, "_CPPv4N4idol9Tolerance6DigitsE", "idol::Tolerance::Digits"], [98, 7, 1, "_CPPv4N4idol9Tolerance6DigitsE", "idol::Tolerance::Digits"], [18, 7, 1, "_CPPv4N4idol9Tolerance11FeasibilityE", "idol::Tolerance::Feasibility"], [98, 7, 1, "_CPPv4N4idol9Tolerance11FeasibilityE", "idol::Tolerance::Feasibility"], [18, 7, 1, "_CPPv4N4idol9Tolerance7IntegerE", "idol::Tolerance::Integer"], [98, 7, 1, "_CPPv4N4idol9Tolerance7IntegerE", "idol::Tolerance::Integer"], [18, 7, 1, "_CPPv4N4idol9Tolerance14MIPAbsoluteGapE", "idol::Tolerance::MIPAbsoluteGap"], [98, 7, 1, "_CPPv4N4idol9Tolerance14MIPAbsoluteGapE", "idol::Tolerance::MIPAbsoluteGap"], [18, 7, 1, "_CPPv4N4idol9Tolerance14MIPRelativeGapE", "idol::Tolerance::MIPRelativeGap"], [98, 7, 1, "_CPPv4N4idol9Tolerance14MIPRelativeGapE", "idol::Tolerance::MIPRelativeGap"], [18, 7, 1, "_CPPv4N4idol9Tolerance10OptimalityE", "idol::Tolerance::Optimality"], [98, 7, 1, "_CPPv4N4idol9Tolerance10OptimalityE", "idol::Tolerance::Optimality"], [18, 7, 1, "_CPPv4N4idol9Tolerance8SparsityE", "idol::Tolerance::Sparsity"], [98, 7, 1, "_CPPv4N4idol9Tolerance8SparsityE", "idol::Tolerance::Sparsity"], [41, 1, 1, "_CPPv4N4idol15UniformlyRandomE", "idol::UniformlyRandom"], [41, 1, 1, "_CPPv4I0EN4idol15UniformlyRandom8StrategyE", "idol::UniformlyRandom::Strategy"], [41, 3, 1, "_CPPv4I0EN4idol15UniformlyRandom8StrategyE", "idol::UniformlyRandom::Strategy::NodeInfoT"], [41, 2, 1, "_CPPv4N4idol15UniformlyRandom8Strategy8StrategyERK15UniformlyRandom", "idol::UniformlyRandom::Strategy::Strategy"], [41, 2, 1, "_CPPv4N4idol15UniformlyRandom8Strategy8StrategyEv", "idol::UniformlyRandom::Strategy::Strategy"], [41, 4, 1, "_CPPv4N4idol15UniformlyRandom8Strategy8StrategyERK15UniformlyRandom", "idol::UniformlyRandom::Strategy::Strategy::t_parent"], [41, 2, 1, "_CPPv4NK4idol15UniformlyRandom8Strategy5cloneEv", "idol::UniformlyRandom::Strategy::clone"], [41, 2, 1, "_CPPv4NK4idol15UniformlyRandom8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::UniformlyRandom::Strategy::operator()"], [41, 2, 1, "_CPPv4NK4idol15UniformlyRandom8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::UniformlyRandom::Strategy::operator()"], [41, 4, 1, "_CPPv4NK4idol15UniformlyRandom8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE", "idol::UniformlyRandom::Strategy::operator()::t_parent"], [41, 4, 1, "_CPPv4NK4idol15UniformlyRandom8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE", "idol::UniformlyRandom::Strategy::operator()::t_parent"], [41, 2, 1, "_CPPv4I0EN4idol15UniformlyRandom15UniformlyRandomE9IteratorT9IteratorT", "idol::UniformlyRandom::UniformlyRandom"], [41, 2, 1, "_CPPv4N4idol15UniformlyRandom15UniformlyRandomEv", "idol::UniformlyRandom::UniformlyRandom"], [41, 3, 1, "_CPPv4I0EN4idol15UniformlyRandom15UniformlyRandomE9IteratorT9IteratorT", "idol::UniformlyRandom::UniformlyRandom::IteratorT"], [41, 4, 1, "_CPPv4I0EN4idol15UniformlyRandom15UniformlyRandomE9IteratorT9IteratorT", "idol::UniformlyRandom::UniformlyRandom::t_begin"], [41, 4, 1, "_CPPv4I0EN4idol15UniformlyRandom15UniformlyRandomE9IteratorT9IteratorT", "idol::UniformlyRandom::UniformlyRandom::t_end"], [41, 2, 1, "_CPPv4N4idol15UniformlyRandom9with_seedEj", "idol::UniformlyRandom::with_seed"], [41, 4, 1, "_CPPv4N4idol15UniformlyRandom9with_seedEj", "idol::UniformlyRandom::with_seed::t_seed"], [95, 1, 1, "_CPPv4N4idol15UserCutCallbackE", "idol::UserCutCallback"], [95, 1, 1, "_CPPv4N4idol15UserCutCallback8StrategyE", "idol::UserCutCallback::Strategy"], [95, 2, 1, "_CPPv4N4idol15UserCutCallback8Strategy8StrategyEP5Model7TempCtr8LogLevel5Color", "idol::UserCutCallback::Strategy::Strategy"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback8Strategy8StrategyEP5Model7TempCtr8LogLevel5Color", "idol::UserCutCallback::Strategy::Strategy::t_cut"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback8Strategy8StrategyEP5Model7TempCtr8LogLevel5Color", "idol::UserCutCallback::Strategy::Strategy::t_log_color"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback8Strategy8StrategyEP5Model7TempCtr8LogLevel5Color", "idol::UserCutCallback::Strategy::Strategy::t_log_level"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback8Strategy8StrategyEP5Model7TempCtr8LogLevel5Color", "idol::UserCutCallback::Strategy::Strategy::t_separation_problem"], [95, 2, 1, "_CPPv4N4idol15UserCutCallback15UserCutCallbackERK5Model7TempCtr", "idol::UserCutCallback::UserCutCallback"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback15UserCutCallbackERK5Model7TempCtr", "idol::UserCutCallback::UserCutCallback::t_cut"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback15UserCutCallbackERK5Model7TempCtr", "idol::UserCutCallback::UserCutCallback::t_model"], [95, 2, 1, "_CPPv4NK4idol15UserCutCallback5cloneEv", "idol::UserCutCallback::clone"], [95, 2, 1, "_CPPv4N4idol15UserCutCallbackclEv", "idol::UserCutCallback::operator()"], [95, 2, 1, "_CPPv4N4idol15UserCutCallback25with_separation_optimizerERK16OptimizerFactory", "idol::UserCutCallback::with_separation_optimizer"], [95, 4, 1, "_CPPv4N4idol15UserCutCallback25with_separation_optimizerERK16OptimizerFactory", "idol::UserCutCallback::with_separation_optimizer::t_optimizer_factory"], [71, 1, 1, "_CPPv4N4idol3VarE", "idol::Var"], [71, 2, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE", "idol::Var::Var"], [71, 2, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var"], [71, 2, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var"], [71, 2, 1, "_CPPv4N4idol3Var3VarERK3Var", "idol::Var::Var"], [71, 2, 1, "_CPPv4N4idol3Var3VarERR3Var", "idol::Var::Var"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var::t_column"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var::t_column"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE", "idol::Var::Var::t_env"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var::t_env"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var::t_env"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE", "idol::Var::Var::t_lb"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var::t_lb"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var::t_lb"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE", "idol::Var::Var::t_name"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var::t_name"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var::t_name"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE", "idol::Var::Var::t_type"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var::t_type"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var::t_type"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE", "idol::Var::Var::t_ub"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE", "idol::Var::Var::t_ub"], [71, 4, 1, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE", "idol::Var::Var::t_ub"], [71, 2, 1, "_CPPv4NK4idol3Var3getERK10AnnotationI3Var6ValueTE", "idol::Var::get"], [71, 4, 1, "_CPPv4NK4idol3Var3getERK10AnnotationI3Var6ValueTE", "idol::Var::get::t_annotation"], [71, 2, 1, "_CPPv4NK4idol3Var2idEv", "idol::Var::id"], [71, 2, 1, "_CPPv4NK4idol3Var5is_inERK5Model", "idol::Var::is_in"], [71, 4, 1, "_CPPv4NK4idol3Var5is_inERK5Model", "idol::Var::is_in::t_model"], [71, 2, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector"], [71, 3, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::I"], [71, 3, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::N"], [71, 4, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::t_dim"], [71, 4, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::t_env"], [71, 4, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::t_lb"], [71, 4, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::t_name"], [71, 4, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::t_type"], [71, 4, 1, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE", "idol::Var::make_vector::t_ub"], [71, 2, 1, "_CPPv4NK4idol3Var4nameEv", "idol::Var::name"], [71, 2, 1, "_CPPv4N4idol3VaraSERK3Var", "idol::Var::operator="], [71, 2, 1, "_CPPv4N4idol3VaraSERR3Var", "idol::Var::operator="], [71, 2, 1, "_CPPv4NK4idol3Var3setERK10AnnotationI3Var6ValueTEDpRR5ArgsT", "idol::Var::set"], [71, 4, 1, "_CPPv4NK4idol3Var3setERK10AnnotationI3Var6ValueTEDpRR5ArgsT", "idol::Var::set::t_annotation"], [71, 4, 1, "_CPPv4NK4idol3Var3setERK10AnnotationI3Var6ValueTEDpRR5ArgsT", "idol::Var::set::t_args"], [72, 6, 1, "_CPPv4N4idol7VarTypeE", "idol::VarType"], [100, 6, 1, "_CPPv4N4idol7VarTypeE", "idol::VarType"], [72, 5, 1, "_CPPv4N4idol7VarType6BinaryE", "idol::VarType::Binary"], [100, 5, 1, "_CPPv4N4idol7VarType6BinaryE", "idol::VarType::Binary"], [72, 5, 1, "_CPPv4N4idol7VarType10ContinuousE", "idol::VarType::Continuous"], [100, 5, 1, "_CPPv4N4idol7VarType10ContinuousE", "idol::VarType::Continuous"], [72, 5, 1, "_CPPv4N4idol7VarType7IntegerE", "idol::VarType::Integer"], [100, 5, 1, "_CPPv4N4idol7VarType7IntegerE", "idol::VarType::Integer"], [33, 1, 1, "_CPPv4N4idol10WorstBoundE", "idol::WorstBound"], [33, 1, 1, "_CPPv4I0EN4idol10WorstBound8StrategyE", "idol::WorstBound::Strategy"], [33, 3, 1, "_CPPv4I0EN4idol10WorstBound8StrategyE", "idol::WorstBound::Strategy::NodeT"], [33, 2, 1, "_CPPv4N4idol10WorstBound8Strategy8StrategyERK10WorstBound", "idol::WorstBound::Strategy::Strategy"], [33, 4, 1, "_CPPv4N4idol10WorstBound8Strategy8StrategyERK10WorstBound", "idol::WorstBound::Strategy::Strategy::t_parent"], [33, 2, 1, "_CPPv4NK4idol10WorstBound8Strategy5cloneEv", "idol::WorstBound::Strategy::clone"], [33, 2, 1, "_CPPv4NK4idol10WorstBound8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::WorstBound::Strategy::operator()"], [33, 4, 1, "_CPPv4NK4idol10WorstBound8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE", "idol::WorstBound::Strategy::operator()::t_parent"], [18, 2, 1, "_CPPv4N4idol12absolute_gapEdd", "idol::absolute_gap"], [98, 2, 1, "_CPPv4N4idol12absolute_gapEdd", "idol::absolute_gap"], [18, 4, 1, "_CPPv4N4idol12absolute_gapEdd", "idol::absolute_gap::t_lb"], [98, 4, 1, "_CPPv4N4idol12absolute_gapEdd", "idol::absolute_gap::t_lb"], [18, 4, 1, "_CPPv4N4idol12absolute_gapEdd", "idol::absolute_gap::t_ub"], [98, 4, 1, "_CPPv4N4idol12absolute_gapEdd", "idol::absolute_gap::t_ub"], [18, 2, 1, "_CPPv4N4idol6equalsEddd", "idol::equals"], [98, 2, 1, "_CPPv4N4idol6equalsEddd", "idol::equals"], [18, 4, 1, "_CPPv4N4idol6equalsEddd", "idol::equals::t_a"], [98, 4, 1, "_CPPv4N4idol6equalsEddd", "idol::equals::t_a"], [18, 4, 1, "_CPPv4N4idol6equalsEddd", "idol::equals::t_b"], [98, 4, 1, "_CPPv4N4idol6equalsEddd", "idol::equals::t_b"], [18, 4, 1, "_CPPv4N4idol6equalsEddd", "idol::equals::t_tolerance"], [98, 4, 1, "_CPPv4N4idol6equalsEddd", "idol::equals::t_tolerance"], [18, 2, 1, "_CPPv4N4idol6is_infEd", "idol::is_inf"], [98, 2, 1, "_CPPv4N4idol6is_infEd", "idol::is_inf"], [18, 4, 1, "_CPPv4N4idol6is_infEd", "idol::is_inf::t_value"], [98, 4, 1, "_CPPv4N4idol6is_infEd", "idol::is_inf::t_value"], [18, 2, 1, "_CPPv4N4idol10is_integerEdd", "idol::is_integer"], [98, 2, 1, "_CPPv4N4idol10is_integerEdd", "idol::is_integer"], [18, 4, 1, "_CPPv4N4idol10is_integerEdd", "idol::is_integer::t_tolerance"], [98, 4, 1, "_CPPv4N4idol10is_integerEdd", "idol::is_integer::t_tolerance"], [18, 4, 1, "_CPPv4N4idol10is_integerEdd", "idol::is_integer::t_value"], [98, 4, 1, "_CPPv4N4idol10is_integerEdd", "idol::is_integer::t_value"], [18, 2, 1, "_CPPv4N4idol10is_neg_infEd", "idol::is_neg_inf"], [98, 2, 1, "_CPPv4N4idol10is_neg_infEd", "idol::is_neg_inf"], [18, 4, 1, "_CPPv4N4idol10is_neg_infEd", "idol::is_neg_inf::t_value"], [98, 4, 1, "_CPPv4N4idol10is_neg_infEd", "idol::is_neg_inf::t_value"], [18, 2, 1, "_CPPv4N4idol10is_pos_infEd", "idol::is_pos_inf"], [98, 2, 1, "_CPPv4N4idol10is_pos_infEd", "idol::is_pos_inf"], [18, 4, 1, "_CPPv4N4idol10is_pos_infEd", "idol::is_pos_inf::t_value"], [98, 4, 1, "_CPPv4N4idol10is_pos_infEd", "idol::is_pos_inf::t_value"], [18, 2, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision"], [98, 2, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision"], [18, 4, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision::t_a"], [98, 4, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision::t_a"], [18, 4, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision::t_b"], [98, 4, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision::t_b"], [18, 4, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision::t_n_digits"], [98, 4, 1, "_CPPv4N4idol23multiply_with_precisionEddj", "idol::multiply_with_precision::t_n_digits"], [18, 2, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10"], [98, 2, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10"], [18, 4, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10::t_exponent"], [98, 4, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10::t_exponent"], [18, 4, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10::t_n_digits"], [98, 4, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10::t_n_digits"], [18, 4, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10::t_x"], [98, 4, 1, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj", "idol::multiply_with_precision_by_power_of_10::t_x"], [18, 2, 1, "_CPPv4N4idol12relative_gapEdd", "idol::relative_gap"], [98, 2, 1, "_CPPv4N4idol12relative_gapEdd", "idol::relative_gap"], [18, 4, 1, "_CPPv4N4idol12relative_gapEdd", "idol::relative_gap::t_lb"], [98, 4, 1, "_CPPv4N4idol12relative_gapEdd", "idol::relative_gap::t_lb"], [18, 4, 1, "_CPPv4N4idol12relative_gapEdd", "idol::relative_gap::t_ub"], [98, 4, 1, "_CPPv4N4idol12relative_gapEdd", "idol::relative_gap::t_ub"], [18, 2, 1, "_CPPv4N4idol5roundEdj", "idol::round"], [98, 2, 1, "_CPPv4N4idol5roundEdj", "idol::round"], [18, 4, 1, "_CPPv4N4idol5roundEdj", "idol::round::t_n_digits"], [98, 4, 1, "_CPPv4N4idol5roundEdj", "idol::round::t_n_digits"], [18, 4, 1, "_CPPv4N4idol5roundEdj", "idol::round::t_value"], [98, 4, 1, "_CPPv4N4idol5roundEdj", "idol::round::t_value"]]}, "objtypes": {"0": "cpp:type", "1": "cpp:class", "2": "cpp:function", "3": "cpp:templateParam", "4": "cpp:functionParam", "5": "cpp:enumerator", "6": "cpp:enum", "7": "cpp:member"}, "objnames": {"0": ["cpp", "type", "C++ type"], "1": ["cpp", "class", "C++ class"], "2": ["cpp", "function", "C++ function"], "3": ["cpp", "templateParam", "C++ template parameter"], "4": ["cpp", "functionParam", "C++ function parameter"], "5": ["cpp", "enumerator", "C++ enumerator"], "6": ["cpp", "enum", "C++ enum"], "7": ["cpp", "member", "C++ member"]}, "titleterms": {"api": [0, 99], "optim": [1, 11, 44, 50, 75, 81, 82, 83, 84, 91, 110, 112, 123, 125, 136], "robust": [2, 7, 9, 11, 43, 44, 91, 136], "columnandconstraintgener": [2, 43, 44], "column": [3, 45, 51, 56, 110, 112], "constraint": [3, 45, 123], "gener": [3, 13, 45, 51, 109, 110, 112], "problem": [3, 12, 13, 14, 15, 16, 17, 108, 109, 111, 120, 123, 124], "class": [3, 91, 103], "regard": 3, "coupl": 3, "min": 3, "max": 3, "The": [3, 120, 129], "algorithm": [3, 28, 45, 51, 112, 129], "basic": [3, 122], "idea": 3, "separ": [3, 6], "On": 3, "impact": 3, "bilevel": [4, 74, 75, 76, 91, 110, 125], "dualiz": 5, "ccgstabil": [7, 9], "nostabil": 7, "stabil": [8, 10, 54, 132], "trustregion": 9, "trust": 10, "region": 10, "facil": [12, 108], "locat": [12, 108], "flp": 12, "assign": [13, 109], "gap": 13, "knapsack": [14, 15, 111], "kp": 14, "multipl": 15, "mkp": 15, "staff": 16, "roster": 16, "srp": 16, "toler": [18, 98], "numer": [18, 98], "branchandbound": 19, "exampl": [19, 20, 62, 63, 92, 106, 107, 110, 112, 113, 117, 118, 124, 129], "branchandboundcallback": 20, "branchandboundcallbackfactori": 21, "cut": [22, 23, 120], "knapsackcov": 22, "plane": 23, "heurist": [24, 25, 26, 27, 37, 49, 130], "localbranch": [24, 37], "ren": 25, "simpleround": 26, "branch": [28, 42, 110, 112, 126, 127, 128, 129, 131, 133], "bound": [28, 110, 112, 126, 127], "bestbound": 29, "bestestim": 30, "breadthfirst": 31, "depthfirst": 32, "worstbound": 33, "node": 34, "select": 34, "rule": [34, 42], "firstinfeasiblefound": 35, "leastinfeas": 36, "mostinfeas": 38, "pseudocost": 39, "strongbranch": 40, "uniformlyrandom": 41, "dantzigwolf": [46, 48, 52, 53], "artificialcost": 46, "dantzigwolfedecomposit": [47, 50], "farkaspr": 48, "integermast": 49, "neam": 52, "wentg": 53, "annot": 55, "constant": [57, 97, 123], "ctr": 58, "ctrtype": 59, "env": [60, 123], "expr": 61, "linexpr": 62, "model": [63, 120, 121, 123, 124, 129], "param": 64, "quadexpr": 65, "row": 66, "solut": [67, 68, 124], "dual": [67, 120], "primal": 68, "tempctr": 69, "tempvar": 70, "var": 71, "vartyp": [72, 100], "common": [73, 97, 101], "mib": [74, 75], "extern": [76, 90, 112, 113, 118, 124], "solver": [76, 90, 112, 113, 118, 124], "glpk": [77, 81, 118], "gurobi": [78, 82, 113, 118], "high": [79, 83, 118], "mosek": [80, 84, 117, 118], "osicbc": 85, "osiclp": 86, "osicplex": 87, "osisymphoni": 88, "coin": 89, "OR": 89, "osi": 89, "cplex": 89, "xpress": 89, "cbc": 89, "mip": [90, 112], "list": [91, 101, 103, 118], "mix": [91, 110, 135], "integ": [91, 110, 135], "program": [91, 110, 135], "callback": [92, 96], "usercutcallback": [92, 95], "lazycutcallback": [92, 94], "creat": [92, 113, 129], "your": [92, 115], "own": 92, "callbackfactori": 93, "univers": 96, "type": [101, 114], "event": 102, "build": [104, 106, 113, 118], "doc": 104, "depend": [104, 106], "descript": 104, "instal": [104, 106, 113, 114, 116], "guid": [104, 105, 106], "ubuntu": [104, 106], "instruct": [104, 106, 129], "develop": 105, "unit": [106, 118], "integr": [106, 118], "test": [106, 118], "code": 106, "coverag": 106, "option": [106, 118], "toi": 107, "price": [110, 129, 130, 131], "what": [112, 123], "i": 112, "idol": [112, 115, 117], "get": 112, "start": 112, "With": 112, "thi": 112, "current": 112, "featur": 112, "interfac": [112, 117], "b": 112, "cg": 112, "dantzig": [112, 129], "wolf": [112, 129], "decomposit": [112, 120, 129], "benchmark": 112, "tabl": [112, 114], "content": [112, 114], "global": 113, "target": 113, "link": [113, 115, 117, 118], "c": 115, "project": 115, "local": 116, "us": [117, 124], "eigen": 117, "solv": [117, 120, 124], "qp": 117, "socp": 117, "cmake": 118, "For": 118, "commerci": 118, "open": 118, "sourc": 118, "martinu": 118, "robin": 118, "hood": 118, "hash": 118, "refer": 119, "lazi": 120, "bender": 120, "mathemat": [120, 129], "origin": [120, 129], "formul": [120, 129], "reformul": [120, 129], "implement": [120, 133], "master": 120, "space": 120, "lambda": 120, "ad": 120, "import": 121, "A": [121, 124], "read": 121, "write": 121, "conclus": [121, 133], "variabl": 123, "about": [123, 124], "express": 123, "object": 123, "function": [123, 133], "access": [123, 124], "Then": 123, "an": 124, "first": 124, "approach": 124, "more": 124, "eleg": 124, "rang": 124, "101": [126, 129], "come": [126, 128, 130, 132], "prioriti": 128, "automat": 129, "give": 129, "In": 132, "out": 132, "strong": 133, "introduct": 133, "score": 133, "full": 133, "restrict": 133, "look": 133, "ahead": 133, "phase": 133, "tutori": 134}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9, "sphinx": 60}, "alltitles": {"API": [[0, "api"], [99, "api"]], "Optimizers": [[1, "optimizers"]], "Robust::ColumnAndConstraintGeneration": [[2, "robust-columnandconstraintgeneration"], [43, "robust-columnandconstraintgeneration"]], "Column-and-Constraint Generation": [[3, "column-and-constraint-generation"]], "Problem Class": [[3, "problem-class"]], "Regarding Coupling Constraints": [[3, null]], "Min-Max-Min Problems": [[3, "min-max-min-problems"]], "The Algorithm": [[3, "the-algorithm"]], "Basic Idea": [[3, "basic-idea"]], "Separators": [[3, "separators"]], "On the Impact of Coupling Constraints": [[3, "on-the-impact-of-coupling-constraints"]], "Bilevel": [[4, "bilevel"]], "Dualize": [[5, "dualize"]], "Separation and Separators": [[6, "separation-and-separators"]], "Robust::CCGStabilizers::NoStabilization": [[7, "robust-ccgstabilizers-nostabilization"]], "Stabilization": [[8, "stabilization"], [54, "stabilization"]], "Robust::CCGStabilizers::TrustRegion": [[9, "robust-ccgstabilizers-trustregion"]], "Trust Region Stabilization": [[10, "trust-region-stabilization"]], "Robust Optimization": [[11, "robust-optimization"], [91, "robust-optimization"], [136, "robust-optimization"]], "Facility Location Problem (FLP)": [[12, "facility-location-problem-flp"]], "Generalized Assignment Problem (GAP)": [[13, "generalized-assignment-problem-gap"]], "Knapsack Problem (KP)": [[14, "knapsack-problem-kp"]], "Multiple Knapsack Problem (MKP)": [[15, "multiple-knapsack-problem-mkp"]], "Staff Rostering Problem (SRP)": [[16, "staff-rostering-problem-srp"]], "Problems": [[17, "problems"]], "Tolerances and Numerics": [[18, "tolerances-and-numerics"], [98, "tolerances-and-numerics"]], "BranchAndBound": [[19, "branchandbound"]], "Example": [[19, null], [20, null], [62, null], [92, null], [106, null], [106, null], [112, null], [117, null], [118, null], [118, null], [118, null], [118, null], [118, null], [118, null], [124, null], [129, null]], "BranchAndBoundCallback": [[20, "branchandboundcallback"]], "BranchAndBoundCallbackFactory": [[21, "branchandboundcallbackfactory"]], "Cuts::KnapsackCover": [[22, "cuts-knapsackcover"]], "Cutting Planes": [[23, "cutting-planes"]], "Heuristics::LocalBranching": [[24, "heuristics-localbranching"], [37, "heuristics-localbranching"]], "Heuristics::RENS": [[25, "heuristics-rens"]], "Heuristics::SimpleRounding": [[26, "heuristics-simplerounding"]], "Heuristics": [[27, "heuristics"]], "Branch-and-Bound Algorithm": [[28, "branch-and-bound-algorithm"]], "BestBound": [[29, "bestbound"]], "BestEstimate": [[30, "bestestimate"]], "BreadthFirst": [[31, "breadthfirst"]], "DepthFirst": [[32, "depthfirst"]], "WorstBound": [[33, "worstbound"]], "Node Selection Rules": [[34, "node-selection-rules"]], "FirstInfeasibleFound": [[35, "firstinfeasiblefound"]], "LeastInfeasible": [[36, "leastinfeasible"]], "MostInfeasible": [[38, "mostinfeasible"]], "PseudoCost": [[39, "pseudocost"]], "StrongBranching": [[40, "strongbranching"]], "UniformlyRandom": [[41, "uniformlyrandom"]], "Branching Rules": [[42, "branching-rules"]], "Optimizers::Robust::ColumnAndConstraintGeneration": [[44, "optimizers-robust-columnandconstraintgeneration"]], "Column-and-Constraint Generation Algorithm": [[45, "column-and-constraint-generation-algorithm"]], "DantzigWolfe::ArtificialCosts": [[46, "dantzigwolfe-artificialcosts"]], "DantzigWolfeDecomposition": [[47, "dantzigwolfedecomposition"]], "DantzigWolfe::FarkasPricing": [[48, "dantzigwolfe-farkaspricing"]], "Heuristics::IntegerMaster": [[49, "heuristics-integermaster"]], "Optimizers::DantzigWolfeDecomposition": [[50, "optimizers-dantzigwolfedecomposition"]], "Column Generation Algorithm": [[51, "column-generation-algorithm"]], "DantzigWolfe::Neame": [[52, "dantzigwolfe-neame"]], "DantzigWolfe::Wentges": [[53, "dantzigwolfe-wentges"]], "Annotation": [[55, "annotation"]], "Column": [[56, "column"]], "Constant": [[57, "constant"]], "Ctr": [[58, "ctr"]], "CtrType": [[59, "ctrtype"]], "Env": [[60, "env"], [123, "env"]], "Expr": [[61, "expr"]], "LinExpr": [[62, "linexpr"]], "Model": [[63, "model"], [123, "model"]], "Example:": [[63, null]], "Param": [[64, "param"]], "QuadExpr": [[65, "quadexpr"]], "Row": [[66, "row"]], "Solution::Dual": [[67, "solution-dual"]], "Solution::Primal": [[68, "solution-primal"]], "TempCtr": [[69, "tempctr"]], "TempVar": [[70, "tempvar"]], "Var": [[71, "var"]], "VarType": [[72, "vartype"], [100, "vartype"]], "Common": [[73, "common"], [97, "common"], [101, "common"]], "Bilevel::Mibs": [[74, "bilevel-mibs"]], "Optimizers::Bilevel::Mibs": [[75, "optimizers-bilevel-mibs"]], "External Bilevel Solvers": [[76, "external-bilevel-solvers"]], "GLPK": [[77, "glpk"]], "Gurobi": [[78, "gurobi"]], "HiGHS": [[79, "highs"]], "Mosek": [[80, "mosek"]], "Optimizers::GLPK": [[81, "optimizers-glpk"]], "Optimizers::Gurobi": [[82, "optimizers-gurobi"]], "Optimizers::HiGHS": [[83, "optimizers-highs"]], "Optimizers::Mosek": [[84, "optimizers-mosek"]], "OsiCbc": [[85, "osicbc"]], "OsiClp": [[86, "osiclp"]], "OsiCplex": [[87, "osicplex"]], "OsiSymphony": [[88, "osisymphony"]], "COIN-OR/Osi (Cplex, Xpress, Cbc, \u2026)": [[89, "coin-or-osi-cplex-xpress-cbc"]], "External MIP solvers": [[90, "external-mip-solvers"]], "Class List": [[91, "class-list"], [103, "class-list"]], "Mixed-Integer Programming": [[91, "mixed-integer-programming"], [110, "mixed-integer-programming"], [135, "mixed-integer-programming"]], "Bilevel Optimization": [[91, "bilevel-optimization"], [110, "bilevel-optimization"], [125, "bilevel-optimization"]], "Callback": [[92, "callback"]], "UserCutCallback and LazyCutCallback": [[92, "usercutcallback-and-lazycutcallback"]], "Creating your own callback": [[92, "creating-your-own-callback"]], "CallbackFactory": [[93, "callbackfactory"]], "LazyCutCallback": [[94, "lazycutcallback"]], "UserCutCallback": [[95, "usercutcallback"]], "Universal Callbacks": [[96, "universal-callbacks"]], "Constants": [[97, "constants"]], "Type List": [[101, "type-list"]], "Events": [[102, "events"]], "Build the doc!": [[104, "build-the-doc"]], "Dependencies": [[104, "dependencies"], [106, "dependencies"]], "Description": [[104, "description"]], "Installation guide (Ubuntu)": [[104, "installation-guide-ubuntu"], [106, "installation-guide-ubuntu"]], "Build instructions": [[104, "build-instructions"], [106, "build-instructions"]], "Developer guide": [[105, "developer-guide"]], "Unit and integration tests": [[106, "unit-and-integration-tests"]], "Code coverage options": [[106, "code-coverage-options"]], "Toy Example": [[107, "toy-example"]], "Facility Location Problem": [[108, "facility-location-problem"]], "Generalized Assignment Problem": [[109, "generalized-assignment-problem"]], "Examples": [[110, "examples"]], "Branch-and-Bound": [[110, "branch-and-bound"], [127, "branch-and-bound"]], "Column Generation and Branch-and-Price": [[110, "column-generation-and-branch-and-price"]], "Knapsack Problem": [[111, "knapsack-problem"]], "What Is Idol?": [[112, "what-is-idol"]], "Getting Started With Idol": [[112, "getting-started-with-idol"]], "Is This a MIP Solver?": [[112, "is-this-a-mip-solver"]], "Current Features": [[112, "current-features"]], "Interfacing External Optimization Solvers": [[112, "interfacing-external-optimization-solvers"]], "Branch-and-Bound (B&B) Algorithms": [[112, "branch-and-bound-b-b-algorithms"]], "Column Generation (CG) and Dantzig-Wolfe Decomposition": [[112, "column-generation-cg-and-dantzig-wolfe-decomposition"]], "Benchmark": [[112, "benchmark"]], "Table of contents": [[112, "table-of-contents"]], "Global Installation": [[113, "global-installation"]], "Creating the install Target": [[113, "creating-the-install-target"]], "Example for Gurobi": [[113, null]], "Building": [[113, "building"]], "Installing": [[113, "installing"]], "Linking with External Solvers": [[113, "linking-with-external-solvers"], [118, "linking-with-external-solvers"]], "Installation": [[114, "installation"]], "Installation Types": [[114, "installation-types"]], "Table of Contents": [[114, "table-of-contents"]], "Linking Your C++ Project with Idol": [[115, "linking-your-c-project-with-idol"]], "Local Installation": [[116, "local-installation"]], "Using Idol with Eigen": [[117, "using-idol-with-eigen"]], "\u201cLinking\u201d with Eigen": [[117, "linking-with-eigen"]], "Interfacing Mosek for Solving QPs and SOCPs": [[117, "interfacing-mosek-for-solving-qps-and-socps"]], "List of CMake Options": [[118, "list-of-cmake-options"]], "For Gurobi (Commercial Solver)": [[118, "for-gurobi-commercial-solver"]], "For Mosek (Commercial Solver)": [[118, "for-mosek-commercial-solver"]], "For GLPK (Open-Source Solver)": [[118, "for-glpk-open-source-solver"]], "For HiGHS (Open-Source Solver)": [[118, "for-highs-open-source-solver"]], "Building Examples": [[118, "building-examples"]], "Linking with martinus/robin-hood-hashing": [[118, "linking-with-martinus-robin-hood-hashing"]], "Building Unit and Integration Tests": [[118, "building-unit-and-integration-tests"]], "References": [[119, "references"]], "Lazy Cuts and Benders Decomposition": [[120, "lazy-cuts-and-benders-decomposition"]], "Mathematical Model": [[120, "mathematical-model"]], "Original Formulation": [[120, "original-formulation"], [129, "original-formulation"]], "Benders Reformulation": [[120, "benders-reformulation"]], "Implementation": [[120, "implementation"], [133, "implementation"]], "The Master Problem": [[120, "the-master-problem"]], "The Dual Space \\Lambda": [[120, "the-dual-space-lambda"]], "The Cuts to be Added": [[120, "the-cuts-to-be-added"]], "Solving the Model": [[120, "solving-the-model"]], "Importing A Model": [[121, "importing-a-model"]], "Reading a Model": [[121, "reading-a-model"]], "Writing a Model": [[121, "writing-a-model"]], "Conclusion": [[121, "conclusion"], [133, "conclusion"]], "Basics": [[122, "basics"]], "Modeling Optimization Problems": [[123, "modeling-optimization-problems"]], "Variables": [[123, "variables"]], "Constraints": [[123, "constraints"]], "About constants in expressions": [[123, null]], "Objective Function": [[123, "objective-function"]], "Accessing the Objects of a Model": [[123, "accessing-the-objects-of-a-model"]], "What Then?": [[123, "what-then"]], "Using An External Solver": [[124, "using-an-external-solver"]], "Modeling": [[124, "modeling"]], "A first approach": [[124, "a-first-approach"]], "A more elegant approach": [[124, "a-more-elegant-approach"]], "About Range": [[124, null]], "Solving the problem using an external solver": [[124, "solving-the-problem-using-an-external-solver"]], "Accessing the solution": [[124, "accessing-the-solution"]], "Branch-and-Bound 101 (to come)": [[126, "branch-and-bound-101-to-come"]], "Branching with Priorities (to come)": [[128, "branching-with-priorities-to-come"]], "Branch-and-Price 101": [[129, "branch-and-price-101"]], "Mathematical Models": [[129, "mathematical-models"]], "Dantzig-Wolfe Reformulation": [[129, "dantzig-wolfe-reformulation"]], "Automatic Reformulation": [[129, "automatic-reformulation"]], "The Original Formulation": [[129, "the-original-formulation"]], "Giving Decomposition Instructions": [[129, "giving-decomposition-instructions"]], "Creating the Branch-and-Price Algorithm": [[129, "creating-the-branch-and-price-algorithm"]], "Heuristic Pricing (to come)": [[130, "heuristic-pricing-to-come"]], "Branch-and-Price": [[131, "branch-and-price"]], "In-Out Stabilization (to come)": [[132, "in-out-stabilization-to-come"]], "Strong Branching": [[133, "strong-branching"]], "Introduction": [[133, "introduction"]], "Scoring Functions": [[133, "scoring-functions"]], "Full Strong Branching": [[133, "full-strong-branching"], [133, "id3"]], "Restricted Strong Branching": [[133, "restricted-strong-branching"], [133, "id4"]], "Strong Branching with Look Ahead": [[133, "strong-branching-with-look-ahead"]], "Strong Branching with Phases": [[133, "strong-branching-with-phases"]], "Phases": [[133, "phases"]], "Tutorials": [[134, "tutorials"]]}, "indexentries": {"idol::robust::columnandconstraintgeneration (c++ class)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationE"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationE"]], "idol::robust::columnandconstraintgeneration::columnandconstraintgeneration (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model"], [2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK29ColumnAndConstraintGeneration"], [2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERR29ColumnAndConstraintGeneration"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK10AnnotationI3VarjERK10AnnotationI3CtrjERK5Model"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK29ColumnAndConstraintGeneration"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERR29ColumnAndConstraintGeneration"]], "idol::robust::columnandconstraintgeneration::as (c++ function)": [[2, "_CPPv4I0EN4idol6Robust29ColumnAndConstraintGeneration2asER1Tv"], [2, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2asERK1Tv"], [43, "_CPPv4I0EN4idol6Robust29ColumnAndConstraintGeneration2asER1Tv"], [43, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2asERK1Tv"]], "idol::robust::columnandconstraintgeneration::clone (c++ function)": [[2, "_CPPv4NK4idol6Robust29ColumnAndConstraintGeneration5cloneEv"], [43, "_CPPv4NK4idol6Robust29ColumnAndConstraintGeneration5cloneEv"]], "idol::robust::columnandconstraintgeneration::conditional (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE"], [2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEE"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration11conditionalEbRKNSt8functionIFvR29ColumnAndConstraintGenerationEEERKNSt8functionIFvR29ColumnAndConstraintGenerationEEE"]], "idol::robust::columnandconstraintgeneration::is (c++ function)": [[2, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2isEbv"], [43, "_CPPv4I0ENK4idol6Robust29ColumnAndConstraintGeneration2isEbv"]], "idol::robust::columnandconstraintgeneration::operator() (c++ function)": [[2, "_CPPv4NK4idol6Robust29ColumnAndConstraintGenerationclERK5Model"], [43, "_CPPv4NK4idol6Robust29ColumnAndConstraintGenerationclERK5Model"]], "idol::robust::columnandconstraintgeneration::operator= (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERK29ColumnAndConstraintGeneration"], [2, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERR29ColumnAndConstraintGeneration"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERK29ColumnAndConstraintGeneration"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGenerationaSERR29ColumnAndConstraintGeneration"]], "idol::robust::columnandconstraintgeneration::with_absolute_gap_tolerance (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_absolute_gap_toleranceEd"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_absolute_gap_toleranceEd"]], "idol::robust::columnandconstraintgeneration::with_best_bound_stop (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_best_bound_stopEd"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_best_bound_stopEd"]], "idol::robust::columnandconstraintgeneration::with_best_obj_stop (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_best_obj_stopEd"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_best_obj_stopEd"]], "idol::robust::columnandconstraintgeneration::with_complete_recourse (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration22with_complete_recourseEb"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration22with_complete_recourseEb"]], "idol::robust::columnandconstraintgeneration::with_infeasible_or_unbounded_info (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration33with_infeasible_or_unbounded_infoEb"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration33with_infeasible_or_unbounded_infoEb"]], "idol::robust::columnandconstraintgeneration::with_iteration_limit (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_iteration_limitEj"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration20with_iteration_limitEj"]], "idol::robust::columnandconstraintgeneration::with_logs (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration9with_logsEb"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration9with_logsEb"]], "idol::robust::columnandconstraintgeneration::with_master_optimizer (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration21with_master_optimizerERK16OptimizerFactory"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration21with_master_optimizerERK16OptimizerFactory"]], "idol::robust::columnandconstraintgeneration::with_presolve (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration13with_presolveEb"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration13with_presolveEb"]], "idol::robust::columnandconstraintgeneration::with_relative_gap_tolerance (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_relative_gap_toleranceEd"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration27with_relative_gap_toleranceEd"]], "idol::robust::columnandconstraintgeneration::with_separator (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration14with_separatorERK12CCGSeparator"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration14with_separatorERK12CCGSeparator"]], "idol::robust::columnandconstraintgeneration::with_stabilization (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_stabilizationERK13CCGStabilizer"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration18with_stabilizationERK13CCGStabilizer"]], "idol::robust::columnandconstraintgeneration::with_thread_limit (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration17with_thread_limitEj"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration17with_thread_limitEj"]], "idol::robust::columnandconstraintgeneration::with_time_limit (c++ function)": [[2, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration15with_time_limitEd"], [43, "_CPPv4N4idol6Robust29ColumnAndConstraintGeneration15with_time_limitEd"]], "idol::robust::ccgseparators::bilevel (c++ class)": [[4, "_CPPv4N4idol6Robust13CCGSeparators7BilevelE"]], "idol::robust::ccgseparators::bilevel::clone (c++ function)": [[4, "_CPPv4NK4idol6Robust13CCGSeparators7Bilevel5cloneEv"]], "idol::robust::ccgseparators::bilevel::operator() (c++ function)": [[4, "_CPPv4NK4idol6Robust13CCGSeparators7BilevelclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType"]], "idol::robust::ccgseparators::dualize (c++ class)": [[5, "_CPPv4N4idol6Robust13CCGSeparators7DualizeE"]], "idol::robust::ccgseparators::dualize::dualize (c++ function)": [[5, "_CPPv4N4idol6Robust13CCGSeparators7Dualize7DualizeERK7Dualize"], [5, "_CPPv4N4idol6Robust13CCGSeparators7Dualize7DualizeEv"]], "idol::robust::ccgseparators::dualize::clone (c++ function)": [[5, "_CPPv4NK4idol6Robust13CCGSeparators7Dualize5cloneEv"]], "idol::robust::ccgseparators::dualize::operator() (c++ function)": [[5, "_CPPv4NK4idol6Robust13CCGSeparators7DualizeclERKN10Optimizers6Robust29ColumnAndConstraintGenerationERKN8Solution6PrimalERK3Row7CtrType"]], "idol::robust::ccgseparators::dualize::with_optimizer (c++ function)": [[5, "_CPPv4N4idol6Robust13CCGSeparators7Dualize14with_optimizerERK16OptimizerFactory"]], "idol::robust::ccgstabilizers::nostabilization (c++ class)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilizationE"]], "idol::robust::ccgstabilizers::nostabilization::nostabilization (c++ function)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization15NoStabilizationERK15NoStabilization"], [7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization15NoStabilizationERR15NoStabilization"], [7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization15NoStabilizationEv"]], "idol::robust::ccgstabilizers::nostabilization::strategy (c++ class)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8StrategyE"]], "idol::robust::ccgstabilizers::nostabilization::strategy::analyze_current_master_problem_solution (c++ function)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8Strategy39analyze_current_master_problem_solutionEv"]], "idol::robust::ccgstabilizers::nostabilization::strategy::analyze_last_separation_solution (c++ function)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8Strategy32analyze_last_separation_solutionEv"]], "idol::robust::ccgstabilizers::nostabilization::strategy::initialize (c++ function)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilization8Strategy10initializeEv"]], "idol::robust::ccgstabilizers::nostabilization::clone (c++ function)": [[7, "_CPPv4NK4idol6Robust14CCGStabilizers15NoStabilization5cloneEv"]], "idol::robust::ccgstabilizers::nostabilization::operator() (c++ function)": [[7, "_CPPv4NK4idol6Robust14CCGStabilizers15NoStabilizationclEv"]], "idol::robust::ccgstabilizers::nostabilization::operator= (c++ function)": [[7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilizationaSERK15NoStabilization"], [7, "_CPPv4N4idol6Robust14CCGStabilizers15NoStabilizationaSERR15NoStabilization"]], "idol::robust::ccgstabilizers::trustregion (c++ class)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegionE"]], "idol::robust::ccgstabilizers::trustregion::strategy (c++ class)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8StrategyE"]], "idol::robust::ccgstabilizers::trustregion::strategy::strategy (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy8StrategyERKNSt6vectorIdEE"]], "idol::robust::ccgstabilizers::trustregion::strategy::add_reversed_local_branching_constraint (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy39add_reversed_local_branching_constraintEv"]], "idol::robust::ccgstabilizers::trustregion::strategy::analyze_current_master_problem_solution (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy39analyze_current_master_problem_solutionEv"]], "idol::robust::ccgstabilizers::trustregion::strategy::analyze_last_separation_solution (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy32analyze_last_separation_solutionEv"]], "idol::robust::ccgstabilizers::trustregion::strategy::build_distance_to_point (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy23build_distance_to_pointERKN8Solution6PrimalE"]], "idol::robust::ccgstabilizers::trustregion::strategy::current_radius (c++ function)": [[9, "_CPPv4NK4idol6Robust14CCGStabilizers11TrustRegion8Strategy14current_radiusEv"]], "idol::robust::ccgstabilizers::trustregion::strategy::initialize (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy10initializeEv"]], "idol::robust::ccgstabilizers::trustregion::strategy::remove_all_stabilization_constraints (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy36remove_all_stabilization_constraintsER5Model"]], "idol::robust::ccgstabilizers::trustregion::strategy::update_local_branching_constraint (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy33update_local_branching_constraintEv"]], "idol::robust::ccgstabilizers::trustregion::strategy::update_radius (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion8Strategy13update_radiusEv"]], "idol::robust::ccgstabilizers::trustregion::trustregion (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion11TrustRegionERK11TrustRegion"], [9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion11TrustRegionEv"]], "idol::robust::ccgstabilizers::trustregion::clone (c++ function)": [[9, "_CPPv4NK4idol6Robust14CCGStabilizers11TrustRegion5cloneEv"]], "idol::robust::ccgstabilizers::trustregion::operator() (c++ function)": [[9, "_CPPv4NK4idol6Robust14CCGStabilizers11TrustRegionclEv"]], "idol::robust::ccgstabilizers::trustregion::with_trust_factors (c++ function)": [[9, "_CPPv4N4idol6Robust14CCGStabilizers11TrustRegion18with_trust_factorsENSt6vectorIdEE"]], "idol::problems::flp (c++ type)": [[12, "_CPPv4N4idol8Problems3FLPE"]], "idol::problems::flp::instance (c++ class)": [[12, "_CPPv4N4idol8Problems3FLP8InstanceE"]], "idol::problems::flp::instance::instance (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP8Instance8InstanceEjj"]], "idol::problems::flp::instance::capacity (c++ function)": [[12, "_CPPv4NK4idol8Problems3FLP8Instance8capacityEj"]], "idol::problems::flp::instance::demand (c++ function)": [[12, "_CPPv4NK4idol8Problems3FLP8Instance6demandEj"]], "idol::problems::flp::instance::fixed_cost (c++ function)": [[12, "_CPPv4NK4idol8Problems3FLP8Instance10fixed_costEj"]], "idol::problems::flp::instance::n_customers (c++ function)": [[12, "_CPPv4NK4idol8Problems3FLP8Instance11n_customersEv"]], "idol::problems::flp::instance::n_facilities (c++ function)": [[12, "_CPPv4NK4idol8Problems3FLP8Instance12n_facilitiesEv"]], "idol::problems::flp::instance::per_unit_transportation_cost (c++ function)": [[12, "_CPPv4NK4idol8Problems3FLP8Instance28per_unit_transportation_costEjj"]], "idol::problems::flp::instance::set_capacity (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP8Instance12set_capacityEjd"]], "idol::problems::flp::instance::set_demand (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP8Instance10set_demandEjd"]], "idol::problems::flp::instance::set_fixed_cost (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP8Instance14set_fixed_costEjd"]], "idol::problems::flp::instance::set_per_unit_transportation_cost (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP8Instance32set_per_unit_transportation_costEjjd"]], "idol::problems::flp::generate_instance_1991_cornuejols_et_al (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP39generate_instance_1991_Cornuejols_et_alEjjd"]], "idol::problems::flp::operator<< (c++ function)": [[12, "_CPPv4N4idol8Problems3FLPlsERNSt7ostreamERKN4idol8Problems3FLP8InstanceE"]], "idol::problems::flp::read_instance_1991_cornuejols_et_al (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP35read_instance_1991_Cornuejols_et_alERKNSt6stringE"]], "idol::problems::flp::read_instance_2021_cheng_et_al (c++ function)": [[12, "_CPPv4N4idol8Problems3FLP30read_instance_2021_Cheng_et_alERKNSt6stringE"]], "idol::problems::gap (c++ type)": [[13, "_CPPv4N4idol8Problems3GAPE"]], "idol::problems::gap::instance (c++ class)": [[13, "_CPPv4N4idol8Problems3GAP8InstanceE"]], "idol::problems::gap::instance::instance (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP8Instance8InstanceERK8Instance"], [13, "_CPPv4N4idol8Problems3GAP8Instance8InstanceERR8Instance"], [13, "_CPPv4N4idol8Problems3GAP8Instance8InstanceEjj"]], "idol::problems::gap::instance::capacity (c++ function)": [[13, "_CPPv4NK4idol8Problems3GAP8Instance8capacityEj"]], "idol::problems::gap::instance::cost (c++ function)": [[13, "_CPPv4NK4idol8Problems3GAP8Instance4costEjj"]], "idol::problems::gap::instance::n_agents (c++ function)": [[13, "_CPPv4NK4idol8Problems3GAP8Instance8n_agentsEv"]], "idol::problems::gap::instance::n_jobs (c++ function)": [[13, "_CPPv4NK4idol8Problems3GAP8Instance6n_jobsEv"]], "idol::problems::gap::instance::operator= (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP8InstanceaSERK8Instance"], [13, "_CPPv4N4idol8Problems3GAP8InstanceaSERR8Instance"]], "idol::problems::gap::instance::resource_consumption (c++ function)": [[13, "_CPPv4NK4idol8Problems3GAP8Instance20resource_consumptionEjj"]], "idol::problems::gap::instance::set_capacity (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP8Instance12set_capacityEjd"]], "idol::problems::gap::instance::set_cost (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP8Instance8set_costEjjd"]], "idol::problems::gap::instance::set_resource_consumption (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP8Instance24set_resource_consumptionEjjd"]], "idol::problems::gap::instance::~instance (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP8InstanceD0Ev"]], "idol::problems::gap::generate_instance_chu_and_beasley_1997_c (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP40generate_instance_Chu_and_Beasley_1997_CEjj"]], "idol::problems::gap::operator<< (c++ function)": [[13, "_CPPv4N4idol8Problems3GAPlsERNSt7ostreamERKN4idol8Problems3GAP8InstanceE"]], "idol::problems::gap::read_instance (c++ function)": [[13, "_CPPv4N4idol8Problems3GAP13read_instanceERKNSt6stringE"]], "idol::problems::kp (c++ type)": [[14, "_CPPv4N4idol8Problems2KPE"]], "idol::problems::kp::instance (c++ class)": [[14, "_CPPv4N4idol8Problems2KP8InstanceE"]], "idol::problems::kp::instance::instance (c++ function)": [[14, "_CPPv4N4idol8Problems2KP8Instance8InstanceERK8Instance"], [14, "_CPPv4N4idol8Problems2KP8Instance8InstanceERR8Instance"], [14, "_CPPv4N4idol8Problems2KP8Instance8InstanceEj"]], "idol::problems::kp::instance::capacity (c++ function)": [[14, "_CPPv4NK4idol8Problems2KP8Instance8capacityEv"]], "idol::problems::kp::instance::n_items (c++ function)": [[14, "_CPPv4NK4idol8Problems2KP8Instance7n_itemsEv"]], "idol::problems::kp::instance::operator= (c++ function)": [[14, "_CPPv4N4idol8Problems2KP8InstanceaSERK8Instance"], [14, "_CPPv4N4idol8Problems2KP8InstanceaSERR8Instance"]], "idol::problems::kp::instance::profit (c++ function)": [[14, "_CPPv4NK4idol8Problems2KP8Instance6profitEj"]], "idol::problems::kp::instance::set_capacity (c++ function)": [[14, "_CPPv4N4idol8Problems2KP8Instance12set_capacityEd"]], "idol::problems::kp::instance::set_profit (c++ function)": [[14, "_CPPv4N4idol8Problems2KP8Instance10set_profitEjd"]], "idol::problems::kp::instance::set_weight (c++ function)": [[14, "_CPPv4N4idol8Problems2KP8Instance10set_weightEjd"]], "idol::problems::kp::instance::weight (c++ function)": [[14, "_CPPv4NK4idol8Problems2KP8Instance6weightEj"]], "idol::problems::kp::instance::~instance (c++ function)": [[14, "_CPPv4N4idol8Problems2KP8InstanceD0Ev"]], "idol::problems::kp::read_instance (c++ function)": [[14, "_CPPv4N4idol8Problems2KP13read_instanceERKNSt6stringE"]], "idol::problems::kp::read_instance_kplib (c++ function)": [[14, "_CPPv4N4idol8Problems2KP19read_instance_kplibERKNSt6stringE"]], "idol::problems::mkp (c++ type)": [[15, "_CPPv4N4idol8Problems3MKPE"]], "idol::problems::mkp::instance (c++ class)": [[15, "_CPPv4N4idol8Problems3MKP8InstanceE"]], "idol::problems::mkp::instance::instance (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP8Instance8InstanceERK8Instance"], [15, "_CPPv4N4idol8Problems3MKP8Instance8InstanceERR8Instance"], [15, "_CPPv4N4idol8Problems3MKP8Instance8InstanceEjj"]], "idol::problems::mkp::instance::capacities (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance10capacitiesEv"]], "idol::problems::mkp::instance::capacity (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance8capacityEj"]], "idol::problems::mkp::instance::n_items (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance7n_itemsEv"]], "idol::problems::mkp::instance::n_knapsacks (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance11n_knapsacksEv"]], "idol::problems::mkp::instance::operator= (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP8InstanceaSERK8Instance"], [15, "_CPPv4N4idol8Problems3MKP8InstanceaSERR8Instance"]], "idol::problems::mkp::instance::profit (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance6profitEj"]], "idol::problems::mkp::instance::profits (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance7profitsEv"]], "idol::problems::mkp::instance::set_capacity (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP8Instance12set_capacityEjd"]], "idol::problems::mkp::instance::set_profit (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP8Instance10set_profitEjd"]], "idol::problems::mkp::instance::set_weight (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP8Instance10set_weightEjd"]], "idol::problems::mkp::instance::weight (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance6weightEj"]], "idol::problems::mkp::instance::weights (c++ function)": [[15, "_CPPv4NK4idol8Problems3MKP8Instance7weightsEv"]], "idol::problems::mkp::instance::~instance (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP8InstanceD0Ev"]], "idol::problems::mkp::read_instance (c++ function)": [[15, "_CPPv4N4idol8Problems3MKP13read_instanceERKNSt6stringE"]], "idol::problems::srp (c++ type)": [[16, "_CPPv4N4idol8Problems3SRPE"]], "idol::problems::srp::instance (c++ class)": [[16, "_CPPv4N4idol8Problems3SRP8InstanceE"]], "idol::problems::srp::instance::instance (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance8InstanceEjjj"]], "idol::problems::srp::instance::demand (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance6demandEj"]], "idol::problems::srp::instance::n_part_time_staff (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance17n_part_time_staffEv"]], "idol::problems::srp::instance::n_regular_staff (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance15n_regular_staffEv"]], "idol::problems::srp::instance::n_time_periods (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance14n_time_periodsEv"]], "idol::problems::srp::instance::operator<< (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8InstancelsERNSt7ostreamERK8Instance"]], "idol::problems::srp::instance::part_time_fixed_wage_cost (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance25part_time_fixed_wage_costEjj"]], "idol::problems::srp::instance::part_time_staff_hourly_wage_cost (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance32part_time_staff_hourly_wage_costEjj"]], "idol::problems::srp::instance::part_time_staff_maximum_number_of_shifts (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance40part_time_staff_maximum_number_of_shiftsEj"]], "idol::problems::srp::instance::part_time_staff_minimum_number_of_shifts (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance40part_time_staff_minimum_number_of_shiftsEj"]], "idol::problems::srp::instance::read_instance_from_file (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance23read_instance_from_fileERKNSt6stringE"]], "idol::problems::srp::instance::regular_staff_fixed_wage_cost (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance29regular_staff_fixed_wage_costEjj"]], "idol::problems::srp::instance::regular_staff_maximum_number_of_shifts (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance38regular_staff_maximum_number_of_shiftsEj"]], "idol::problems::srp::instance::regular_staff_minimum_number_of_shifts (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance38regular_staff_minimum_number_of_shiftsEj"]], "idol::problems::srp::instance::set_demand (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance10set_demandEjd"]], "idol::problems::srp::instance::set_part_time_fixed_wage_cost (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance29set_part_time_fixed_wage_costEjjd"]], "idol::problems::srp::instance::set_part_time_staff_hourly_wage_cost (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance36set_part_time_staff_hourly_wage_costEjjd"]], "idol::problems::srp::instance::set_part_time_staff_maximum_number_of_shifts (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_maximum_number_of_shiftsEjd"]], "idol::problems::srp::instance::set_part_time_staff_minimum_number_of_shifts (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance44set_part_time_staff_minimum_number_of_shiftsEjd"]], "idol::problems::srp::instance::set_regular_staff_fixed_wage_cost (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance33set_regular_staff_fixed_wage_costEjjd"]], "idol::problems::srp::instance::set_regular_staff_maximum_number_of_shifts (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_maximum_number_of_shiftsEjd"]], "idol::problems::srp::instance::set_regular_staff_minimum_number_of_shifts (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance42set_regular_staff_minimum_number_of_shiftsEjd"]], "idol::problems::srp::instance::set_regular_staff_shift_duration (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance32set_regular_staff_shift_durationEj"]], "idol::problems::srp::instance::set_unmet_demand_penalty_cost (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP8Instance29set_unmet_demand_penalty_costEjd"]], "idol::problems::srp::instance::shift_duration (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance14shift_durationEv"]], "idol::problems::srp::instance::unmet_demand_penalty_cost (c++ function)": [[16, "_CPPv4NK4idol8Problems3SRP8Instance25unmet_demand_penalty_costEj"]], "idol::problems::srp::generate_random_instance_zhao_et_al_2012 (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP40generate_random_instance_Zhao_et_al_2012Ejjj"]], "idol::problems::srp::operator<< (c++ function)": [[16, "_CPPv4N4idol8Problems3SRPlsERNSt7ostreamERK8Instance"]], "idol::problems::srp::read_instance_from_file (c++ function)": [[16, "_CPPv4N4idol8Problems3SRP23read_instance_from_fileERKNSt6stringE"]], "idol (c++ type)": [[18, "_CPPv44idol"], [98, "_CPPv44idol"]], "idol::inf (c++ member)": [[18, "_CPPv4N4idol3InfE"], [98, "_CPPv4N4idol3InfE"]], "idol::tolerance (c++ type)": [[18, "_CPPv4N4idol9ToleranceE"], [98, "_CPPv4N4idol9ToleranceE"]], "idol::tolerance::digits (c++ member)": [[18, "_CPPv4N4idol9Tolerance6DigitsE"], [98, "_CPPv4N4idol9Tolerance6DigitsE"]], "idol::tolerance::feasibility (c++ member)": [[18, "_CPPv4N4idol9Tolerance11FeasibilityE"], [98, "_CPPv4N4idol9Tolerance11FeasibilityE"]], "idol::tolerance::integer (c++ member)": [[18, "_CPPv4N4idol9Tolerance7IntegerE"], [98, "_CPPv4N4idol9Tolerance7IntegerE"]], "idol::tolerance::mipabsolutegap (c++ member)": [[18, "_CPPv4N4idol9Tolerance14MIPAbsoluteGapE"], [98, "_CPPv4N4idol9Tolerance14MIPAbsoluteGapE"]], "idol::tolerance::miprelativegap (c++ member)": [[18, "_CPPv4N4idol9Tolerance14MIPRelativeGapE"], [98, "_CPPv4N4idol9Tolerance14MIPRelativeGapE"]], "idol::tolerance::optimality (c++ member)": [[18, "_CPPv4N4idol9Tolerance10OptimalityE"], [98, "_CPPv4N4idol9Tolerance10OptimalityE"]], "idol::tolerance::sparsity (c++ member)": [[18, "_CPPv4N4idol9Tolerance8SparsityE"], [98, "_CPPv4N4idol9Tolerance8SparsityE"]], "idol::absolute_gap (c++ function)": [[18, "_CPPv4N4idol12absolute_gapEdd"], [98, "_CPPv4N4idol12absolute_gapEdd"]], "idol::equals (c++ function)": [[18, "_CPPv4N4idol6equalsEddd"], [98, "_CPPv4N4idol6equalsEddd"]], "idol::is_inf (c++ function)": [[18, "_CPPv4N4idol6is_infEd"], [98, "_CPPv4N4idol6is_infEd"]], "idol::is_integer (c++ function)": [[18, "_CPPv4N4idol10is_integerEdd"], [98, "_CPPv4N4idol10is_integerEdd"]], "idol::is_neg_inf (c++ function)": [[18, "_CPPv4N4idol10is_neg_infEd"], [98, "_CPPv4N4idol10is_neg_infEd"]], "idol::is_pos_inf (c++ function)": [[18, "_CPPv4N4idol10is_pos_infEd"], [98, "_CPPv4N4idol10is_pos_infEd"]], "idol::multiply_with_precision (c++ function)": [[18, "_CPPv4N4idol23multiply_with_precisionEddj"], [98, "_CPPv4N4idol23multiply_with_precisionEddj"]], "idol::multiply_with_precision_by_power_of_10 (c++ function)": [[18, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj"], [98, "_CPPv4N4idol38multiply_with_precision_by_power_of_10Edjj"]], "idol::relative_gap (c++ function)": [[18, "_CPPv4N4idol12relative_gapEdd"], [98, "_CPPv4N4idol12relative_gapEdd"]], "idol::round (c++ function)": [[18, "_CPPv4N4idol5roundEdj"], [98, "_CPPv4N4idol5roundEdj"]], "idol::branchandbound (c++ class)": [[19, "_CPPv4I0EN4idol14BranchAndBoundE"]], "idol::branchandbound::branchandbound (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound14BranchAndBoundERK14BranchAndBound"], [19, "_CPPv4N4idol14BranchAndBound14BranchAndBoundERR14BranchAndBound"], [19, "_CPPv4N4idol14BranchAndBound14BranchAndBoundEv"]], "idol::branchandbound::add_callback (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound12add_callbackERK15CallbackFactory"], [19, "_CPPv4N4idol14BranchAndBound12add_callbackERK29BranchAndBoundCallbackFactoryI5NodeTE"]], "idol::branchandbound::as (c++ function)": [[19, "_CPPv4I0EN4idol14BranchAndBound2asER1Tv"], [19, "_CPPv4I0ENK4idol14BranchAndBound2asERK1Tv"]], "idol::branchandbound::clone (c++ function)": [[19, "_CPPv4NK4idol14BranchAndBound5cloneEv"]], "idol::branchandbound::conditional (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE"], [19, "_CPPv4N4idol14BranchAndBound11conditionalEbRKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEERKNSt8functionIFvR14BranchAndBoundIN4idol15DefaultNodeInfoEEEEE"]], "idol::branchandbound::is (c++ function)": [[19, "_CPPv4I0ENK4idol14BranchAndBound2isEbv"]], "idol::branchandbound::only_if_has_strategy (c++ type)": [[19, "_CPPv4I00EN4idol14BranchAndBound20only_if_has_StrategyE"]], "idol::branchandbound::operator() (c++ function)": [[19, "_CPPv4NK4idol14BranchAndBoundclERK5Model"]], "idol::branchandbound::operator+= (c++ function)": [[19, "_CPPv4N4idol14BranchAndBoundpLERK16OptimizerFactory"]], "idol::branchandbound::operator= (c++ function)": [[19, "_CPPv4N4idol14BranchAndBoundaSERK14BranchAndBound"], [19, "_CPPv4N4idol14BranchAndBoundaSERR14BranchAndBound"]], "idol::branchandbound::set_node_optimizer (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound18set_node_optimizerERK16OptimizerFactory"]], "idol::branchandbound::with_absolute_gap_tolerance (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound27with_absolute_gap_toleranceEd"]], "idol::branchandbound::with_best_bound_stop (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound20with_best_bound_stopEd"]], "idol::branchandbound::with_best_obj_stop (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound18with_best_obj_stopEd"]], "idol::branchandbound::with_branching_rule (c++ function)": [[19, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE21BranchingRuleFactoryTERK21BranchingRuleFactoryT"], [19, "_CPPv4I0EN4idol14BranchAndBound19with_branching_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE21BranchingRuleFactoryTEERK21BranchingRuleFactoryT"], [19, "_CPPv4N4idol14BranchAndBound19with_branching_ruleERK20BranchingRuleFactoryI5NodeTE"]], "idol::branchandbound::with_infeasible_or_unbounded_info (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound33with_infeasible_or_unbounded_infoEb"]], "idol::branchandbound::with_iteration_limit (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound20with_iteration_limitEj"]], "idol::branchandbound::with_logger (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound11with_loggerERKN4Logs14BranchAndBound7FactoryI5NodeTEE"]], "idol::branchandbound::with_logs (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound9with_logsEb"]], "idol::branchandbound::with_node_optimizer (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound19with_node_optimizerERK16OptimizerFactory"]], "idol::branchandbound::with_node_selection_rule (c++ function)": [[19, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleE20only_if_has_StrategyIR14BranchAndBoundI5NodeTE25NodeSelectionRuleFactoryTERK25NodeSelectionRuleFactoryT"], [19, "_CPPv4I0EN4idol14BranchAndBound24with_node_selection_ruleEN4idol14BranchAndBoundI5NodeTE20only_if_has_StrategyIRN4idol14BranchAndBoundI5NodeTEE25NodeSelectionRuleFactoryTEERK25NodeSelectionRuleFactoryT"], [19, "_CPPv4N4idol14BranchAndBound24with_node_selection_ruleERK24NodeSelectionRuleFactoryI5NodeTE"]], "idol::branchandbound::with_presolve (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound13with_presolveEb"]], "idol::branchandbound::with_relative_gap_tolerance (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound27with_relative_gap_toleranceEd"]], "idol::branchandbound::with_scaling (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound12with_scalingEb"]], "idol::branchandbound::with_subtree_depth (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound18with_subtree_depthEj"]], "idol::branchandbound::with_thread_limit (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound17with_thread_limitEj"]], "idol::branchandbound::with_time_limit (c++ function)": [[19, "_CPPv4N4idol14BranchAndBound15with_time_limitEd"]], "idol::branchandboundcallback (c++ class)": [[20, "_CPPv4I0EN4idol22BranchAndBoundCallbackE"]], "idol::branchandboundcallback::add_lazy_cut (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallback12add_lazy_cutERK7TempCtr"]], "idol::branchandboundcallback::add_user_cut (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallback12add_user_cutERK7TempCtr"]], "idol::branchandboundcallback::initialize (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallback10initializeEv"]], "idol::branchandboundcallback::log_after_termination (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallback21log_after_terminationEv"]], "idol::branchandboundcallback::node (c++ function)": [[20, "_CPPv4NK4idol22BranchAndBoundCallback4nodeEv"]], "idol::branchandboundcallback::operator() (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallbackclE13CallbackEvent"]], "idol::branchandboundcallback::original_model (c++ function)": [[20, "_CPPv4NK4idol22BranchAndBoundCallback14original_modelEv"]], "idol::branchandboundcallback::relaxation (c++ function)": [[20, "_CPPv4NK4idol22BranchAndBoundCallback10relaxationEv"]], "idol::branchandboundcallback::side_effect_registry (c++ function)": [[20, "_CPPv4NK4idol22BranchAndBoundCallback20side_effect_registryEv"]], "idol::branchandboundcallback::submit_bound (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallback12submit_boundEd"]], "idol::branchandboundcallback::submit_heuristic_solution (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallback25submit_heuristic_solutionEP9NodeInfoT"]], "idol::branchandboundcallback::time (c++ function)": [[20, "_CPPv4NK4idol22BranchAndBoundCallback4timeEv"]], "idol::branchandboundcallback::~branchandboundcallback (c++ function)": [[20, "_CPPv4N4idol22BranchAndBoundCallbackD0Ev"]], "idol::branchandboundcallbackfactory (c++ class)": [[21, "_CPPv4I0EN4idol29BranchAndBoundCallbackFactoryE"]], "idol::branchandboundcallbackfactory::clone (c++ function)": [[21, "_CPPv4NK4idol29BranchAndBoundCallbackFactory5cloneEv"]], "idol::branchandboundcallbackfactory::operator() (c++ function)": [[21, "_CPPv4N4idol29BranchAndBoundCallbackFactoryclEv"]], "idol::branchandboundcallbackfactory::~branchandboundcallbackfactory (c++ function)": [[21, "_CPPv4N4idol29BranchAndBoundCallbackFactoryD0Ev"]], "idol::cuts::knapsackcover (c++ class)": [[22, "_CPPv4I0EN4idol4Cuts13KnapsackCoverE"]], "idol::cuts::knapsackcover::strategy (c++ class)": [[22, "_CPPv4N4idol4Cuts13KnapsackCover8StrategyE"]], "idol::cuts::knapsackcover::strategy::strategy (c++ function)": [[22, "_CPPv4N4idol4Cuts13KnapsackCover8Strategy8StrategyEbbjd"]], "idol::cuts::knapsackcover::clone (c++ function)": [[22, "_CPPv4NK4idol4Cuts13KnapsackCover5cloneEv"]], "idol::cuts::knapsackcover::operator() (c++ function)": [[22, "_CPPv4N4idol4Cuts13KnapsackCoverclEv"]], "idol::cuts::knapsackcover::with_lifting (c++ function)": [[22, "_CPPv4N4idol4Cuts13KnapsackCover12with_liftingEb"]], "idol::cuts::knapsackcover::with_max_cuts_factor (c++ function)": [[22, "_CPPv4N4idol4Cuts13KnapsackCover20with_max_cuts_factorEd"]], "idol::cuts::knapsackcover::with_max_pass_root_node (c++ function)": [[22, "_CPPv4N4idol4Cuts13KnapsackCover23with_max_pass_root_nodeEj"]], "idol::cuts::knapsackcover::with_tree_node_cuts (c++ function)": [[22, "_CPPv4N4idol4Cuts13KnapsackCover19with_tree_node_cutsEb"]], "idol::heuristics::localbranching (c++ class)": [[24, "_CPPv4N4idol10Heuristics14LocalBranchingE"], [37, "_CPPv4N4idol10Heuristics14LocalBranchingE"]], "idol::heuristics::localbranching::localbranching (c++ function)": [[24, "_CPPv4N4idol10Heuristics14LocalBranching14LocalBranchingEv"], [37, "_CPPv4N4idol10Heuristics14LocalBranching14LocalBranchingEv"]], "idol::heuristics::localbranching::strategy (c++ class)": [[24, "_CPPv4N4idol10Heuristics14LocalBranching8StrategyE"], [37, "_CPPv4N4idol10Heuristics14LocalBranching8StrategyE"]], "idol::heuristics::localbranching::strategy::strategy (c++ function)": [[24, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory"], [37, "_CPPv4N4idol10Heuristics14LocalBranching8Strategy8StrategyEjP16OptimizerFactory"]], "idol::heuristics::localbranching::clone (c++ function)": [[24, "_CPPv4NK4idol10Heuristics14LocalBranching5cloneEv"], [37, "_CPPv4NK4idol10Heuristics14LocalBranching5cloneEv"]], "idol::heuristics::localbranching::operator() (c++ function)": [[24, "_CPPv4N4idol10Heuristics14LocalBranchingclEv"], [37, "_CPPv4N4idol10Heuristics14LocalBranchingclEv"]], "idol::heuristics::localbranching::with_optimizer (c++ function)": [[24, "_CPPv4N4idol10Heuristics14LocalBranching14with_optimizerERK16OptimizerFactory"], [37, "_CPPv4N4idol10Heuristics14LocalBranching14with_optimizerERK16OptimizerFactory"]], "idol::heuristics::rens (c++ class)": [[25, "_CPPv4N4idol10Heuristics4RENSE"]], "idol::heuristics::rens::rens (c++ function)": [[25, "_CPPv4N4idol10Heuristics4RENS4RENSEv"]], "idol::heuristics::rens::strategy (c++ class)": [[25, "_CPPv4N4idol10Heuristics4RENS8StrategyE"]], "idol::heuristics::rens::strategy::strategy (c++ function)": [[25, "_CPPv4N4idol10Heuristics4RENS8Strategy8StrategyEddP16OptimizerFactory"]], "idol::heuristics::rens::clone (c++ function)": [[25, "_CPPv4NK4idol10Heuristics4RENS5cloneEv"]], "idol::heuristics::rens::operator() (c++ function)": [[25, "_CPPv4N4idol10Heuristics4RENSclEv"]], "idol::heuristics::rens::with_optimizer (c++ function)": [[25, "_CPPv4N4idol10Heuristics4RENS14with_optimizerERK16OptimizerFactory"]], "idol::heuristics::simplerounding (c++ class)": [[26, "_CPPv4N4idol10Heuristics14SimpleRoundingE"]], "idol::heuristics::simplerounding::simplerounding (c++ function)": [[26, "_CPPv4N4idol10Heuristics14SimpleRounding14SimpleRoundingEv"]], "idol::heuristics::simplerounding::strategy (c++ class)": [[26, "_CPPv4N4idol10Heuristics14SimpleRounding8StrategyE"]], "idol::heuristics::simplerounding::clone (c++ function)": [[26, "_CPPv4NK4idol10Heuristics14SimpleRounding5cloneEv"]], "idol::heuristics::simplerounding::operator() (c++ function)": [[26, "_CPPv4N4idol10Heuristics14SimpleRoundingclEv"]], "idol::bestbound (c++ class)": [[29, "_CPPv4N4idol9BestBoundE"]], "idol::bestbound::strategy (c++ class)": [[29, "_CPPv4I0EN4idol9BestBound8StrategyE"]], "idol::bestbound::strategy::strategy (c++ function)": [[29, "_CPPv4N4idol9BestBound8Strategy8StrategyERK9BestBound"]], "idol::bestbound::strategy::clone (c++ function)": [[29, "_CPPv4NK4idol9BestBound8Strategy5cloneEv"]], "idol::bestbound::strategy::operator() (c++ function)": [[29, "_CPPv4NK4idol9BestBound8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE"]], "idol::bestestimate (c++ class)": [[30, "_CPPv4N4idol12BestEstimateE"]], "idol::bestestimate::strategy (c++ class)": [[30, "_CPPv4I0EN4idol12BestEstimate8StrategyE"]], "idol::bestestimate::strategy::strategy (c++ function)": [[30, "_CPPv4N4idol12BestEstimate8Strategy8StrategyERK12BestEstimate"]], "idol::bestestimate::strategy::clone (c++ function)": [[30, "_CPPv4NK4idol12BestEstimate8Strategy5cloneEv"]], "idol::bestestimate::strategy::operator() (c++ function)": [[30, "_CPPv4NK4idol12BestEstimate8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE"]], "idol::breadthfirst (c++ class)": [[31, "_CPPv4N4idol12BreadthFirstE"]], "idol::breadthfirst::strategy (c++ class)": [[31, "_CPPv4I0EN4idol12BreadthFirst8StrategyE"]], "idol::breadthfirst::strategy::strategy (c++ function)": [[31, "_CPPv4N4idol12BreadthFirst8Strategy8StrategyERK12BreadthFirst"]], "idol::breadthfirst::strategy::clone (c++ function)": [[31, "_CPPv4NK4idol12BreadthFirst8Strategy5cloneEv"]], "idol::breadthfirst::strategy::operator() (c++ function)": [[31, "_CPPv4NK4idol12BreadthFirst8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE"]], "idol::depthfirst (c++ class)": [[32, "_CPPv4N4idol10DepthFirstE"]], "idol::depthfirst::strategy (c++ class)": [[32, "_CPPv4I0EN4idol10DepthFirst8StrategyE"]], "idol::depthfirst::strategy::strategy (c++ function)": [[32, "_CPPv4N4idol10DepthFirst8Strategy8StrategyERK10DepthFirst"]], "idol::depthfirst::strategy::clone (c++ function)": [[32, "_CPPv4NK4idol10DepthFirst8Strategy5cloneEv"]], "idol::depthfirst::strategy::operator() (c++ function)": [[32, "_CPPv4NK4idol10DepthFirst8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE"]], "idol::worstbound (c++ class)": [[33, "_CPPv4N4idol10WorstBoundE"]], "idol::worstbound::strategy (c++ class)": [[33, "_CPPv4I0EN4idol10WorstBound8StrategyE"]], "idol::worstbound::strategy::strategy (c++ function)": [[33, "_CPPv4N4idol10WorstBound8Strategy8StrategyERK10WorstBound"]], "idol::worstbound::strategy::clone (c++ function)": [[33, "_CPPv4NK4idol10WorstBound8Strategy5cloneEv"]], "idol::worstbound::strategy::operator() (c++ function)": [[33, "_CPPv4NK4idol10WorstBound8StrategyclERN10Optimizers14BranchAndBoundI5NodeTEE"]], "idol::firstinfeasiblefound (c++ class)": [[35, "_CPPv4N4idol20FirstInfeasibleFoundE"]], "idol::firstinfeasiblefound::firstinfeasiblefound (c++ function)": [[35, "_CPPv4I0EN4idol20FirstInfeasibleFound20FirstInfeasibleFoundE9IteratorT9IteratorT"], [35, "_CPPv4N4idol20FirstInfeasibleFound20FirstInfeasibleFoundEv"]], "idol::firstinfeasiblefound::strategy (c++ class)": [[35, "_CPPv4I0EN4idol20FirstInfeasibleFound8StrategyE"]], "idol::firstinfeasiblefound::strategy::strategy (c++ function)": [[35, "_CPPv4N4idol20FirstInfeasibleFound8Strategy8StrategyERK20FirstInfeasibleFound"], [35, "_CPPv4N4idol20FirstInfeasibleFound8Strategy8StrategyEv"]], "idol::firstinfeasiblefound::strategy::clone (c++ function)": [[35, "_CPPv4NK4idol20FirstInfeasibleFound8Strategy5cloneEv"]], "idol::firstinfeasiblefound::strategy::operator() (c++ function)": [[35, "_CPPv4NK4idol20FirstInfeasibleFound8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE"], [35, "_CPPv4NK4idol20FirstInfeasibleFound8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE"]], "idol::leastinfeasible (c++ class)": [[36, "_CPPv4N4idol15LeastInfeasibleE"]], "idol::leastinfeasible::leastinfeasible (c++ function)": [[36, "_CPPv4I0EN4idol15LeastInfeasible15LeastInfeasibleE9IteratorT9IteratorT"], [36, "_CPPv4N4idol15LeastInfeasible15LeastInfeasibleEv"]], "idol::leastinfeasible::strategy (c++ class)": [[36, "_CPPv4I0EN4idol15LeastInfeasible8StrategyE"]], "idol::leastinfeasible::strategy::strategy (c++ function)": [[36, "_CPPv4N4idol15LeastInfeasible8Strategy8StrategyERK15LeastInfeasible"], [36, "_CPPv4N4idol15LeastInfeasible8Strategy8StrategyEv"]], "idol::leastinfeasible::strategy::clone (c++ function)": [[36, "_CPPv4NK4idol15LeastInfeasible8Strategy5cloneEv"]], "idol::leastinfeasible::strategy::operator() (c++ function)": [[36, "_CPPv4NK4idol15LeastInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE"], [36, "_CPPv4NK4idol15LeastInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE"]], "idol::mostinfeasible (c++ class)": [[38, "_CPPv4N4idol14MostInfeasibleE"]], "idol::mostinfeasible::mostinfeasible (c++ function)": [[38, "_CPPv4I0EN4idol14MostInfeasible14MostInfeasibleE9IteratorT9IteratorT"], [38, "_CPPv4N4idol14MostInfeasible14MostInfeasibleEv"]], "idol::mostinfeasible::strategy (c++ class)": [[38, "_CPPv4I0EN4idol14MostInfeasible8StrategyE"]], "idol::mostinfeasible::strategy::strategy (c++ function)": [[38, "_CPPv4N4idol14MostInfeasible8Strategy8StrategyERK14MostInfeasible"], [38, "_CPPv4N4idol14MostInfeasible8Strategy8StrategyEv"]], "idol::mostinfeasible::strategy::clone (c++ function)": [[38, "_CPPv4NK4idol14MostInfeasible8Strategy5cloneEv"]], "idol::mostinfeasible::strategy::operator() (c++ function)": [[38, "_CPPv4NK4idol14MostInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE"], [38, "_CPPv4NK4idol14MostInfeasible8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE"]], "idol::pseudocost (c++ class)": [[39, "_CPPv4N4idol10PseudoCostE"]], "idol::pseudocost::pseudocost (c++ function)": [[39, "_CPPv4I0EN4idol10PseudoCost10PseudoCostE9IteratorT9IteratorT"], [39, "_CPPv4N4idol10PseudoCost10PseudoCostEv"]], "idol::pseudocost::strategy (c++ class)": [[39, "_CPPv4I0EN4idol10PseudoCost8StrategyE"]], "idol::pseudocost::strategy::strategy (c++ function)": [[39, "_CPPv4N4idol10PseudoCost8Strategy8StrategyERK10PseudoCost"], [39, "_CPPv4N4idol10PseudoCost8Strategy8StrategyEv"]], "idol::pseudocost::strategy::clone (c++ function)": [[39, "_CPPv4NK4idol10PseudoCost8Strategy5cloneEv"]], "idol::pseudocost::strategy::operator() (c++ function)": [[39, "_CPPv4NK4idol10PseudoCost8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE"], [39, "_CPPv4NK4idol10PseudoCost8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE"]], "idol::strongbranching (c++ class)": [[40, "_CPPv4N4idol15StrongBranchingE"]], "idol::strongbranching::strategy (c++ class)": [[40, "_CPPv4I0EN4idol15StrongBranching8StrategyE"]], "idol::strongbranching::strategy::strategy (c++ function)": [[40, "_CPPv4N4idol15StrongBranching8Strategy8StrategyERK15StrongBranching"], [40, "_CPPv4N4idol15StrongBranching8Strategy8StrategyERK8StrategyI9NodeInfoTE"], [40, "_CPPv4N4idol15StrongBranching8Strategy8StrategyEv"]], "idol::strongbranching::strategy::clone (c++ function)": [[40, "_CPPv4NK4idol15StrongBranching8Strategy5cloneEv"]], "idol::strongbranching::strategy::operator() (c++ function)": [[40, "_CPPv4NK4idol15StrongBranching8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE"], [40, "_CPPv4NK4idol15StrongBranching8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE"]], "idol::strongbranching::strongbranching (c++ function)": [[40, "_CPPv4I0EN4idol15StrongBranching15StrongBranchingE9IteratorT9IteratorT"], [40, "_CPPv4N4idol15StrongBranching15StrongBranchingEv"]], "idol::strongbranching::add_phase (c++ function)": [[40, "_CPPv4N4idol15StrongBranching9add_phaseERK24StrongBranchingPhaseTypejj"]], "idol::strongbranching::with_max_n_variables (c++ function)": [[40, "_CPPv4N4idol15StrongBranching20with_max_n_variablesEj"]], "idol::strongbranching::with_node_scoring_function (c++ function)": [[40, "_CPPv4N4idol15StrongBranching26with_node_scoring_functionERK17NodeScoreFunction"]], "idol::uniformlyrandom (c++ class)": [[41, "_CPPv4N4idol15UniformlyRandomE"]], "idol::uniformlyrandom::strategy (c++ class)": [[41, "_CPPv4I0EN4idol15UniformlyRandom8StrategyE"]], "idol::uniformlyrandom::strategy::strategy (c++ function)": [[41, "_CPPv4N4idol15UniformlyRandom8Strategy8StrategyERK15UniformlyRandom"], [41, "_CPPv4N4idol15UniformlyRandom8Strategy8StrategyEv"]], "idol::uniformlyrandom::strategy::clone (c++ function)": [[41, "_CPPv4NK4idol15UniformlyRandom8Strategy5cloneEv"]], "idol::uniformlyrandom::strategy::operator() (c++ function)": [[41, "_CPPv4NK4idol15UniformlyRandom8StrategyclERKN10Optimizers14BranchAndBoundI5NodeTEE"], [41, "_CPPv4NK4idol15UniformlyRandom8StrategyclERKN10Optimizers14BranchAndBoundI9NodeInfoTEE"]], "idol::uniformlyrandom::uniformlyrandom (c++ function)": [[41, "_CPPv4I0EN4idol15UniformlyRandom15UniformlyRandomE9IteratorT9IteratorT"], [41, "_CPPv4N4idol15UniformlyRandom15UniformlyRandomEv"]], "idol::uniformlyrandom::with_seed (c++ function)": [[41, "_CPPv4N4idol15UniformlyRandom9with_seedEj"]], "idol::optimizers::robust::columnandconstraintgeneration (c++ class)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGenerationE"]], "idol::optimizers::robust::columnandconstraintgeneration::columnandconstraintgeneration (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration29ColumnAndConstraintGenerationERK5ModelRK5ModelRK16OptimizerFactoryRKN4idol6Robust12CCGSeparatorERKN4idol6Robust13CCGStabilizerERK10AnnotationI3VarjERK10AnnotationI3CtrjEb"]], "idol::optimizers::robust::columnandconstraintgeneration::as (c++ function)": [[44, "_CPPv4I0EN4idol10Optimizers6Robust29ColumnAndConstraintGeneration2asER1Tv"], [44, "_CPPv4I0ENK4idol10Optimizers6Robust29ColumnAndConstraintGeneration2asERK1Tv"]], "idol::optimizers::robust::columnandconstraintgeneration::complete_recourse (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration17complete_recourseEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_absolute_gap (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration16get_absolute_gapEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_best_bound (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_best_boundEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_best_obj (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12get_best_objEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_ctr_dual (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12get_ctr_dualERK3Ctr"]], "idol::optimizers::robust::columnandconstraintgeneration::get_ctr_farkas (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_ctr_farkasERK3Ctr"]], "idol::optimizers::robust::columnandconstraintgeneration::get_n_solutions (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration15get_n_solutionsEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_best_bound_stop (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration25get_param_best_bound_stopEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_best_obj_stop (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration23get_param_best_obj_stopEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_infeasible_or_unbounded_info (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration38get_param_infeasible_or_unbounded_infoEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_iteration_limit (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration25get_param_iteration_limitEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_logs (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_param_logsEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_presolve (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_param_presolveEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_thread_limit (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration22get_param_thread_limitEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_param_time_limit (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration20get_param_time_limitEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_reason (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration10get_reasonEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_relative_gap (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration16get_relative_gapEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_remaining_time (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_remaining_timeEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_solution_index (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_solution_indexEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_status (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration10get_statusEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_tol_feasibility (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration19get_tol_feasibilityEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_tol_integer (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration15get_tol_integerEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_tol_mip_absolute_gap (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration24get_tol_mip_absolute_gapEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_tol_mip_relative_gap (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration24get_tol_mip_relative_gapEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_tol_optimality (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration18get_tol_optimalityEv"]], "idol::optimizers::robust::columnandconstraintgeneration::get_var_primal (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14get_var_primalERK3Var"]], "idol::optimizers::robust::columnandconstraintgeneration::get_var_ray (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration11get_var_rayERK3Var"]], "idol::optimizers::robust::columnandconstraintgeneration::get_var_reduced_cost (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration20get_var_reduced_costERK3Var"]], "idol::optimizers::robust::columnandconstraintgeneration::is (c++ function)": [[44, "_CPPv4I0ENK4idol10Optimizers6Robust29ColumnAndConstraintGeneration2isEbv"]], "idol::optimizers::robust::columnandconstraintgeneration::is_terminated (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration13is_terminatedEv"]], "idol::optimizers::robust::columnandconstraintgeneration::lower_level_constraints (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration23lower_level_constraintsEv"]], "idol::optimizers::robust::columnandconstraintgeneration::lower_level_variables (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration21lower_level_variablesEv"]], "idol::optimizers::robust::columnandconstraintgeneration::master_problem (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration14master_problemEv"]], "idol::optimizers::robust::columnandconstraintgeneration::n_iterations (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration12n_iterationsEv"]], "idol::optimizers::robust::columnandconstraintgeneration::name (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration4nameEv"]], "idol::optimizers::robust::columnandconstraintgeneration::parent (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration6parentEv"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_best_bound_stop (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration25set_param_best_bound_stopEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_best_obj_stop (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration23set_param_best_obj_stopEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_infeasible_or_unbounded_info (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration38set_param_infeasible_or_unbounded_infoEb"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_iteration_limit (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration25set_param_iteration_limitEj"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_logs (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration14set_param_logsEb"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_presolve (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration18set_param_presolveEb"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_threads (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration17set_param_threadsEj"]], "idol::optimizers::robust::columnandconstraintgeneration::set_param_time_limit (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration20set_param_time_limitEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_tol_feasibility (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration19set_tol_feasibilityEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_tol_integer (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration15set_tol_integerEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_tol_mip_absolute_gap (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration24set_tol_mip_absolute_gapEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_tol_mip_relative_gap (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration24set_tol_mip_relative_gapEd"]], "idol::optimizers::robust::columnandconstraintgeneration::set_tol_optimality (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration18set_tol_optimalityEd"]], "idol::optimizers::robust::columnandconstraintgeneration::terminate (c++ function)": [[44, "_CPPv4N4idol10Optimizers6Robust29ColumnAndConstraintGeneration9terminateEv"]], "idol::optimizers::robust::columnandconstraintgeneration::time (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration4timeEv"]], "idol::optimizers::robust::columnandconstraintgeneration::uncertainty_set (c++ function)": [[44, "_CPPv4NK4idol10Optimizers6Robust29ColumnAndConstraintGeneration15uncertainty_setEv"]], "idol::dantzigwolfe::artificialcosts (c++ class)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCostsE"]], "idol::dantzigwolfe::artificialcosts::strategy (c++ class)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8StrategyE"]], "idol::dantzigwolfe::artificialcosts::strategy::strategy (c++ function)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy8StrategyEddj"]], "idol::dantzigwolfe::artificialcosts::strategy::best_bound (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy10best_boundEv"]], "idol::dantzigwolfe::artificialcosts::strategy::best_obj (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy8best_objEv"]], "idol::dantzigwolfe::artificialcosts::strategy::execute (c++ function)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts8Strategy7executeERN10Optimizers25DantzigWolfeDecompositionE"]], "idol::dantzigwolfe::artificialcosts::strategy::primal_solution (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy15primal_solutionEv"]], "idol::dantzigwolfe::artificialcosts::strategy::reason (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy6reasonEv"]], "idol::dantzigwolfe::artificialcosts::strategy::status (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts8Strategy6statusEv"]], "idol::dantzigwolfe::artificialcosts::clone (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCosts5cloneEv"]], "idol::dantzigwolfe::artificialcosts::operator() (c++ function)": [[46, "_CPPv4NK4idol12DantzigWolfe15ArtificialCostsclEv"]], "idol::dantzigwolfe::artificialcosts::with_initial_costs (c++ function)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts18with_initial_costsEd"]], "idol::dantzigwolfe::artificialcosts::with_max_updates_before_phase_i (c++ function)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts31with_max_updates_before_phase_IEj"]], "idol::dantzigwolfe::artificialcosts::with_update_factor (c++ function)": [[46, "_CPPv4N4idol12DantzigWolfe15ArtificialCosts18with_update_factorEd"]], "idol::dantzigwolfedecomposition (c++ class)": [[47, "_CPPv4N4idol25DantzigWolfeDecompositionE"]], "idol::dantzigwolfedecomposition::dantzigwolfedecomposition (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE"], [47, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionE10AnnotationI3CtrjE10AnnotationI3VarjE"], [47, "_CPPv4N4idol25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK25DantzigWolfeDecomposition"]], "idol::dantzigwolfedecomposition::as (c++ function)": [[47, "_CPPv4I0EN4idol25DantzigWolfeDecomposition2asER1Tv"], [47, "_CPPv4I0ENK4idol25DantzigWolfeDecomposition2asERK1Tv"]], "idol::dantzigwolfedecomposition::clone (c++ function)": [[47, "_CPPv4NK4idol25DantzigWolfeDecomposition5cloneEv"]], "idol::dantzigwolfedecomposition::conditional (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEE"], [47, "_CPPv4N4idol25DantzigWolfeDecomposition11conditionalEbRKNSt8functionIFvR25DantzigWolfeDecompositionEEERKNSt8functionIFvR25DantzigWolfeDecompositionEEE"]], "idol::dantzigwolfedecomposition::get_sub_problem_spec (c++ function)": [[47, "_CPPv4NK4idol25DantzigWolfeDecomposition20get_sub_problem_specEj"]], "idol::dantzigwolfedecomposition::is (c++ function)": [[47, "_CPPv4I0ENK4idol25DantzigWolfeDecomposition2isEbv"]], "idol::dantzigwolfedecomposition::operator() (c++ function)": [[47, "_CPPv4NK4idol25DantzigWolfeDecompositionclERK5Model"]], "idol::dantzigwolfedecomposition::with_absolute_gap_tolerance (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition27with_absolute_gap_toleranceEd"]], "idol::dantzigwolfedecomposition::with_best_bound_stop (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition20with_best_bound_stopEd"]], "idol::dantzigwolfedecomposition::with_best_obj_stop (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition18with_best_obj_stopEd"]], "idol::dantzigwolfedecomposition::with_default_sub_problem_spec (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition29with_default_sub_problem_specEN12DantzigWolfe10SubProblemE"]], "idol::dantzigwolfedecomposition::with_dual_price_smoothing_stabilization (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition39with_dual_price_smoothing_stabilizationERKN12DantzigWolfe31DualPriceSmoothingStabilizationE"]], "idol::dantzigwolfedecomposition::with_hard_branching (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition19with_hard_branchingEb"]], "idol::dantzigwolfedecomposition::with_infeasibility_strategy (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition27with_infeasibility_strategyERKN12DantzigWolfe28InfeasibilityStrategyFactoryE"]], "idol::dantzigwolfedecomposition::with_infeasible_columns_removal (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition31with_infeasible_columns_removalEb"]], "idol::dantzigwolfedecomposition::with_infeasible_or_unbounded_info (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition33with_infeasible_or_unbounded_infoEb"]], "idol::dantzigwolfedecomposition::with_iteration_limit (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition20with_iteration_limitEj"]], "idol::dantzigwolfedecomposition::with_logger (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition11with_loggerERKN4Logs12DantzigWolfe7FactoryE"]], "idol::dantzigwolfedecomposition::with_logs (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition9with_logsEb"]], "idol::dantzigwolfedecomposition::with_master_optimizer (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition21with_master_optimizerERK16OptimizerFactory"]], "idol::dantzigwolfedecomposition::with_max_parallel_sub_problems (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition30with_max_parallel_sub_problemsEj"]], "idol::dantzigwolfedecomposition::with_presolve (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition13with_presolveEb"]], "idol::dantzigwolfedecomposition::with_relative_gap_tolerance (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition27with_relative_gap_toleranceEd"]], "idol::dantzigwolfedecomposition::with_sub_problem_spec (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition21with_sub_problem_specEjN12DantzigWolfe10SubProblemE"]], "idol::dantzigwolfedecomposition::with_thread_limit (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition17with_thread_limitEj"]], "idol::dantzigwolfedecomposition::with_time_limit (c++ function)": [[47, "_CPPv4N4idol25DantzigWolfeDecomposition15with_time_limitEd"]], "idol::dantzigwolfe::farkaspricing (c++ class)": [[48, "_CPPv4N4idol12DantzigWolfe13FarkasPricingE"]], "idol::dantzigwolfe::farkaspricing::strategy (c++ class)": [[48, "_CPPv4N4idol12DantzigWolfe13FarkasPricing8StrategyE"]], "idol::dantzigwolfe::farkaspricing::strategy::best_bound (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy10best_boundEv"]], "idol::dantzigwolfe::farkaspricing::strategy::best_obj (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy8best_objEv"]], "idol::dantzigwolfe::farkaspricing::strategy::execute (c++ function)": [[48, "_CPPv4N4idol12DantzigWolfe13FarkasPricing8Strategy7executeERN10Optimizers25DantzigWolfeDecompositionE"]], "idol::dantzigwolfe::farkaspricing::strategy::primal_solution (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy15primal_solutionEv"]], "idol::dantzigwolfe::farkaspricing::strategy::reason (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy6reasonEv"]], "idol::dantzigwolfe::farkaspricing::strategy::status (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing8Strategy6statusEv"]], "idol::dantzigwolfe::farkaspricing::clone (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricing5cloneEv"]], "idol::dantzigwolfe::farkaspricing::operator() (c++ function)": [[48, "_CPPv4NK4idol12DantzigWolfe13FarkasPricingclEv"]], "idol::heuristics::integermaster (c++ class)": [[49, "_CPPv4I0EN4idol10Heuristics13IntegerMasterE"]], "idol::heuristics::integermaster::integermaster (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster13IntegerMasterERR13IntegerMaster"], [49, "_CPPv4N4idol10Heuristics13IntegerMaster13IntegerMasterEv"]], "idol::heuristics::integermaster::strategy (c++ class)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8StrategyE"]], "idol::heuristics::integermaster::strategy::strategy (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy8StrategyERK16OptimizerFactory"]], "idol::heuristics::integermaster::strategy::set_frequency (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy13set_frequencyEj"]], "idol::heuristics::integermaster::strategy::set_integer_columns (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy19set_integer_columnsEb"]], "idol::heuristics::integermaster::strategy::set_iteration_limit (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy19set_iteration_limitEj"]], "idol::heuristics::integermaster::strategy::set_max_depth (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy13set_max_depthEj"]], "idol::heuristics::integermaster::strategy::set_time_limit (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster8Strategy14set_time_limitEd"]], "idol::heuristics::integermaster::strategy::with_integer_columns (c++ function)": [[49, "_CPPv4NK4idol10Heuristics13IntegerMaster8Strategy20with_integer_columnsEv"]], "idol::heuristics::integermaster::clone (c++ function)": [[49, "_CPPv4NK4idol10Heuristics13IntegerMaster5cloneEv"]], "idol::heuristics::integermaster::operator() (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMasterclEv"]], "idol::heuristics::integermaster::operator= (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMasteraSERK13IntegerMaster"], [49, "_CPPv4N4idol10Heuristics13IntegerMasteraSERR13IntegerMaster"]], "idol::heuristics::integermaster::with_frequency (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster14with_frequencyEj"]], "idol::heuristics::integermaster::with_integer_columns (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster20with_integer_columnsEb"]], "idol::heuristics::integermaster::with_iteration_limit (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster20with_iteration_limitEj"]], "idol::heuristics::integermaster::with_max_depth (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster14with_max_depthEj"]], "idol::heuristics::integermaster::with_optimizer (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster14with_optimizerERK16OptimizerFactory"]], "idol::heuristics::integermaster::with_time_limit (c++ function)": [[49, "_CPPv4N4idol10Heuristics13IntegerMaster15with_time_limitEd"]], "idol::optimizers::dantzigwolfedecomposition (c++ class)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecompositionE"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration (c++ class)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGenerationE"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::columngeneration (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration16ColumnGenerationER25DantzigWolfeDecompositionbd"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::best_bound (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration10best_boundEv"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::best_obj (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration8best_objEv"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::execute (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration7executeEv"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::parent (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6parentEv"], [50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6parentEv"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::primal_solution (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration15primal_solutionEv"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::reason (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6reasonEv"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::set_best_bound_stop (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration19set_best_bound_stopEd"]], "idol::optimizers::dantzigwolfedecomposition::columngeneration::status (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16ColumnGeneration6statusEv"]], "idol::optimizers::dantzigwolfedecomposition::dantzigwolfedecomposition (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25DantzigWolfeDecompositionERK5ModelRRN4idol12DantzigWolfe11FormulationERK16OptimizerFactoryRKN12DantzigWolfe31DualPriceSmoothingStabilizationEjbbRRNSt6vectorIN12DantzigWolfe10SubProblemEEERKN12DantzigWolfe28InfeasibilityStrategyFactoryERKN4Logs12DantzigWolfe7FactoryE"]], "idol::optimizers::dantzigwolfedecomposition::as (c++ function)": [[50, "_CPPv4I0EN4idol10Optimizers25DantzigWolfeDecomposition2asER1Tv"], [50, "_CPPv4I0ENK4idol10Optimizers25DantzigWolfeDecomposition2asERK1Tv"]], "idol::optimizers::dantzigwolfedecomposition::formulation (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition11formulationEv"], [50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition11formulationEv"]], "idol::optimizers::dantzigwolfedecomposition::get_absolute_gap (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16get_absolute_gapEv"]], "idol::optimizers::dantzigwolfedecomposition::get_best_bound (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition14get_best_boundEv"]], "idol::optimizers::dantzigwolfedecomposition::get_best_obj (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition12get_best_objEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_best_bound_stop (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition25get_param_best_bound_stopEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_best_obj_stop (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition23get_param_best_obj_stopEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_infeasible_or_unbounded_info (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition38get_param_infeasible_or_unbounded_infoEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_iteration_limit (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition25get_param_iteration_limitEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_logs (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition14get_param_logsEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_presolve (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition18get_param_presolveEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_thread_limit (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition22get_param_thread_limitEv"]], "idol::optimizers::dantzigwolfedecomposition::get_param_time_limit (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition20get_param_time_limitEv"]], "idol::optimizers::dantzigwolfedecomposition::get_reason (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition10get_reasonEv"]], "idol::optimizers::dantzigwolfedecomposition::get_relative_gap (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition16get_relative_gapEv"]], "idol::optimizers::dantzigwolfedecomposition::get_remaining_time (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition18get_remaining_timeEv"]], "idol::optimizers::dantzigwolfedecomposition::get_status (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition10get_statusEv"]], "idol::optimizers::dantzigwolfedecomposition::get_tol_feasibility (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition19get_tol_feasibilityEv"]], "idol::optimizers::dantzigwolfedecomposition::get_tol_integer (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition15get_tol_integerEv"]], "idol::optimizers::dantzigwolfedecomposition::get_tol_mip_absolute_gap (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition24get_tol_mip_absolute_gapEv"]], "idol::optimizers::dantzigwolfedecomposition::get_tol_mip_relative_gap (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition24get_tol_mip_relative_gapEv"]], "idol::optimizers::dantzigwolfedecomposition::get_tol_optimality (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition18get_tol_optimalityEv"]], "idol::optimizers::dantzigwolfedecomposition::is (c++ function)": [[50, "_CPPv4I0ENK4idol10Optimizers25DantzigWolfeDecomposition2isEbv"]], "idol::optimizers::dantzigwolfedecomposition::is_terminated (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition13is_terminatedEv"]], "idol::optimizers::dantzigwolfedecomposition::name (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition4nameEv"]], "idol::optimizers::dantzigwolfedecomposition::parent (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition6parentEv"]], "idol::optimizers::dantzigwolfedecomposition::set_param_best_bound_stop (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25set_param_best_bound_stopEd"]], "idol::optimizers::dantzigwolfedecomposition::set_param_best_obj_stop (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition23set_param_best_obj_stopEd"]], "idol::optimizers::dantzigwolfedecomposition::set_param_infeasible_or_unbounded_info (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition38set_param_infeasible_or_unbounded_infoEb"]], "idol::optimizers::dantzigwolfedecomposition::set_param_iteration_limit (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition25set_param_iteration_limitEj"]], "idol::optimizers::dantzigwolfedecomposition::set_param_logs (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition14set_param_logsEb"]], "idol::optimizers::dantzigwolfedecomposition::set_param_presolve (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition18set_param_presolveEb"]], "idol::optimizers::dantzigwolfedecomposition::set_param_threads (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition17set_param_threadsEj"]], "idol::optimizers::dantzigwolfedecomposition::set_param_time_limit (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition20set_param_time_limitEd"]], "idol::optimizers::dantzigwolfedecomposition::set_tol_feasibility (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition19set_tol_feasibilityEd"]], "idol::optimizers::dantzigwolfedecomposition::set_tol_integer (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition15set_tol_integerEd"]], "idol::optimizers::dantzigwolfedecomposition::set_tol_mip_absolute_gap (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition24set_tol_mip_absolute_gapEd"]], "idol::optimizers::dantzigwolfedecomposition::set_tol_mip_relative_gap (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition24set_tol_mip_relative_gapEd"]], "idol::optimizers::dantzigwolfedecomposition::set_tol_optimality (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition18set_tol_optimalityEd"]], "idol::optimizers::dantzigwolfedecomposition::terminate (c++ function)": [[50, "_CPPv4N4idol10Optimizers25DantzigWolfeDecomposition9terminateEv"]], "idol::optimizers::dantzigwolfedecomposition::time (c++ function)": [[50, "_CPPv4NK4idol10Optimizers25DantzigWolfeDecomposition4timeEv"]], "idol::dantzigwolfe::neame (c++ class)": [[52, "_CPPv4N4idol12DantzigWolfe5NeameE"]], "idol::dantzigwolfe::neame::neame (c++ function)": [[52, "_CPPv4N4idol12DantzigWolfe5Neame5NeameEd"]], "idol::dantzigwolfe::neame::strategy (c++ class)": [[52, "_CPPv4N4idol12DantzigWolfe5Neame8StrategyE"]], "idol::dantzigwolfe::neame::strategy::strategy (c++ function)": [[52, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy8StrategyEd"]], "idol::dantzigwolfe::neame::strategy::compute_smoothed_dual_solution (c++ function)": [[52, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy30compute_smoothed_dual_solutionERKN8Solution4DualE"]], "idol::dantzigwolfe::neame::strategy::initialize (c++ function)": [[52, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy10initializeEv"]], "idol::dantzigwolfe::neame::strategy::update_stability_center (c++ function)": [[52, "_CPPv4N4idol12DantzigWolfe5Neame8Strategy23update_stability_centerERKN8Solution4DualE"]], "idol::dantzigwolfe::neame::clone (c++ function)": [[52, "_CPPv4NK4idol12DantzigWolfe5Neame5cloneEv"]], "idol::dantzigwolfe::neame::operator() (c++ function)": [[52, "_CPPv4NK4idol12DantzigWolfe5NeameclEv"]], "idol::dantzigwolfe::wentges (c++ class)": [[53, "_CPPv4N4idol12DantzigWolfe7WentgesE"]], "idol::dantzigwolfe::wentges::strategy (c++ class)": [[53, "_CPPv4N4idol12DantzigWolfe7Wentges8StrategyE"]], "idol::dantzigwolfe::wentges::strategy::strategy (c++ function)": [[53, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy8StrategyEd"]], "idol::dantzigwolfe::wentges::strategy::compute_smoothed_dual_solution (c++ function)": [[53, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy30compute_smoothed_dual_solutionERKN8Solution4DualE"]], "idol::dantzigwolfe::wentges::strategy::initialize (c++ function)": [[53, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy10initializeEv"]], "idol::dantzigwolfe::wentges::strategy::update_stability_center (c++ function)": [[53, "_CPPv4N4idol12DantzigWolfe7Wentges8Strategy23update_stability_centerERKN8Solution4DualE"]], "idol::dantzigwolfe::wentges::wentges (c++ function)": [[53, "_CPPv4N4idol12DantzigWolfe7Wentges7WentgesEd"]], "idol::dantzigwolfe::wentges::clone (c++ function)": [[53, "_CPPv4NK4idol12DantzigWolfe7Wentges5cloneEv"]], "idol::dantzigwolfe::wentges::operator() (c++ function)": [[53, "_CPPv4NK4idol12DantzigWolfe7WentgesclEv"]], "idol::annotation (c++ class)": [[55, "_CPPv4I00EN4idol10AnnotationE"]], "idol::annotation::annotation (c++ function)": [[55, "_CPPv4IDpEN4idol10Annotation10AnnotationER3EnvNSt6stringEDpRR5ArgsT"], [55, "_CPPv4N4idol10Annotation10AnnotationER3EnvNSt6stringE"]], "idol::annotation::default_value (c++ function)": [[55, "_CPPv4NK4idol10Annotation13default_valueEv"]], "idol::annotation::free (c++ function)": [[55, "_CPPv4N4idol10Annotation4freeEv"]], "idol::annotation::has_default (c++ function)": [[55, "_CPPv4NK4idol10Annotation11has_defaultEv"]], "idol::annotation::id (c++ function)": [[55, "_CPPv4NK4idol10Annotation2idEv"]], "idol::annotation::is_ctr_annotation (c++ function)": [[55, "_CPPv4NK4idol10Annotation17is_ctr_annotationEv"]], "idol::annotation::is_var_annotation (c++ function)": [[55, "_CPPv4NK4idol10Annotation17is_var_annotationEv"]], "idol::annotation::make_with_default_value (c++ function)": [[55, "_CPPv4IDpEN4idol10Annotation23make_with_default_valueE10AnnotationI7ObjectT6ValueTER3EnvNSt6stringEDpRR5ArgsT"]], "idol::annotation::name (c++ function)": [[55, "_CPPv4NK4idol10Annotation4nameEv"]], "idol::column (c++ class)": [[56, "_CPPv4N4idol6ColumnE"]], "idol::column::column (c++ function)": [[56, "_CPPv4N4idol6Column6ColumnERK6Column"], [56, "_CPPv4N4idol6Column6ColumnERK8Constant"], [56, "_CPPv4N4idol6Column6ColumnERR6Column"], [56, "_CPPv4N4idol6Column6ColumnERR8Constant"], [56, "_CPPv4N4idol6Column6ColumnEv"]], "idol::column::emptycolumn (c++ member)": [[56, "_CPPv4N4idol6Column11EmptyColumnE"]], "idol::column::fix (c++ function)": [[56, "_CPPv4NK4idol6Column3fixERKN8Solution6PrimalE"]], "idol::column::linear (c++ function)": [[56, "_CPPv4N4idol6Column6linearEv"], [56, "_CPPv4NK4idol6Column6linearEv"]], "idol::column::obj (c++ function)": [[56, "_CPPv4N4idol6Column3objEv"], [56, "_CPPv4NK4idol6Column3objEv"]], "idol::column::obj_quadratic (c++ function)": [[56, "_CPPv4N4idol6Column13obj_quadraticEv"], [56, "_CPPv4NK4idol6Column13obj_quadraticEv"]], "idol::column::operator*= (c++ function)": [[56, "_CPPv4N4idol6ColumnmLEd"]], "idol::column::operator+= (c++ function)": [[56, "_CPPv4N4idol6ColumnpLERK6Column"]], "idol::column::operator-= (c++ function)": [[56, "_CPPv4N4idol6ColumnmIERK6Column"]], "idol::column::operator= (c++ function)": [[56, "_CPPv4N4idol6ColumnaSERK6Column"], [56, "_CPPv4N4idol6ColumnaSERR6Column"]], "idol::column::quadratic (c++ function)": [[56, "_CPPv4N4idol6Column9quadraticEv"], [56, "_CPPv4NK4idol6Column9quadraticEv"]], "idol::column::set_linear (c++ function)": [[56, "_CPPv4N4idol6Column10set_linearERK7LinExprI3CtrE"], [56, "_CPPv4N4idol6Column10set_linearERR7LinExprI3CtrE"]], "idol::column::set_obj (c++ function)": [[56, "_CPPv4N4idol6Column7set_objERK8Constant"], [56, "_CPPv4N4idol6Column7set_objERR8Constant"]], "idol::column::set_quadratic (c++ function)": [[56, "_CPPv4N4idol6Column13set_quadraticERK8QuadExprI3Ctr3VarE"], [56, "_CPPv4N4idol6Column13set_quadraticERR8QuadExprI3Ctr3VarE"]], "idol::constant (c++ class)": [[57, "_CPPv4N4idol8ConstantE"]], "idol::constant::constant (c++ function)": [[57, "_CPPv4N4idol8Constant8ConstantERK5ParamRK5Paramd"], [57, "_CPPv4N4idol8Constant8ConstantERK5Paramd"], [57, "_CPPv4N4idol8Constant8ConstantERK8Constant"], [57, "_CPPv4N4idol8Constant8ConstantERR8Constant"], [57, "_CPPv4N4idol8Constant8ConstantEd"], [57, "_CPPv4N4idol8Constant8ConstantEv"]], "idol::constant::zero (c++ member)": [[57, "_CPPv4N4idol8Constant4ZeroE"]], "idol::constant::as_numerical (c++ function)": [[57, "_CPPv4NK4idol8Constant12as_numericalEv"]], "idol::constant::fix (c++ function)": [[57, "_CPPv4NK4idol8Constant3fixERKN8Solution4DualE"], [57, "_CPPv4NK4idol8Constant3fixERKN8Solution6PrimalE"]], "idol::constant::get (c++ function)": [[57, "_CPPv4NK4idol8Constant3getERK5Param"], [57, "_CPPv4NK4idol8Constant3getERK5ParamRK5Param"]], "idol::constant::is_numerical (c++ function)": [[57, "_CPPv4NK4idol8Constant12is_numericalEv"]], "idol::constant::is_zero (c++ function)": [[57, "_CPPv4NK4idol8Constant7is_zeroEv"]], "idol::constant::linear (c++ function)": [[57, "_CPPv4N4idol8Constant6linearEv"], [57, "_CPPv4NK4idol8Constant6linearEv"]], "idol::constant::multiply_with_precision (c++ function)": [[57, "_CPPv4N4idol8Constant23multiply_with_precisionEdj"]], "idol::constant::multiply_with_precision_by_power_of_10 (c++ function)": [[57, "_CPPv4N4idol8Constant38multiply_with_precision_by_power_of_10Ejj"]], "idol::constant::numerical (c++ function)": [[57, "_CPPv4NK4idol8Constant9numericalEv"]], "idol::constant::operator*= (c++ function)": [[57, "_CPPv4N4idol8ConstantmLEd"]], "idol::constant::operator+= (c++ function)": [[57, "_CPPv4N4idol8ConstantpLERK5Param"], [57, "_CPPv4N4idol8ConstantpLERK8Constant"], [57, "_CPPv4N4idol8ConstantpLEd"]], "idol::constant::operator-= (c++ function)": [[57, "_CPPv4N4idol8ConstantmIE5Param"], [57, "_CPPv4N4idol8ConstantmIERK8Constant"], [57, "_CPPv4N4idol8ConstantmIEd"]], "idol::constant::operator/= (c++ function)": [[57, "_CPPv4N4idol8ConstantdVEd"]], "idol::constant::operator= (c++ function)": [[57, "_CPPv4N4idol8ConstantaSERK8Constant"], [57, "_CPPv4N4idol8ConstantaSERR8Constant"]], "idol::constant::quadratic (c++ function)": [[57, "_CPPv4N4idol8Constant9quadraticEv"], [57, "_CPPv4NK4idol8Constant9quadraticEv"]], "idol::constant::round (c++ function)": [[57, "_CPPv4N4idol8Constant5roundEv"]], "idol::constant::set (c++ function)": [[57, "_CPPv4N4idol8Constant3setERK5ParamRK5Paramd"], [57, "_CPPv4N4idol8Constant3setERK5Paramd"]], "idol::constant::set_numerical (c++ function)": [[57, "_CPPv4N4idol8Constant13set_numericalEd"]], "idol::constant::size (c++ function)": [[57, "_CPPv4NK4idol8Constant4sizeEv"]], "idol::ctr (c++ class)": [[58, "_CPPv4N4idol3CtrE"]], "idol::ctr::ctr (c++ function)": [[58, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRK8ConstantNSt6stringE"], [58, "_CPPv4N4idol3Ctr3CtrER3Env7CtrTypeRR8ConstantNSt6stringE"], [58, "_CPPv4N4idol3Ctr3CtrER3EnvRK7TempCtrNSt6stringE"], [58, "_CPPv4N4idol3Ctr3CtrER3EnvRR7TempCtrNSt6stringE"]], "idol::ctr::get (c++ function)": [[58, "_CPPv4NK4idol3Ctr3getERK10AnnotationI3Ctr6ValueTE"]], "idol::ctr::id (c++ function)": [[58, "_CPPv4NK4idol3Ctr2idEv"]], "idol::ctr::is_in (c++ function)": [[58, "_CPPv4NK4idol3Ctr5is_inERK5Model"]], "idol::ctr::make_vector (c++ function)": [[58, "_CPPv4I_j_jEN4idol3Ctr11make_vectorE6VectorI3CtrXmi1N1IEER3EnvRK3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE"]], "idol::ctr::name (c++ function)": [[58, "_CPPv4NK4idol3Ctr4nameEv"]], "idol::ctr::set (c++ function)": [[58, "_CPPv4NK4idol3Ctr3setERK10AnnotationI3Ctr6ValueTEDpRR5ArgsT"]], "idol::ctrtype (c++ enum)": [[59, "_CPPv4N4idol7CtrTypeE"]], "idol::ctrtype::equal (c++ enumerator)": [[59, "_CPPv4N4idol7CtrType5EqualE"]], "idol::ctrtype::greaterorequal (c++ enumerator)": [[59, "_CPPv4N4idol7CtrType14GreaterOrEqualE"]], "idol::ctrtype::lessorequal (c++ enumerator)": [[59, "_CPPv4N4idol7CtrType11LessOrEqualE"]], "idol::env (c++ class)": [[60, "_CPPv4N4idol3EnvE"]], "idol::env::env (c++ function)": [[60, "_CPPv4N4idol3Env3EnvEv"]], "idol::env::operator[] (c++ function)": [[60, "_CPPv4I0ENK4idol3EnvixERKDaRK1T"]], "idol::expr (c++ class)": [[61, "_CPPv4I00EN4idol4ExprE"]], "idol::expr::expr (c++ function)": [[61, "_CPPv4N4idol4Expr4ExprERK4Expr"], [61, "_CPPv4N4idol4Expr4ExprERK4Key1"], [61, "_CPPv4N4idol4Expr4ExprERK5Param"], [61, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1E"], [61, "_CPPv4N4idol4Expr4ExprERK7LinExprI4Key1ERK8QuadExprI4Key14Key2ERK8Constant"], [61, "_CPPv4N4idol4Expr4ExprERK8Constant"], [61, "_CPPv4N4idol4Expr4ExprERK8QuadExprI4Key1E"], [61, "_CPPv4N4idol4Expr4ExprERR4Expr"], [61, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1E"], [61, "_CPPv4N4idol4Expr4ExprERR7LinExprI4Key1ERR8QuadExprI4Key14Key2ERR8Constant"], [61, "_CPPv4N4idol4Expr4ExprERR8Constant"], [61, "_CPPv4N4idol4Expr4ExprERR8QuadExprI4Key1E"], [61, "_CPPv4N4idol4Expr4ExprEd"], [61, "_CPPv4N4idol4Expr4ExprEv"]], "idol::expr::clear (c++ function)": [[61, "_CPPv4N4idol4Expr5clearEv"]], "idol::expr::constant (c++ function)": [[61, "_CPPv4N4idol4Expr8constantEv"], [61, "_CPPv4NK4idol4Expr8constantEv"]], "idol::expr::fix (c++ function)": [[61, "_CPPv4NK4idol4Expr3fixERKN8Solution6PrimalE"]], "idol::expr::gcd (c++ function)": [[61, "_CPPv4NK4idol4Expr3gcdEv"]], "idol::expr::is_zero (c++ function)": [[61, "_CPPv4NK4idol4Expr7is_zeroEv"]], "idol::expr::linear (c++ function)": [[61, "_CPPv4N4idol4Expr6linearEv"], [61, "_CPPv4NK4idol4Expr6linearEv"]], "idol::expr::multiply_with_precision (c++ function)": [[61, "_CPPv4N4idol4Expr23multiply_with_precisionEdj"]], "idol::expr::multiply_with_precision_by_power_of_10 (c++ function)": [[61, "_CPPv4N4idol4Expr38multiply_with_precision_by_power_of_10Ejj"]], "idol::expr::operator*= (c++ function)": [[61, "_CPPv4N4idol4ExprmLEd"]], "idol::expr::operator+= (c++ function)": [[61, "_CPPv4N4idol4ExprpLERK4ExprIN4idol3VarEN4idol3VarEE"]], "idol::expr::operator-= (c++ function)": [[61, "_CPPv4N4idol4ExprmIERK4ExprIN4idol3VarEN4idol3VarEE"]], "idol::expr::operator/= (c++ function)": [[61, "_CPPv4N4idol4ExprdVEd"]], "idol::expr::operator= (c++ function)": [[61, "_CPPv4N4idol4ExpraSERK4Expr"], [61, "_CPPv4N4idol4ExpraSERR4Expr"]], "idol::expr::quadratic (c++ function)": [[61, "_CPPv4N4idol4Expr9quadraticEv"], [61, "_CPPv4NK4idol4Expr9quadraticEv"]], "idol::expr::round (c++ function)": [[61, "_CPPv4N4idol4Expr5roundEv"]], "idol::expr::scale_to_integers (c++ function)": [[61, "_CPPv4N4idol4Expr17scale_to_integersEj"]], "idol::linexpr (c++ class)": [[62, "_CPPv4I0EN4idol7LinExprE"]], "idol::linexpr::linexpr (c++ function)": [[62, "_CPPv4N4idol7LinExpr7LinExprERK3Key"], [62, "_CPPv4N4idol7LinExpr7LinExprERK8ConstantRK3Key"], [62, "_CPPv4N4idol7LinExpr7LinExprERR8ConstantRK3Key"], [62, "_CPPv4N4idol7LinExpr7LinExprEv"]], "idol::linexpr::begin (c++ function)": [[62, "_CPPv4NK4idol7LinExpr5beginEv"]], "idol::linexpr::clear (c++ function)": [[62, "_CPPv4N4idol7LinExpr5clearEv"]], "idol::linexpr::empty (c++ function)": [[62, "_CPPv4NK4idol7LinExpr5emptyEv"]], "idol::linexpr::end (c++ function)": [[62, "_CPPv4NK4idol7LinExpr3endEv"]], "idol::linexpr::fix (c++ function)": [[62, "_CPPv4NK4idol7LinExpr3fixERKN8Solution6PrimalE"]], "idol::linexpr::gcd (c++ function)": [[62, "_CPPv4NK4idol7LinExpr3gcdEv"]], "idol::linexpr::get (c++ function)": [[62, "_CPPv4NK4idol7LinExpr3getERK3Key"]], "idol::linexpr::multiply_with_precision (c++ function)": [[62, "_CPPv4N4idol7LinExpr23multiply_with_precisionEdj"]], "idol::linexpr::multiply_with_precision_by_power_of_10 (c++ function)": [[62, "_CPPv4N4idol7LinExpr38multiply_with_precision_by_power_of_10Ejj"]], "idol::linexpr::operator*= (c++ function)": [[62, "_CPPv4N4idol7LinExprmLEd"]], "idol::linexpr::operator+= (c++ function)": [[62, "_CPPv4N4idol7LinExprpLERK12AbstractExprI3Key15IteratorOutputT4Hash7EqualToE"]], "idol::linexpr::operator-= (c++ function)": [[62, "_CPPv4N4idol7LinExprmIERK12AbstractExprI3Key15IteratorOutputT4Hash7EqualToE"]], "idol::linexpr::operator/= (c++ function)": [[62, "_CPPv4N4idol7LinExprdVEd"]], "idol::linexpr::remove (c++ function)": [[62, "_CPPv4N4idol7LinExpr6removeERK3Key"]], "idol::linexpr::round (c++ function)": [[62, "_CPPv4N4idol7LinExpr5roundEv"]], "idol::linexpr::set (c++ function)": [[62, "_CPPv4N4idol7LinExpr3setERK3KeyRK8Constant"], [62, "_CPPv4N4idol7LinExpr3setERK3KeyRR8Constant"]], "idol::linexpr::size (c++ function)": [[62, "_CPPv4NK4idol7LinExpr4sizeEv"]], "idol::model (c++ class)": [[63, "_CPPv4N4idol5ModelE"]], "idol::model::model (c++ function)": [[63, "_CPPv4N4idol5Model5ModelER3Env"], [63, "_CPPv4N4idol5Model5ModelER3Env14ObjectiveSense"], [63, "_CPPv4N4idol5Model5ModelERR5Model"]], "idol::model::add (c++ function)": [[63, "_CPPv4N4idol5Model3addERK3Ctr"], [63, "_CPPv4N4idol5Model3addERK3Ctr7TempCtr"], [63, "_CPPv4N4idol5Model3addERK3Var"], [63, "_CPPv4N4idol5Model3addERK3Var7TempVar"]], "idol::model::add_ctr (c++ function)": [[63, "_CPPv4N4idol5Model7add_ctrE7TempCtrNSt6stringE"], [63, "_CPPv4N4idol5Model7add_ctrERR3Row7CtrTypeNSt6stringE"]], "idol::model::add_ctrs (c++ function)": [[63, "_CPPv4I_jEN4idol5Model8add_ctrsE6VectorI3Ctr1NE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE"], [63, "_CPPv4I_jEN4idol5Model8add_ctrsEN4idol6VectorIN4idol3CtrE1NEE3DimI1NE7CtrTypeRK8ConstantRKNSt6stringE"]], "idol::model::add_var (c++ function)": [[63, "_CPPv4N4idol5Model7add_varEdd7VarType6ColumnNSt6stringE"], [63, "_CPPv4N4idol5Model7add_varEdd7VarTypeNSt6stringE"]], "idol::model::add_vars (c++ function)": [[63, "_CPPv4I_jEN4idol5Model8add_varsE6VectorI3Var1NE3DimI1NEdd7VarTypeRKNSt6stringE"], [63, "_CPPv4I_jEN4idol5Model8add_varsEN4idol6VectorIN4idol3VarE1NEE3DimI1NEdd7VarTypeRKNSt6stringE"]], "idol::model::add_vector (c++ function)": [[63, "_CPPv4I0_jEN4idol5Model10add_vectorEvRK6VectorI1T1NE"]], "idol::model::clone (c++ function)": [[63, "_CPPv4NK4idol5Model5cloneEv"]], "idol::model::copy (c++ function)": [[63, "_CPPv4NK4idol5Model4copyEv"]], "idol::model::ctrs (c++ function)": [[63, "_CPPv4NK4idol5Model4ctrsEv"]], "idol::model::env (c++ function)": [[63, "_CPPv4NK4idol5Model3envEv"]], "idol::model::fix (c++ function)": [[63, "_CPPv4NK4idol5Model3fixERKN8Solution6PrimalE"]], "idol::model::get_best_bound (c++ function)": [[63, "_CPPv4NK4idol5Model14get_best_boundEv"]], "idol::model::get_best_obj (c++ function)": [[63, "_CPPv4NK4idol5Model12get_best_objEv"]], "idol::model::get_ctr_by_index (c++ function)": [[63, "_CPPv4NK4idol5Model16get_ctr_by_indexEj"]], "idol::model::get_ctr_dual (c++ function)": [[63, "_CPPv4NK4idol5Model12get_ctr_dualERK3Ctr"]], "idol::model::get_ctr_farkas (c++ function)": [[63, "_CPPv4NK4idol5Model14get_ctr_farkasERK3Ctr"]], "idol::model::get_ctr_index (c++ function)": [[63, "_CPPv4NK4idol5Model13get_ctr_indexERK3Ctr"]], "idol::model::get_ctr_row (c++ function)": [[63, "_CPPv4NK4idol5Model11get_ctr_rowERK3Ctr"]], "idol::model::get_ctr_type (c++ function)": [[63, "_CPPv4NK4idol5Model12get_ctr_typeERK3Ctr"]], "idol::model::get_mat_coeff (c++ function)": [[63, "_CPPv4NK4idol5Model13get_mat_coeffERK3CtrRK3Var"]], "idol::model::get_n_solutions (c++ function)": [[63, "_CPPv4NK4idol5Model15get_n_solutionsEv"]], "idol::model::get_obj_expr (c++ function)": [[63, "_CPPv4NK4idol5Model12get_obj_exprEv"]], "idol::model::get_obj_sense (c++ function)": [[63, "_CPPv4NK4idol5Model13get_obj_senseEv"]], "idol::model::get_reason (c++ function)": [[63, "_CPPv4NK4idol5Model10get_reasonEv"]], "idol::model::get_rhs_expr (c++ function)": [[63, "_CPPv4NK4idol5Model12get_rhs_exprEv"]], "idol::model::get_solution_index (c++ function)": [[63, "_CPPv4NK4idol5Model18get_solution_indexEv"]], "idol::model::get_status (c++ function)": [[63, "_CPPv4NK4idol5Model10get_statusEv"]], "idol::model::get_var_by_index (c++ function)": [[63, "_CPPv4NK4idol5Model16get_var_by_indexEj"]], "idol::model::get_var_column (c++ function)": [[63, "_CPPv4NK4idol5Model14get_var_columnERK3Var"]], "idol::model::get_var_index (c++ function)": [[63, "_CPPv4NK4idol5Model13get_var_indexERK3Var"]], "idol::model::get_var_lb (c++ function)": [[63, "_CPPv4NK4idol5Model10get_var_lbERK3Var"]], "idol::model::get_var_primal (c++ function)": [[63, "_CPPv4NK4idol5Model14get_var_primalERK3Var"]], "idol::model::get_var_ray (c++ function)": [[63, "_CPPv4NK4idol5Model11get_var_rayERK3Var"]], "idol::model::get_var_reduced_cost (c++ function)": [[63, "_CPPv4NK4idol5Model20get_var_reduced_costERK3Var"]], "idol::model::get_var_type (c++ function)": [[63, "_CPPv4NK4idol5Model12get_var_typeERK3Var"]], "idol::model::get_var_ub (c++ function)": [[63, "_CPPv4NK4idol5Model10get_var_ubERK3Var"]], "idol::model::has (c++ function)": [[63, "_CPPv4NK4idol5Model3hasERK3Ctr"], [63, "_CPPv4NK4idol5Model3hasERK3Var"]], "idol::model::has_optimizer (c++ function)": [[63, "_CPPv4NK4idol5Model13has_optimizerEv"]], "idol::model::has_optimizer_factory (c++ function)": [[63, "_CPPv4NK4idol5Model21has_optimizer_factoryEv"]], "idol::model::id (c++ function)": [[63, "_CPPv4NK4idol5Model2idEv"]], "idol::model::operator= (c++ function)": [[63, "_CPPv4N4idol5ModelaSERK5Model"], [63, "_CPPv4N4idol5ModelaSERR5Model"]], "idol::model::optimize (c++ function)": [[63, "_CPPv4N4idol5Model8optimizeEv"]], "idol::model::optimizer (c++ function)": [[63, "_CPPv4N4idol5Model9optimizerEv"], [63, "_CPPv4NK4idol5Model9optimizerEv"]], "idol::model::optimizer_factory (c++ function)": [[63, "_CPPv4NK4idol5Model17optimizer_factoryEv"]], "idol::model::remove (c++ function)": [[63, "_CPPv4N4idol5Model6removeERK3Ctr"], [63, "_CPPv4N4idol5Model6removeERK3Var"]], "idol::model::reserve_ctrs (c++ function)": [[63, "_CPPv4N4idol5Model12reserve_ctrsEj"]], "idol::model::reserve_vars (c++ function)": [[63, "_CPPv4N4idol5Model12reserve_varsEj"]], "idol::model::scale_to_integers (c++ function)": [[63, "_CPPv4N4idol5Model17scale_to_integersEj"]], "idol::model::set_ctr_rhs (c++ function)": [[63, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRK8Constant"], [63, "_CPPv4N4idol5Model11set_ctr_rhsERK3CtrRR8Constant"]], "idol::model::set_ctr_row (c++ function)": [[63, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRK3Row"], [63, "_CPPv4N4idol5Model11set_ctr_rowERK3CtrRR3Row"]], "idol::model::set_ctr_type (c++ function)": [[63, "_CPPv4N4idol5Model12set_ctr_typeERK3Ctr7CtrType"]], "idol::model::set_mat_coeff (c++ function)": [[63, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRK8Constant"], [63, "_CPPv4N4idol5Model13set_mat_coeffERK3CtrRK3VarRR8Constant"]], "idol::model::set_obj_const (c++ function)": [[63, "_CPPv4N4idol5Model13set_obj_constERK8Constant"], [63, "_CPPv4N4idol5Model13set_obj_constERR8Constant"]], "idol::model::set_obj_expr (c++ function)": [[63, "_CPPv4N4idol5Model12set_obj_exprERK4ExprI3Var3VarE"], [63, "_CPPv4N4idol5Model12set_obj_exprERR4ExprI3Var3VarE"]], "idol::model::set_obj_sense (c++ function)": [[63, "_CPPv4N4idol5Model13set_obj_senseE14ObjectiveSense"]], "idol::model::set_rhs_expr (c++ function)": [[63, "_CPPv4N4idol5Model12set_rhs_exprERK7LinExprI3CtrE"], [63, "_CPPv4N4idol5Model12set_rhs_exprERR7LinExprI3CtrE"]], "idol::model::set_solution_index (c++ function)": [[63, "_CPPv4N4idol5Model18set_solution_indexEj"]], "idol::model::set_var_column (c++ function)": [[63, "_CPPv4N4idol5Model14set_var_columnERK3VarRK6Column"], [63, "_CPPv4N4idol5Model14set_var_columnERK3VarRR6Column"]], "idol::model::set_var_lb (c++ function)": [[63, "_CPPv4N4idol5Model10set_var_lbERK3Vard"]], "idol::model::set_var_obj (c++ function)": [[63, "_CPPv4N4idol5Model11set_var_objERK3VarRK8Constant"], [63, "_CPPv4N4idol5Model11set_var_objERK3VarRR8Constant"]], "idol::model::set_var_type (c++ function)": [[63, "_CPPv4N4idol5Model12set_var_typeERK3Var7VarType"]], "idol::model::set_var_ub (c++ function)": [[63, "_CPPv4N4idol5Model10set_var_ubERK3Vard"]], "idol::model::unuse (c++ function)": [[63, "_CPPv4N4idol5Model5unuseEv"]], "idol::model::update (c++ function)": [[63, "_CPPv4N4idol5Model6updateEv"]], "idol::model::use (c++ function)": [[63, "_CPPv4N4idol5Model3useERK16OptimizerFactory"]], "idol::model::vars (c++ function)": [[63, "_CPPv4NK4idol5Model4varsEv"]], "idol::model::write (c++ function)": [[63, "_CPPv4N4idol5Model5writeERKNSt6stringE"]], "idol::model::~model (c++ function)": [[63, "_CPPv4N4idol5ModelD0Ev"]], "idol::param (c++ class)": [[64, "_CPPv4N4idol5ParamE"]], "idol::param::param (c++ function)": [[64, "_CPPv4N4idol5Param5ParamERK3Ctr"], [64, "_CPPv4N4idol5Param5ParamERK3Var"], [64, "_CPPv4N4idol5Param5ParamERK5Param"], [64, "_CPPv4N4idol5Param5ParamERR5Param"]], "idol::param::as (c++ function)": [[64, "_CPPv4I0ENK4idol5Param2asE1Tv"]], "idol::param::id (c++ function)": [[64, "_CPPv4NK4idol5Param2idEv"]], "idol::param::is (c++ function)": [[64, "_CPPv4I0ENK4idol5Param2isEbv"]], "idol::param::name (c++ function)": [[64, "_CPPv4NK4idol5Param4nameEv"]], "idol::param::operator= (c++ function)": [[64, "_CPPv4N4idol5ParamaSERK5Param"], [64, "_CPPv4N4idol5ParamaSERR5Param"]], "idol::quadexpr (c++ class)": [[65, "_CPPv4I0000EN4idol8QuadExprE"]], "idol::quadexpr::quadexpr (c++ function)": [[65, "_CPPv4N4idol8QuadExpr8QuadExprERK4Key1RK4Key2"], [65, "_CPPv4N4idol8QuadExpr8QuadExprERK8ConstantRK4Key1RK4Key2"], [65, "_CPPv4N4idol8QuadExpr8QuadExprERK8QuadExpr"], [65, "_CPPv4N4idol8QuadExpr8QuadExprERR8ConstantRK4Key1RK4Key2"], [65, "_CPPv4N4idol8QuadExpr8QuadExprERR8QuadExpr"], [65, "_CPPv4N4idol8QuadExpr8QuadExprEv"]], "idol::quadexpr::fix (c++ function)": [[65, "_CPPv4NK4idol8QuadExpr3fixERKN8Solution6PrimalE"]], "idol::quadexpr::get (c++ function)": [[65, "_CPPv4NK4idol8QuadExpr3getERK4Key1RK4Key2"]], "idol::quadexpr::operator= (c++ function)": [[65, "_CPPv4N4idol8QuadExpraSERK8QuadExpr"], [65, "_CPPv4N4idol8QuadExpraSERR8QuadExpr"]], "idol::quadexpr::set (c++ function)": [[65, "_CPPv4N4idol8QuadExpr3setERK4Key1RK4Key28Constant"]], "idol::quadexpr::~quadexpr (c++ function)": [[65, "_CPPv4N4idol8QuadExprD0Ev"]], "idol::row (c++ class)": [[66, "_CPPv4N4idol3RowE"]], "idol::row::emptyrow (c++ member)": [[66, "_CPPv4N4idol3Row8EmptyRowE"]], "idol::row::row (c++ function)": [[66, "_CPPv4N4idol3Row3RowERK3Row"], [66, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERK4ExprI3Var3VarE"], [66, "_CPPv4N4idol3Row3RowERK4ExprI3Var3VarERR4ExprI3Var3VarE"], [66, "_CPPv4N4idol3Row3RowERR3Row"], [66, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERK4ExprI3Var3VarE"], [66, "_CPPv4N4idol3Row3RowERR4ExprI3Var3VarERR4ExprI3Var3VarE"], [66, "_CPPv4N4idol3Row3RowEv"]], "idol::row::fix (c++ function)": [[66, "_CPPv4NK4idol3Row3fixERKN8Solution4DualE"], [66, "_CPPv4NK4idol3Row3fixERKN8Solution6PrimalE"]], "idol::row::gcd (c++ function)": [[66, "_CPPv4NK4idol3Row3gcdEv"]], "idol::row::is_violated (c++ function)": [[66, "_CPPv4NK4idol3Row11is_violatedERKN8Solution6PrimalE7CtrTyped"]], "idol::row::linear (c++ function)": [[66, "_CPPv4N4idol3Row6linearEv"], [66, "_CPPv4NK4idol3Row6linearEv"]], "idol::row::multiply_with_precision_by_power_of_10 (c++ function)": [[66, "_CPPv4N4idol3Row38multiply_with_precision_by_power_of_10Ejj"]], "idol::row::operator*= (c++ function)": [[66, "_CPPv4N4idol3RowmLEd"]], "idol::row::operator+= (c++ function)": [[66, "_CPPv4N4idol3RowpLERK3Row"]], "idol::row::operator-= (c++ function)": [[66, "_CPPv4N4idol3RowmIERK3Row"]], "idol::row::operator/= (c++ function)": [[66, "_CPPv4N4idol3RowdVEd"]], "idol::row::operator= (c++ function)": [[66, "_CPPv4N4idol3RowaSERK3Row"], [66, "_CPPv4N4idol3RowaSERR3Row"]], "idol::row::quadratic (c++ function)": [[66, "_CPPv4N4idol3Row9quadraticEv"], [66, "_CPPv4NK4idol3Row9quadraticEv"]], "idol::row::rhs (c++ function)": [[66, "_CPPv4N4idol3Row3rhsEv"], [66, "_CPPv4NK4idol3Row3rhsEv"]], "idol::row::scale_to_integers (c++ function)": [[66, "_CPPv4N4idol3Row17scale_to_integersEj"]], "idol::row::set_linear (c++ function)": [[66, "_CPPv4N4idol3Row10set_linearERK7LinExprI3VarE"], [66, "_CPPv4N4idol3Row10set_linearERR7LinExprI3VarE"]], "idol::row::set_quadratic (c++ function)": [[66, "_CPPv4N4idol3Row13set_quadraticERK8QuadExprI3Var3VarE"], [66, "_CPPv4N4idol3Row13set_quadraticERR8QuadExprI3Var3VarE"]], "idol::row::set_rhs (c++ function)": [[66, "_CPPv4N4idol3Row7set_rhsERK8Constant"], [66, "_CPPv4N4idol3Row7set_rhsERR8Constant"]], "idol::row::value (c++ function)": [[66, "_CPPv4NK4idol3Row5valueERKN8Solution6PrimalE"]], "idol::solution::dual (c++ class)": [[67, "_CPPv4N4idol8Solution4DualE"]], "idol::solution::dual::begin (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual5beginEv"]], "idol::solution::dual::cbegin (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual6cbeginEv"]], "idol::solution::dual::cend (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual4cendEv"]], "idol::solution::dual::const_iterator (c++ type)": [[67, "_CPPv4N4idol8Solution4Dual14const_iteratorE"]], "idol::solution::dual::end (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual3endEv"]], "idol::solution::dual::get (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual3getERK3Ctr"]], "idol::solution::dual::has_objective_value (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual19has_objective_valueEv"]], "idol::solution::dual::merge_without_conflict (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual22merge_without_conflictE4Dual"]], "idol::solution::dual::norm (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual4normEd"]], "idol::solution::dual::normalize (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual9normalizeEd"]], "idol::solution::dual::objective_value (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual15objective_valueEv"]], "idol::solution::dual::operator*= (c++ function)": [[67, "_CPPv4N4idol8Solution4DualmLEd"]], "idol::solution::dual::operator+= (c++ function)": [[67, "_CPPv4N4idol8Solution4DualpLERK4Dual"]], "idol::solution::dual::reason (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual6reasonEv"]], "idol::solution::dual::reset_objective_value (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual21reset_objective_valueEv"]], "idol::solution::dual::round (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual5roundEj"]], "idol::solution::dual::set (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual3setERK3Ctrd"]], "idol::solution::dual::set_objective_value (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual19set_objective_valueEd"]], "idol::solution::dual::set_reason (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual10set_reasonE14SolutionReason"]], "idol::solution::dual::set_status (c++ function)": [[67, "_CPPv4N4idol8Solution4Dual10set_statusE14SolutionStatus"]], "idol::solution::dual::size (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual4sizeEv"]], "idol::solution::dual::status (c++ function)": [[67, "_CPPv4NK4idol8Solution4Dual6statusEv"]], "idol::solution::primal (c++ class)": [[68, "_CPPv4N4idol8Solution6PrimalE"]], "idol::solution::primal::begin (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal5beginEv"]], "idol::solution::primal::cbegin (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal6cbeginEv"]], "idol::solution::primal::cend (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal4cendEv"]], "idol::solution::primal::const_iterator (c++ type)": [[68, "_CPPv4N4idol8Solution6Primal14const_iteratorE"]], "idol::solution::primal::end (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal3endEv"]], "idol::solution::primal::get (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal3getERK3Var"]], "idol::solution::primal::has_objective_value (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal19has_objective_valueEv"]], "idol::solution::primal::merge_without_conflict (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal22merge_without_conflictE6Primal"]], "idol::solution::primal::norm (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal4normEd"]], "idol::solution::primal::normalize (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal9normalizeEd"]], "idol::solution::primal::objective_value (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal15objective_valueEv"]], "idol::solution::primal::operator*= (c++ function)": [[68, "_CPPv4N4idol8Solution6PrimalmLEd"]], "idol::solution::primal::operator+= (c++ function)": [[68, "_CPPv4N4idol8Solution6PrimalpLERK6Primal"]], "idol::solution::primal::reason (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal6reasonEv"]], "idol::solution::primal::reset_objective_value (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal21reset_objective_valueEv"]], "idol::solution::primal::round (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal5roundEj"]], "idol::solution::primal::set (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal3setERK3Vard"]], "idol::solution::primal::set_objective_value (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal19set_objective_valueEd"]], "idol::solution::primal::set_reason (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal10set_reasonE14SolutionReason"]], "idol::solution::primal::set_status (c++ function)": [[68, "_CPPv4N4idol8Solution6Primal10set_statusE14SolutionStatus"]], "idol::solution::primal::size (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal4sizeEv"]], "idol::solution::primal::status (c++ function)": [[68, "_CPPv4NK4idol8Solution6Primal6statusEv"]], "idol::tempctr (c++ class)": [[69, "_CPPv4N4idol7TempCtrE"]], "idol::tempctr::tempctr (c++ function)": [[69, "_CPPv4N4idol7TempCtr7TempCtrERK7TempCtr"], [69, "_CPPv4N4idol7TempCtr7TempCtrERR3Row7CtrType"], [69, "_CPPv4N4idol7TempCtr7TempCtrERR7TempCtr"], [69, "_CPPv4N4idol7TempCtr7TempCtrEv"]], "idol::tempctr::is_violated (c++ function)": [[69, "_CPPv4NK4idol7TempCtr11is_violatedERKN8Solution6PrimalE"]], "idol::tempctr::operator= (c++ function)": [[69, "_CPPv4N4idol7TempCtraSERK7TempCtr"], [69, "_CPPv4N4idol7TempCtraSERR7TempCtr"]], "idol::tempctr::row (c++ function)": [[69, "_CPPv4N4idol7TempCtr3rowEv"], [69, "_CPPv4NK4idol7TempCtr3rowEv"]], "idol::tempctr::set_type (c++ function)": [[69, "_CPPv4N4idol7TempCtr8set_typeE7CtrType"]], "idol::tempctr::type (c++ function)": [[69, "_CPPv4NK4idol7TempCtr4typeEv"]], "idol::tempvar (c++ class)": [[70, "_CPPv4N4idol7TempVarE"]], "idol::tempvar::tempvar (c++ function)": [[70, "_CPPv4N4idol7TempVar7TempVarERK7TempVar"], [70, "_CPPv4N4idol7TempVar7TempVarERR7TempVar"], [70, "_CPPv4N4idol7TempVar7TempVarEdd7VarTypeRR6Column"], [70, "_CPPv4N4idol7TempVar7TempVarEv"]], "idol::tempvar::column (c++ function)": [[70, "_CPPv4N4idol7TempVar6columnEv"], [70, "_CPPv4NK4idol7TempVar6columnEv"]], "idol::tempvar::lb (c++ function)": [[70, "_CPPv4NK4idol7TempVar2lbEv"]], "idol::tempvar::operator= (c++ function)": [[70, "_CPPv4N4idol7TempVaraSERK7TempVar"], [70, "_CPPv4N4idol7TempVaraSERR7TempVar"]], "idol::tempvar::set_lb (c++ function)": [[70, "_CPPv4N4idol7TempVar6set_lbEd"]], "idol::tempvar::set_type (c++ function)": [[70, "_CPPv4N4idol7TempVar8set_typeE7VarType"]], "idol::tempvar::set_ub (c++ function)": [[70, "_CPPv4N4idol7TempVar6set_ubEd"]], "idol::tempvar::type (c++ function)": [[70, "_CPPv4NK4idol7TempVar4typeEv"]], "idol::tempvar::ub (c++ function)": [[70, "_CPPv4NK4idol7TempVar2ubEv"]], "idol::var (c++ class)": [[71, "_CPPv4N4idol3VarE"]], "idol::var::var (c++ function)": [[71, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeNSt6stringE"], [71, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRK6ColumnNSt6stringE"], [71, "_CPPv4N4idol3Var3VarER3Envdd7VarTypeRR6ColumnNSt6stringE"], [71, "_CPPv4N4idol3Var3VarERK3Var"], [71, "_CPPv4N4idol3Var3VarERR3Var"]], "idol::var::get (c++ function)": [[71, "_CPPv4NK4idol3Var3getERK10AnnotationI3Var6ValueTE"]], "idol::var::id (c++ function)": [[71, "_CPPv4NK4idol3Var2idEv"]], "idol::var::is_in (c++ function)": [[71, "_CPPv4NK4idol3Var5is_inERK5Model"]], "idol::var::make_vector (c++ function)": [[71, "_CPPv4I_j_jEN4idol3Var11make_vectorE6VectorI3VarXmi1N1IEER3EnvRK3DimI1NEdd7VarTypeRKNSt6stringE"]], "idol::var::name (c++ function)": [[71, "_CPPv4NK4idol3Var4nameEv"]], "idol::var::operator= (c++ function)": [[71, "_CPPv4N4idol3VaraSERK3Var"], [71, "_CPPv4N4idol3VaraSERR3Var"]], "idol::var::set (c++ function)": [[71, "_CPPv4NK4idol3Var3setERK10AnnotationI3Var6ValueTEDpRR5ArgsT"]], "idol::vartype (c++ enum)": [[72, "_CPPv4N4idol7VarTypeE"], [100, "_CPPv4N4idol7VarTypeE"]], "idol::vartype::binary (c++ enumerator)": [[72, "_CPPv4N4idol7VarType6BinaryE"], [100, "_CPPv4N4idol7VarType6BinaryE"]], "idol::vartype::continuous (c++ enumerator)": [[72, "_CPPv4N4idol7VarType10ContinuousE"], [100, "_CPPv4N4idol7VarType10ContinuousE"]], "idol::vartype::integer (c++ enumerator)": [[72, "_CPPv4N4idol7VarType7IntegerE"], [100, "_CPPv4N4idol7VarType7IntegerE"]], "idol::bilevel::mibs (c++ class)": [[74, "_CPPv4N4idol7Bilevel4MibSE"]], "idol::bilevel::mibs::mibs (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS4MibSERK10AnnotationI3VarjERK10AnnotationI3CtrjE3Ctr"], [74, "_CPPv4N4idol7Bilevel4MibS4MibSERK4MibS"], [74, "_CPPv4N4idol7Bilevel4MibS4MibSERR4MibS"]], "idol::bilevel::mibs::as (c++ function)": [[74, "_CPPv4I0EN4idol7Bilevel4MibS2asER1Tv"], [74, "_CPPv4I0ENK4idol7Bilevel4MibS2asERK1Tv"]], "idol::bilevel::mibs::clone (c++ function)": [[74, "_CPPv4NK4idol7Bilevel4MibS5cloneEv"]], "idol::bilevel::mibs::conditional (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEE"], [74, "_CPPv4N4idol7Bilevel4MibS11conditionalEbRKNSt8functionIFvR4MibSEEERKNSt8functionIFvR4MibSEEE"]], "idol::bilevel::mibs::is (c++ function)": [[74, "_CPPv4I0ENK4idol7Bilevel4MibS2isEbv"]], "idol::bilevel::mibs::operator() (c++ function)": [[74, "_CPPv4NK4idol7Bilevel4MibSclERK5Model"]], "idol::bilevel::mibs::operator= (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibSaSERK4MibS"], [74, "_CPPv4N4idol7Bilevel4MibSaSERR4MibS"]], "idol::bilevel::mibs::with_absolute_gap_tolerance (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS27with_absolute_gap_toleranceEd"]], "idol::bilevel::mibs::with_best_bound_stop (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS20with_best_bound_stopEd"]], "idol::bilevel::mibs::with_best_obj_stop (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS18with_best_obj_stopEd"]], "idol::bilevel::mibs::with_infeasible_or_unbounded_info (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS33with_infeasible_or_unbounded_infoEb"]], "idol::bilevel::mibs::with_iteration_limit (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS20with_iteration_limitEj"]], "idol::bilevel::mibs::with_logs (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS9with_logsEb"]], "idol::bilevel::mibs::with_presolve (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS13with_presolveEb"]], "idol::bilevel::mibs::with_relative_gap_tolerance (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS27with_relative_gap_toleranceEd"]], "idol::bilevel::mibs::with_thread_limit (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS17with_thread_limitEj"]], "idol::bilevel::mibs::with_time_limit (c++ function)": [[74, "_CPPv4N4idol7Bilevel4MibS15with_time_limitEd"]], "idol::glpk (c++ class)": [[77, "_CPPv4N4idol4GLPKE"]], "idol::glpk::continuousrelaxation (c++ function)": [[77, "_CPPv4N4idol4GLPK20ContinuousRelaxationEv"]], "idol::glpk::glpk (c++ function)": [[77, "_CPPv4N4idol4GLPK4GLPKERK4GLPK"], [77, "_CPPv4N4idol4GLPK4GLPKERR4GLPK"], [77, "_CPPv4N4idol4GLPK4GLPKEv"]], "idol::glpk::as (c++ function)": [[77, "_CPPv4I0EN4idol4GLPK2asER1Tv"], [77, "_CPPv4I0ENK4idol4GLPK2asERK1Tv"]], "idol::glpk::clone (c++ function)": [[77, "_CPPv4NK4idol4GLPK5cloneEv"]], "idol::glpk::conditional (c++ function)": [[77, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEE"], [77, "_CPPv4N4idol4GLPK11conditionalEbRKNSt8functionIFvR4GLPKEEERKNSt8functionIFvR4GLPKEEE"]], "idol::glpk::is (c++ function)": [[77, "_CPPv4I0ENK4idol4GLPK2isEbv"]], "idol::glpk::operator() (c++ function)": [[77, "_CPPv4NK4idol4GLPKclERK5Model"]], "idol::glpk::operator= (c++ function)": [[77, "_CPPv4N4idol4GLPKaSERK4GLPK"], [77, "_CPPv4N4idol4GLPKaSERR4GLPK"]], "idol::glpk::read_from_file (c++ function)": [[77, "_CPPv4N4idol4GLPK14read_from_fileER3EnvRKNSt6stringE"]], "idol::glpk::with_absolute_gap_tolerance (c++ function)": [[77, "_CPPv4N4idol4GLPK27with_absolute_gap_toleranceEd"]], "idol::glpk::with_best_bound_stop (c++ function)": [[77, "_CPPv4N4idol4GLPK20with_best_bound_stopEd"]], "idol::glpk::with_best_obj_stop (c++ function)": [[77, "_CPPv4N4idol4GLPK18with_best_obj_stopEd"]], "idol::glpk::with_infeasible_or_unbounded_info (c++ function)": [[77, "_CPPv4N4idol4GLPK33with_infeasible_or_unbounded_infoEb"]], "idol::glpk::with_iteration_limit (c++ function)": [[77, "_CPPv4N4idol4GLPK20with_iteration_limitEj"]], "idol::glpk::with_logs (c++ function)": [[77, "_CPPv4N4idol4GLPK9with_logsEb"]], "idol::glpk::with_presolve (c++ function)": [[77, "_CPPv4N4idol4GLPK13with_presolveEb"]], "idol::glpk::with_relative_gap_tolerance (c++ function)": [[77, "_CPPv4N4idol4GLPK27with_relative_gap_toleranceEd"]], "idol::glpk::with_thread_limit (c++ function)": [[77, "_CPPv4N4idol4GLPK17with_thread_limitEj"]], "idol::glpk::with_time_limit (c++ function)": [[77, "_CPPv4N4idol4GLPK15with_time_limitEd"]], "idol::gurobi (c++ class)": [[78, "_CPPv4N4idol6GurobiE"]], "idol::gurobi::continuousrelaxation (c++ function)": [[78, "_CPPv4N4idol6Gurobi20ContinuousRelaxationEv"]], "idol::gurobi::gurobi (c++ function)": [[78, "_CPPv4N4idol6Gurobi6GurobiERK6Gurobi"], [78, "_CPPv4N4idol6Gurobi6GurobiERR6Gurobi"], [78, "_CPPv4N4idol6Gurobi6GurobiEv"]], "idol::gurobi::as (c++ function)": [[78, "_CPPv4I0EN4idol6Gurobi2asER1Tv"], [78, "_CPPv4I0ENK4idol6Gurobi2asERK1Tv"]], "idol::gurobi::clone (c++ function)": [[78, "_CPPv4NK4idol6Gurobi5cloneEv"]], "idol::gurobi::conditional (c++ function)": [[78, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEE"], [78, "_CPPv4N4idol6Gurobi11conditionalEbRKNSt8functionIFvR6GurobiEEERKNSt8functionIFvR6GurobiEEE"]], "idol::gurobi::is (c++ function)": [[78, "_CPPv4I0ENK4idol6Gurobi2isEbv"]], "idol::gurobi::operator() (c++ function)": [[78, "_CPPv4NK4idol6GurobiclERK5Model"]], "idol::gurobi::operator= (c++ function)": [[78, "_CPPv4N4idol6GurobiaSERK6Gurobi"], [78, "_CPPv4N4idol6GurobiaSERR6Gurobi"]], "idol::gurobi::read_from_file (c++ function)": [[78, "_CPPv4N4idol6Gurobi14read_from_fileER3EnvRKNSt6stringE"]], "idol::gurobi::with_absolute_gap_tolerance (c++ function)": [[78, "_CPPv4N4idol6Gurobi27with_absolute_gap_toleranceEd"]], "idol::gurobi::with_best_bound_stop (c++ function)": [[78, "_CPPv4N4idol6Gurobi20with_best_bound_stopEd"]], "idol::gurobi::with_best_obj_stop (c++ function)": [[78, "_CPPv4N4idol6Gurobi18with_best_obj_stopEd"]], "idol::gurobi::with_callback (c++ function)": [[78, "_CPPv4N4idol6Gurobi13with_callbackERK15CallbackFactory"]], "idol::gurobi::with_continuous_relaxation_only (c++ function)": [[78, "_CPPv4N4idol6Gurobi31with_continuous_relaxation_onlyEb"]], "idol::gurobi::with_external_param (c++ function)": [[78, "_CPPv4N4idol6Gurobi19with_external_paramE12GRB_IntParami"], [78, "_CPPv4N4idol6Gurobi19with_external_paramE15GRB_DoubleParamd"]], "idol::gurobi::with_infeasible_or_unbounded_info (c++ function)": [[78, "_CPPv4N4idol6Gurobi33with_infeasible_or_unbounded_infoEb"]], "idol::gurobi::with_iteration_limit (c++ function)": [[78, "_CPPv4N4idol6Gurobi20with_iteration_limitEj"]], "idol::gurobi::with_lazy_cut (c++ function)": [[78, "_CPPv4N4idol6Gurobi13with_lazy_cutEb"]], "idol::gurobi::with_logs (c++ function)": [[78, "_CPPv4N4idol6Gurobi9with_logsEb"]], "idol::gurobi::with_max_n_solution_in_pool (c++ function)": [[78, "_CPPv4N4idol6Gurobi27with_max_n_solution_in_poolEj"]], "idol::gurobi::with_presolve (c++ function)": [[78, "_CPPv4N4idol6Gurobi13with_presolveEb"]], "idol::gurobi::with_relative_gap_tolerance (c++ function)": [[78, "_CPPv4N4idol6Gurobi27with_relative_gap_toleranceEd"]], "idol::gurobi::with_thread_limit (c++ function)": [[78, "_CPPv4N4idol6Gurobi17with_thread_limitEj"]], "idol::gurobi::with_time_limit (c++ function)": [[78, "_CPPv4N4idol6Gurobi15with_time_limitEd"]], "idol::highs (c++ class)": [[79, "_CPPv4N4idol5HiGHSE"]], "idol::highs::continuousrelaxation (c++ function)": [[79, "_CPPv4N4idol5HiGHS20ContinuousRelaxationEv"]], "idol::highs::highs (c++ function)": [[79, "_CPPv4N4idol5HiGHS5HiGHSERK5HiGHS"], [79, "_CPPv4N4idol5HiGHS5HiGHSERR5HiGHS"], [79, "_CPPv4N4idol5HiGHS5HiGHSEv"]], "idol::highs::as (c++ function)": [[79, "_CPPv4I0EN4idol5HiGHS2asER1Tv"], [79, "_CPPv4I0ENK4idol5HiGHS2asERK1Tv"]], "idol::highs::clone (c++ function)": [[79, "_CPPv4NK4idol5HiGHS5cloneEv"]], "idol::highs::conditional (c++ function)": [[79, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEE"], [79, "_CPPv4N4idol5HiGHS11conditionalEbRKNSt8functionIFvR5HiGHSEEERKNSt8functionIFvR5HiGHSEEE"]], "idol::highs::is (c++ function)": [[79, "_CPPv4I0ENK4idol5HiGHS2isEbv"]], "idol::highs::operator() (c++ function)": [[79, "_CPPv4NK4idol5HiGHSclERK5Model"]], "idol::highs::operator= (c++ function)": [[79, "_CPPv4N4idol5HiGHSaSERK5HiGHS"], [79, "_CPPv4N4idol5HiGHSaSERR5HiGHS"]], "idol::highs::with_absolute_gap_tolerance (c++ function)": [[79, "_CPPv4N4idol5HiGHS27with_absolute_gap_toleranceEd"]], "idol::highs::with_best_bound_stop (c++ function)": [[79, "_CPPv4N4idol5HiGHS20with_best_bound_stopEd"]], "idol::highs::with_best_obj_stop (c++ function)": [[79, "_CPPv4N4idol5HiGHS18with_best_obj_stopEd"]], "idol::highs::with_continuous_relaxation_only (c++ function)": [[79, "_CPPv4N4idol5HiGHS31with_continuous_relaxation_onlyEb"]], "idol::highs::with_infeasible_or_unbounded_info (c++ function)": [[79, "_CPPv4N4idol5HiGHS33with_infeasible_or_unbounded_infoEb"]], "idol::highs::with_iteration_limit (c++ function)": [[79, "_CPPv4N4idol5HiGHS20with_iteration_limitEj"]], "idol::highs::with_logs (c++ function)": [[79, "_CPPv4N4idol5HiGHS9with_logsEb"]], "idol::highs::with_presolve (c++ function)": [[79, "_CPPv4N4idol5HiGHS13with_presolveEb"]], "idol::highs::with_relative_gap_tolerance (c++ function)": [[79, "_CPPv4N4idol5HiGHS27with_relative_gap_toleranceEd"]], "idol::highs::with_thread_limit (c++ function)": [[79, "_CPPv4N4idol5HiGHS17with_thread_limitEj"]], "idol::highs::with_time_limit (c++ function)": [[79, "_CPPv4N4idol5HiGHS15with_time_limitEd"]], "idol::mosek (c++ class)": [[80, "_CPPv4N4idol5MosekE"]], "idol::mosek::continuousrelaxation (c++ function)": [[80, "_CPPv4N4idol5Mosek20ContinuousRelaxationEv"]], "idol::mosek::mosek (c++ function)": [[80, "_CPPv4N4idol5Mosek5MosekERK5Mosek"], [80, "_CPPv4N4idol5Mosek5MosekERR5Mosek"], [80, "_CPPv4N4idol5Mosek5MosekEv"]], "idol::mosek::as (c++ function)": [[80, "_CPPv4I0EN4idol5Mosek2asER1Tv"], [80, "_CPPv4I0ENK4idol5Mosek2asERK1Tv"]], "idol::mosek::clone (c++ function)": [[80, "_CPPv4NK4idol5Mosek5cloneEv"]], "idol::mosek::conditional (c++ function)": [[80, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEE"], [80, "_CPPv4N4idol5Mosek11conditionalEbRKNSt8functionIFvR5MosekEEERKNSt8functionIFvR5MosekEEE"]], "idol::mosek::is (c++ function)": [[80, "_CPPv4I0ENK4idol5Mosek2isEbv"]], "idol::mosek::operator() (c++ function)": [[80, "_CPPv4NK4idol5MosekclERK5Model"]], "idol::mosek::operator= (c++ function)": [[80, "_CPPv4N4idol5MosekaSERK5Mosek"], [80, "_CPPv4N4idol5MosekaSERR5Mosek"]], "idol::mosek::with_absolute_gap_tolerance (c++ function)": [[80, "_CPPv4N4idol5Mosek27with_absolute_gap_toleranceEd"]], "idol::mosek::with_best_bound_stop (c++ function)": [[80, "_CPPv4N4idol5Mosek20with_best_bound_stopEd"]], "idol::mosek::with_best_obj_stop (c++ function)": [[80, "_CPPv4N4idol5Mosek18with_best_obj_stopEd"]], "idol::mosek::with_continuous_relaxation_only (c++ function)": [[80, "_CPPv4N4idol5Mosek31with_continuous_relaxation_onlyEb"]], "idol::mosek::with_external_parameter (c++ function)": [[80, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringENSt6stringE"], [80, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEd"], [80, "_CPPv4N4idol5Mosek23with_external_parameterERKNSt6stringEi"]], "idol::mosek::with_infeasible_or_unbounded_info (c++ function)": [[80, "_CPPv4N4idol5Mosek33with_infeasible_or_unbounded_infoEb"]], "idol::mosek::with_iteration_limit (c++ function)": [[80, "_CPPv4N4idol5Mosek20with_iteration_limitEj"]], "idol::mosek::with_logs (c++ function)": [[80, "_CPPv4N4idol5Mosek9with_logsEb"]], "idol::mosek::with_presolve (c++ function)": [[80, "_CPPv4N4idol5Mosek13with_presolveEb"]], "idol::mosek::with_relative_gap_tolerance (c++ function)": [[80, "_CPPv4N4idol5Mosek27with_relative_gap_toleranceEd"]], "idol::mosek::with_thread_limit (c++ function)": [[80, "_CPPv4N4idol5Mosek17with_thread_limitEj"]], "idol::mosek::with_time_limit (c++ function)": [[80, "_CPPv4N4idol5Mosek15with_time_limitEd"]], "idol::optimizers::glpk (c++ class)": [[81, "_CPPv4N4idol10Optimizers4GLPKE"]], "idol::optimizers::glpk::glpk (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK4GLPKERK5Modelb"]], "idol::optimizers::glpk::as (c++ function)": [[81, "_CPPv4I0EN4idol10Optimizers4GLPK2asER1Tv"], [81, "_CPPv4I0ENK4idol10Optimizers4GLPK2asERK1Tv"]], "idol::optimizers::glpk::get_param_best_bound_stop (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK25get_param_best_bound_stopEv"]], "idol::optimizers::glpk::get_param_best_obj_stop (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK23get_param_best_obj_stopEv"]], "idol::optimizers::glpk::get_param_infeasible_or_unbounded_info (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK38get_param_infeasible_or_unbounded_infoEv"]], "idol::optimizers::glpk::get_param_iteration_limit (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK25get_param_iteration_limitEv"]], "idol::optimizers::glpk::get_param_logs (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK14get_param_logsEv"]], "idol::optimizers::glpk::get_param_presolve (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK18get_param_presolveEv"]], "idol::optimizers::glpk::get_param_thread_limit (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK22get_param_thread_limitEv"]], "idol::optimizers::glpk::get_param_time_limit (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK20get_param_time_limitEv"]], "idol::optimizers::glpk::get_remaining_time (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK18get_remaining_timeEv"]], "idol::optimizers::glpk::get_tol_feasibility (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK19get_tol_feasibilityEv"]], "idol::optimizers::glpk::get_tol_integer (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK15get_tol_integerEv"]], "idol::optimizers::glpk::get_tol_mip_absolute_gap (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK24get_tol_mip_absolute_gapEv"]], "idol::optimizers::glpk::get_tol_mip_relative_gap (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK24get_tol_mip_relative_gapEv"]], "idol::optimizers::glpk::get_tol_optimality (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK18get_tol_optimalityEv"]], "idol::optimizers::glpk::is (c++ function)": [[81, "_CPPv4I0ENK4idol10Optimizers4GLPK2isEbv"]], "idol::optimizers::glpk::is_terminated (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK13is_terminatedEv"]], "idol::optimizers::glpk::name (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK4nameEv"]], "idol::optimizers::glpk::operator[] (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPKixERK3Ctr"], [81, "_CPPv4N4idol10Optimizers4GLPKixERK3Var"], [81, "_CPPv4NK4idol10Optimizers4GLPKixERK3Ctr"], [81, "_CPPv4NK4idol10Optimizers4GLPKixERK3Var"]], "idol::optimizers::glpk::parent (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK6parentEv"]], "idol::optimizers::glpk::read_from_file (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK14read_from_fileER3EnvRKNSt6stringE"]], "idol::optimizers::glpk::set_param_best_bound_stop (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK25set_param_best_bound_stopEd"]], "idol::optimizers::glpk::set_param_best_obj_stop (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK23set_param_best_obj_stopEd"]], "idol::optimizers::glpk::set_param_infeasible_or_unbounded_info (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK38set_param_infeasible_or_unbounded_infoEb"]], "idol::optimizers::glpk::set_param_iteration_limit (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK25set_param_iteration_limitEj"]], "idol::optimizers::glpk::set_param_logs (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK14set_param_logsEb"]], "idol::optimizers::glpk::set_param_presolve (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK18set_param_presolveEb"]], "idol::optimizers::glpk::set_param_threads (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK17set_param_threadsEj"]], "idol::optimizers::glpk::set_param_time_limit (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK20set_param_time_limitEd"]], "idol::optimizers::glpk::set_tol_feasibility (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK19set_tol_feasibilityEd"]], "idol::optimizers::glpk::set_tol_integer (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK15set_tol_integerEd"]], "idol::optimizers::glpk::set_tol_mip_absolute_gap (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK24set_tol_mip_absolute_gapEd"]], "idol::optimizers::glpk::set_tol_mip_relative_gap (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK24set_tol_mip_relative_gapEd"]], "idol::optimizers::glpk::set_tol_optimality (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK18set_tol_optimalityEd"]], "idol::optimizers::glpk::terminate (c++ function)": [[81, "_CPPv4N4idol10Optimizers4GLPK9terminateEv"]], "idol::optimizers::glpk::time (c++ function)": [[81, "_CPPv4NK4idol10Optimizers4GLPK4timeEv"]], "idol::optimizers::gurobi (c++ class)": [[82, "_CPPv4N4idol10Optimizers6GurobiE"]], "idol::optimizers::gurobi::gurobi (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5Modelb"], [82, "_CPPv4N4idol10Optimizers6Gurobi6GurobiERK5ModelbR6GRBEnv"]], "idol::optimizers::gurobi::add_callback (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi12add_callbackEP8Callback"]], "idol::optimizers::gurobi::as (c++ function)": [[82, "_CPPv4I0EN4idol10Optimizers6Gurobi2asER1Tv"], [82, "_CPPv4I0ENK4idol10Optimizers6Gurobi2asERK1Tv"]], "idol::optimizers::gurobi::env (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi3envEv"], [82, "_CPPv4NK4idol10Optimizers6Gurobi3envEv"]], "idol::optimizers::gurobi::get_param_best_bound_stop (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi25get_param_best_bound_stopEv"]], "idol::optimizers::gurobi::get_param_best_obj_stop (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi23get_param_best_obj_stopEv"]], "idol::optimizers::gurobi::get_param_infeasible_or_unbounded_info (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi38get_param_infeasible_or_unbounded_infoEv"]], "idol::optimizers::gurobi::get_param_iteration_limit (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi25get_param_iteration_limitEv"]], "idol::optimizers::gurobi::get_param_logs (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi14get_param_logsEv"]], "idol::optimizers::gurobi::get_param_presolve (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi18get_param_presolveEv"]], "idol::optimizers::gurobi::get_param_thread_limit (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi22get_param_thread_limitEv"]], "idol::optimizers::gurobi::get_param_time_limit (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi20get_param_time_limitEv"]], "idol::optimizers::gurobi::get_remaining_time (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi18get_remaining_timeEv"]], "idol::optimizers::gurobi::get_tol_feasibility (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi19get_tol_feasibilityEv"]], "idol::optimizers::gurobi::get_tol_integer (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi15get_tol_integerEv"]], "idol::optimizers::gurobi::get_tol_mip_absolute_gap (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi24get_tol_mip_absolute_gapEv"]], "idol::optimizers::gurobi::get_tol_mip_relative_gap (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi24get_tol_mip_relative_gapEv"]], "idol::optimizers::gurobi::get_tol_optimality (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi18get_tol_optimalityEv"]], "idol::optimizers::gurobi::is (c++ function)": [[82, "_CPPv4I0ENK4idol10Optimizers6Gurobi2isEbv"]], "idol::optimizers::gurobi::is_terminated (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi13is_terminatedEv"]], "idol::optimizers::gurobi::model (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi5modelEv"], [82, "_CPPv4NK4idol10Optimizers6Gurobi5modelEv"]], "idol::optimizers::gurobi::name (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi4nameEv"]], "idol::optimizers::gurobi::operator[] (c++ function)": [[82, "_CPPv4N4idol10Optimizers6GurobiixERK3Ctr"], [82, "_CPPv4N4idol10Optimizers6GurobiixERK3Var"], [82, "_CPPv4NK4idol10Optimizers6GurobiixERK3Ctr"], [82, "_CPPv4NK4idol10Optimizers6GurobiixERK3Var"]], "idol::optimizers::gurobi::parent (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi6parentEv"]], "idol::optimizers::gurobi::read_from_file (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi14read_from_fileER3EnvRKNSt6stringE"]], "idol::optimizers::gurobi::set_lazy_cut (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi12set_lazy_cutEb"]], "idol::optimizers::gurobi::set_max_n_solution_in_pool (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi26set_max_n_solution_in_poolEj"]], "idol::optimizers::gurobi::set_param (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE12GRB_IntParami"], [82, "_CPPv4N4idol10Optimizers6Gurobi9set_paramE15GRB_DoubleParamd"]], "idol::optimizers::gurobi::set_param_best_bound_stop (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi25set_param_best_bound_stopEd"]], "idol::optimizers::gurobi::set_param_best_obj_stop (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi23set_param_best_obj_stopEd"]], "idol::optimizers::gurobi::set_param_infeasible_or_unbounded_info (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi38set_param_infeasible_or_unbounded_infoEb"]], "idol::optimizers::gurobi::set_param_iteration_limit (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi25set_param_iteration_limitEj"]], "idol::optimizers::gurobi::set_param_logs (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi14set_param_logsEb"]], "idol::optimizers::gurobi::set_param_presolve (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi18set_param_presolveEb"]], "idol::optimizers::gurobi::set_param_threads (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi17set_param_threadsEj"]], "idol::optimizers::gurobi::set_param_time_limit (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi20set_param_time_limitEd"]], "idol::optimizers::gurobi::set_tol_feasibility (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi19set_tol_feasibilityEd"]], "idol::optimizers::gurobi::set_tol_integer (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi15set_tol_integerEd"]], "idol::optimizers::gurobi::set_tol_mip_absolute_gap (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi24set_tol_mip_absolute_gapEd"]], "idol::optimizers::gurobi::set_tol_mip_relative_gap (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi24set_tol_mip_relative_gapEd"]], "idol::optimizers::gurobi::set_tol_optimality (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi18set_tol_optimalityEd"]], "idol::optimizers::gurobi::terminate (c++ function)": [[82, "_CPPv4N4idol10Optimizers6Gurobi9terminateEv"]], "idol::optimizers::gurobi::time (c++ function)": [[82, "_CPPv4NK4idol10Optimizers6Gurobi4timeEv"]], "idol::osicbc (c++ class)": [[85, "_CPPv4N4idol6OsiCbcE"]], "idol::osicbc::continuousrelaxation (c++ function)": [[85, "_CPPv4N4idol6OsiCbc20ContinuousRelaxationERK18OsiSolverInterface"]], "idol::osicbc::as (c++ function)": [[85, "_CPPv4I0EN4idol6OsiCbc2asER1Tv"], [85, "_CPPv4I0ENK4idol6OsiCbc2asERK1Tv"]], "idol::osicbc::clone (c++ function)": [[85, "_CPPv4NK4idol6OsiCbc5cloneEv"]], "idol::osicbc::conditional (c++ function)": [[85, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEE"], [85, "_CPPv4N4idol6OsiCbc11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE"]], "idol::osicbc::create_osi_solver_interface (c++ function)": [[85, "_CPPv4NK4idol6OsiCbc27create_osi_solver_interfaceEv"]], "idol::osicbc::is (c++ function)": [[85, "_CPPv4I0ENK4idol6OsiCbc2isEbv"]], "idol::osicbc::operator() (c++ function)": [[85, "_CPPv4NK4idol6OsiCbcclERK5Model"]], "idol::osicbc::with_absolute_gap_tolerance (c++ function)": [[85, "_CPPv4N4idol6OsiCbc27with_absolute_gap_toleranceEd"]], "idol::osicbc::with_best_bound_stop (c++ function)": [[85, "_CPPv4N4idol6OsiCbc20with_best_bound_stopEd"]], "idol::osicbc::with_best_obj_stop (c++ function)": [[85, "_CPPv4N4idol6OsiCbc18with_best_obj_stopEd"]], "idol::osicbc::with_infeasible_or_unbounded_info (c++ function)": [[85, "_CPPv4N4idol6OsiCbc33with_infeasible_or_unbounded_infoEb"]], "idol::osicbc::with_iteration_limit (c++ function)": [[85, "_CPPv4N4idol6OsiCbc20with_iteration_limitEj"]], "idol::osicbc::with_logs (c++ function)": [[85, "_CPPv4N4idol6OsiCbc9with_logsEb"]], "idol::osicbc::with_presolve (c++ function)": [[85, "_CPPv4N4idol6OsiCbc13with_presolveEb"]], "idol::osicbc::with_relative_gap_tolerance (c++ function)": [[85, "_CPPv4N4idol6OsiCbc27with_relative_gap_toleranceEd"]], "idol::osicbc::with_thread_limit (c++ function)": [[85, "_CPPv4N4idol6OsiCbc17with_thread_limitEj"]], "idol::osicbc::with_time_limit (c++ function)": [[85, "_CPPv4N4idol6OsiCbc15with_time_limitEd"]], "idol::osiclp (c++ class)": [[86, "_CPPv4N4idol6OsiClpE"]], "idol::osiclp::continuousrelaxation (c++ function)": [[86, "_CPPv4N4idol6OsiClp20ContinuousRelaxationERK18OsiSolverInterface"]], "idol::osiclp::as (c++ function)": [[86, "_CPPv4I0EN4idol6OsiClp2asER1Tv"], [86, "_CPPv4I0ENK4idol6OsiClp2asERK1Tv"]], "idol::osiclp::clone (c++ function)": [[86, "_CPPv4NK4idol6OsiClp5cloneEv"]], "idol::osiclp::conditional (c++ function)": [[86, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEE"], [86, "_CPPv4N4idol6OsiClp11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE"]], "idol::osiclp::create_osi_solver_interface (c++ function)": [[86, "_CPPv4NK4idol6OsiClp27create_osi_solver_interfaceEv"]], "idol::osiclp::is (c++ function)": [[86, "_CPPv4I0ENK4idol6OsiClp2isEbv"]], "idol::osiclp::operator() (c++ function)": [[86, "_CPPv4NK4idol6OsiClpclERK5Model"]], "idol::osiclp::with_absolute_gap_tolerance (c++ function)": [[86, "_CPPv4N4idol6OsiClp27with_absolute_gap_toleranceEd"]], "idol::osiclp::with_best_bound_stop (c++ function)": [[86, "_CPPv4N4idol6OsiClp20with_best_bound_stopEd"]], "idol::osiclp::with_best_obj_stop (c++ function)": [[86, "_CPPv4N4idol6OsiClp18with_best_obj_stopEd"]], "idol::osiclp::with_infeasible_or_unbounded_info (c++ function)": [[86, "_CPPv4N4idol6OsiClp33with_infeasible_or_unbounded_infoEb"]], "idol::osiclp::with_iteration_limit (c++ function)": [[86, "_CPPv4N4idol6OsiClp20with_iteration_limitEj"]], "idol::osiclp::with_logs (c++ function)": [[86, "_CPPv4N4idol6OsiClp9with_logsEb"]], "idol::osiclp::with_presolve (c++ function)": [[86, "_CPPv4N4idol6OsiClp13with_presolveEb"]], "idol::osiclp::with_relative_gap_tolerance (c++ function)": [[86, "_CPPv4N4idol6OsiClp27with_relative_gap_toleranceEd"]], "idol::osiclp::with_thread_limit (c++ function)": [[86, "_CPPv4N4idol6OsiClp17with_thread_limitEj"]], "idol::osiclp::with_time_limit (c++ function)": [[86, "_CPPv4N4idol6OsiClp15with_time_limitEd"]], "idol::osicplex (c++ class)": [[87, "_CPPv4N4idol8OsiCplexE"]], "idol::osicplex::continuousrelaxation (c++ function)": [[87, "_CPPv4N4idol8OsiCplex20ContinuousRelaxationERK18OsiSolverInterface"]], "idol::osicplex::as (c++ function)": [[87, "_CPPv4I0EN4idol8OsiCplex2asER1Tv"], [87, "_CPPv4I0ENK4idol8OsiCplex2asERK1Tv"]], "idol::osicplex::clone (c++ function)": [[87, "_CPPv4NK4idol8OsiCplex5cloneEv"]], "idol::osicplex::conditional (c++ function)": [[87, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEE"], [87, "_CPPv4N4idol8OsiCplex11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE"]], "idol::osicplex::create_osi_solver_interface (c++ function)": [[87, "_CPPv4NK4idol8OsiCplex27create_osi_solver_interfaceEv"]], "idol::osicplex::is (c++ function)": [[87, "_CPPv4I0ENK4idol8OsiCplex2isEbv"]], "idol::osicplex::operator() (c++ function)": [[87, "_CPPv4NK4idol8OsiCplexclERK5Model"]], "idol::osicplex::with_absolute_gap_tolerance (c++ function)": [[87, "_CPPv4N4idol8OsiCplex27with_absolute_gap_toleranceEd"]], "idol::osicplex::with_best_bound_stop (c++ function)": [[87, "_CPPv4N4idol8OsiCplex20with_best_bound_stopEd"]], "idol::osicplex::with_best_obj_stop (c++ function)": [[87, "_CPPv4N4idol8OsiCplex18with_best_obj_stopEd"]], "idol::osicplex::with_infeasible_or_unbounded_info (c++ function)": [[87, "_CPPv4N4idol8OsiCplex33with_infeasible_or_unbounded_infoEb"]], "idol::osicplex::with_iteration_limit (c++ function)": [[87, "_CPPv4N4idol8OsiCplex20with_iteration_limitEj"]], "idol::osicplex::with_logs (c++ function)": [[87, "_CPPv4N4idol8OsiCplex9with_logsEb"]], "idol::osicplex::with_presolve (c++ function)": [[87, "_CPPv4N4idol8OsiCplex13with_presolveEb"]], "idol::osicplex::with_relative_gap_tolerance (c++ function)": [[87, "_CPPv4N4idol8OsiCplex27with_relative_gap_toleranceEd"]], "idol::osicplex::with_thread_limit (c++ function)": [[87, "_CPPv4N4idol8OsiCplex17with_thread_limitEj"]], "idol::osicplex::with_time_limit (c++ function)": [[87, "_CPPv4N4idol8OsiCplex15with_time_limitEd"]], "idol::osisymphony (c++ class)": [[88, "_CPPv4N4idol11OsiSymphonyE"]], "idol::osisymphony::continuousrelaxation (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony20ContinuousRelaxationERK18OsiSolverInterface"]], "idol::osisymphony::as (c++ function)": [[88, "_CPPv4I0EN4idol11OsiSymphony2asER1Tv"], [88, "_CPPv4I0ENK4idol11OsiSymphony2asERK1Tv"]], "idol::osisymphony::clone (c++ function)": [[88, "_CPPv4NK4idol11OsiSymphony5cloneEv"]], "idol::osisymphony::conditional (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEE"], [88, "_CPPv4N4idol11OsiSymphony11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE"]], "idol::osisymphony::create_osi_solver_interface (c++ function)": [[88, "_CPPv4NK4idol11OsiSymphony27create_osi_solver_interfaceEv"]], "idol::osisymphony::is (c++ function)": [[88, "_CPPv4I0ENK4idol11OsiSymphony2isEbv"]], "idol::osisymphony::operator() (c++ function)": [[88, "_CPPv4NK4idol11OsiSymphonyclERK5Model"]], "idol::osisymphony::with_absolute_gap_tolerance (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony27with_absolute_gap_toleranceEd"]], "idol::osisymphony::with_best_bound_stop (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony20with_best_bound_stopEd"]], "idol::osisymphony::with_best_obj_stop (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony18with_best_obj_stopEd"]], "idol::osisymphony::with_infeasible_or_unbounded_info (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony33with_infeasible_or_unbounded_infoEb"]], "idol::osisymphony::with_iteration_limit (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony20with_iteration_limitEj"]], "idol::osisymphony::with_logs (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony9with_logsEb"]], "idol::osisymphony::with_presolve (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony13with_presolveEb"]], "idol::osisymphony::with_relative_gap_tolerance (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony27with_relative_gap_toleranceEd"]], "idol::osisymphony::with_thread_limit (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony17with_thread_limitEj"]], "idol::osisymphony::with_time_limit (c++ function)": [[88, "_CPPv4N4idol11OsiSymphony15with_time_limitEd"]], "idol::osi (c++ class)": [[89, "_CPPv4N4idol3OsiE"]], "idol::osi::continuousrelaxation (c++ function)": [[89, "_CPPv4N4idol3Osi20ContinuousRelaxationERK18OsiSolverInterface"]], "idol::osi::osi (c++ function)": [[89, "_CPPv4N4idol3Osi3OsiERK18OsiSolverInterface"], [89, "_CPPv4N4idol3Osi3OsiERK3Osi"], [89, "_CPPv4N4idol3Osi3OsiERR3Osi"]], "idol::osi::as (c++ function)": [[89, "_CPPv4I0EN4idol3Osi2asER1Tv"], [89, "_CPPv4I0ENK4idol3Osi2asERK1Tv"]], "idol::osi::clone (c++ function)": [[89, "_CPPv4NK4idol3Osi5cloneEv"]], "idol::osi::conditional (c++ function)": [[89, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEE"], [89, "_CPPv4N4idol3Osi11conditionalEbRKNSt8functionIFvR3OsiEEERKNSt8functionIFvR3OsiEEE"]], "idol::osi::create_osi_solver_interface (c++ function)": [[89, "_CPPv4NK4idol3Osi27create_osi_solver_interfaceEv"]], "idol::osi::is (c++ function)": [[89, "_CPPv4I0ENK4idol3Osi2isEbv"]], "idol::osi::operator() (c++ function)": [[89, "_CPPv4NK4idol3OsiclERK5Model"]], "idol::osi::operator= (c++ function)": [[89, "_CPPv4N4idol3OsiaSERK3Osi"], [89, "_CPPv4N4idol3OsiaSERR3Osi"]], "idol::osi::with_absolute_gap_tolerance (c++ function)": [[89, "_CPPv4N4idol3Osi27with_absolute_gap_toleranceEd"]], "idol::osi::with_best_bound_stop (c++ function)": [[89, "_CPPv4N4idol3Osi20with_best_bound_stopEd"]], "idol::osi::with_best_obj_stop (c++ function)": [[89, "_CPPv4N4idol3Osi18with_best_obj_stopEd"]], "idol::osi::with_infeasible_or_unbounded_info (c++ function)": [[89, "_CPPv4N4idol3Osi33with_infeasible_or_unbounded_infoEb"]], "idol::osi::with_iteration_limit (c++ function)": [[89, "_CPPv4N4idol3Osi20with_iteration_limitEj"]], "idol::osi::with_logs (c++ function)": [[89, "_CPPv4N4idol3Osi9with_logsEb"]], "idol::osi::with_presolve (c++ function)": [[89, "_CPPv4N4idol3Osi13with_presolveEb"]], "idol::osi::with_relative_gap_tolerance (c++ function)": [[89, "_CPPv4N4idol3Osi27with_relative_gap_toleranceEd"]], "idol::osi::with_thread_limit (c++ function)": [[89, "_CPPv4N4idol3Osi17with_thread_limitEj"]], "idol::osi::with_time_limit (c++ function)": [[89, "_CPPv4N4idol3Osi15with_time_limitEd"]], "idol::callback (c++ class)": [[92, "_CPPv4N4idol8CallbackE"]], "idol::callback::add_lazy_cut (c++ function)": [[92, "_CPPv4N4idol8Callback12add_lazy_cutERK7TempCtr"]], "idol::callback::add_user_cut (c++ function)": [[92, "_CPPv4N4idol8Callback12add_user_cutERK7TempCtr"]], "idol::callback::operator() (c++ function)": [[92, "_CPPv4N4idol8CallbackclE13CallbackEvent"]], "idol::callback::original_model (c++ function)": [[92, "_CPPv4NK4idol8Callback14original_modelEv"]], "idol::callback::primal_solution (c++ function)": [[92, "_CPPv4NK4idol8Callback15primal_solutionEv"]], "idol::callback::submit_heuristic_solution (c++ function)": [[92, "_CPPv4N4idol8Callback25submit_heuristic_solutionERKN8Solution6PrimalE"]], "idol::callback::time (c++ function)": [[92, "_CPPv4NK4idol8Callback4timeEv"]], "idol::callback::~callback (c++ function)": [[92, "_CPPv4N4idol8CallbackD0Ev"]], "idol::callbackfactory (c++ class)": [[93, "_CPPv4N4idol15CallbackFactoryE"]], "idol::callbackfactory::clone (c++ function)": [[93, "_CPPv4NK4idol15CallbackFactory5cloneEv"]], "idol::callbackfactory::operator() (c++ function)": [[93, "_CPPv4N4idol15CallbackFactoryclEv"]], "idol::callbackfactory::~callbackfactory (c++ function)": [[93, "_CPPv4N4idol15CallbackFactoryD0Ev"]], "idol::lazycutcallback (c++ class)": [[94, "_CPPv4N4idol15LazyCutCallbackE"]], "idol::lazycutcallback::lazycutcallback (c++ function)": [[94, "_CPPv4N4idol15LazyCutCallback15LazyCutCallbackERK5Model7TempCtr"]], "idol::lazycutcallback::strategy (c++ class)": [[94, "_CPPv4N4idol15LazyCutCallback8StrategyE"]], "idol::lazycutcallback::strategy::strategy (c++ function)": [[94, "_CPPv4N4idol15LazyCutCallback8Strategy8StrategyEP5Model7TempCtr"]], "idol::lazycutcallback::clone (c++ function)": [[94, "_CPPv4NK4idol15LazyCutCallback5cloneEv"]], "idol::lazycutcallback::operator() (c++ function)": [[94, "_CPPv4N4idol15LazyCutCallbackclEv"]], "idol::lazycutcallback::with_separation_optimizer (c++ function)": [[94, "_CPPv4N4idol15LazyCutCallback25with_separation_optimizerERK16OptimizerFactory"]], "idol::usercutcallback (c++ class)": [[95, "_CPPv4N4idol15UserCutCallbackE"]], "idol::usercutcallback::strategy (c++ class)": [[95, "_CPPv4N4idol15UserCutCallback8StrategyE"]], "idol::usercutcallback::strategy::strategy (c++ function)": [[95, "_CPPv4N4idol15UserCutCallback8Strategy8StrategyEP5Model7TempCtr8LogLevel5Color"]], "idol::usercutcallback::usercutcallback (c++ function)": [[95, "_CPPv4N4idol15UserCutCallback15UserCutCallbackERK5Model7TempCtr"]], "idol::usercutcallback::clone (c++ function)": [[95, "_CPPv4NK4idol15UserCutCallback5cloneEv"]], "idol::usercutcallback::operator() (c++ function)": [[95, "_CPPv4N4idol15UserCutCallbackclEv"]], "idol::usercutcallback::with_separation_optimizer (c++ function)": [[95, "_CPPv4N4idol15UserCutCallback25with_separation_optimizerERK16OptimizerFactory"]], "idol::callbackevent (c++ enum)": [[102, "_CPPv4N4idol13CallbackEventE"]], "idol::callbackevent::incumbentsolution (c++ enumerator)": [[102, "_CPPv4N4idol13CallbackEvent17IncumbentSolutionE"]], "idol::callbackevent::invalidsolution (c++ enumerator)": [[102, "_CPPv4N4idol13CallbackEvent15InvalidSolutionE"]], "idol::callbackevent::nodeloaded (c++ enumerator)": [[102, "_CPPv4N4idol13CallbackEvent10NodeLoadedE"]], "idol::callbackevent::prunedsolution (c++ enumerator)": [[102, "_CPPv4N4idol13CallbackEvent14PrunedSolutionE"]]}}) \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..7c68aaec --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,2 @@ + +https://hlefebvr.github.io/idol/en/.api/index.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/index.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/ColumnAndConstraintGeneration.doxygen.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/index.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Bilevel.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/Dualize.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/separators/index.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/Robust::CCGStabilizers::NoStabilization.doxgen.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/index.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/Robust::CCGStabilizers::TrustRegion.doxgen.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/column-and-constraint-generation/stabilization/trust-region/index.htmlhttps://hlefebvr.github.io/idol/en/.api/optimizers/robust-optimization/index.htmlhttps://hlefebvr.github.io/idol/en/.api/problems/ProblemsFLP.htmlhttps://hlefebvr.github.io/idol/en/.api/problems/ProblemsGAP.htmlhttps://hlefebvr.github.io/idol/en/.api/problems/ProblemsKP.htmlhttps://hlefebvr.github.io/idol/en/.api/problems/ProblemsMKP.htmlhttps://hlefebvr.github.io/idol/en/.api/problems/ProblemsSRP.htmlhttps://hlefebvr.github.io/idol/en/.api/problems/index.htmlhttps://hlefebvr.github.io/idol/en/.api/tolerances.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/BranchAndBound.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/BranchAndBoundCallback.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/BranchAndBoundCallbackFactory.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/cuts/KnapsackCover.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/cuts/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/heuristics/LocalBranching.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/heuristics/RENS.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/heuristics/SimpleRounding.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/heuristics/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/node-selection/BestBound.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/node-selection/BestEstimate.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/node-selection/BreadthFirst.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/node-selection/DepthFirst.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/node-selection/WorstBound.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/node-selection/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/FirstInfeasibleFound.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/LeastInfeasible.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/LocalBranching.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/MostInfeasible.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/PseudoCost.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/StrongBranching.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/UniformlyRandom.htmlhttps://hlefebvr.github.io/idol/en/api/classes/branch-and-bound/variable-selection/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-and-constraint-generation/ColumnAndConstraintGeneration.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-and-constraint-generation/Optimizers_ColumnAndConstraintGeneration.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-and-constraint-generation/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/ArtificialCosts.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/DantzigWolfeDecomposition.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/FarkasPricing.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/IntegerMaster.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/Optimizers_DantzigWolfeDecomposition.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/stabilization/Neame.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/stabilization/Wentges.htmlhttps://hlefebvr.github.io/idol/en/api/classes/column-generation/stabilization/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Annotation.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Column.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Constant.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Ctr.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/CtrType.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Env.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Expr.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/LinExpr.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Model.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Param.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/QuadExpr.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Row.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/SolutionDual.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/SolutionPrimal.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/TempCtr.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/TempVar.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/Var.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/VarType.htmlhttps://hlefebvr.github.io/idol/en/api/classes/common/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-bilevel/MibS.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-bilevel/Optimizers_MibS.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-bilevel/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/GLPK.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Gurobi.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/HiGHS.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Mosek.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Optimizers_GLPK.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Optimizers_Gurobi.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Optimizers_HiGHS.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Optimizers_Mosek.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Osi/OsiCbc.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Osi/OsiClp.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Osi/OsiCplex.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Osi/OsiSymphony.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/Osi/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/external-mip/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/index.htmlhttps://hlefebvr.github.io/idol/en/api/classes/universal-callbacks/Callback.htmlhttps://hlefebvr.github.io/idol/en/api/classes/universal-callbacks/CallbackFactory.htmlhttps://hlefebvr.github.io/idol/en/api/classes/universal-callbacks/LazyCutCallback.htmlhttps://hlefebvr.github.io/idol/en/api/classes/universal-callbacks/UserCutCallback.htmlhttps://hlefebvr.github.io/idol/en/api/classes/universal-callbacks/index.htmlhttps://hlefebvr.github.io/idol/en/api/constants/index.htmlhttps://hlefebvr.github.io/idol/en/api/constants/tolerances.htmlhttps://hlefebvr.github.io/idol/en/api/index.htmlhttps://hlefebvr.github.io/idol/en/api/types/common/VarType.htmlhttps://hlefebvr.github.io/idol/en/api/types/index.htmlhttps://hlefebvr.github.io/idol/en/api/types/universal-callbacks/CallbackEvent.htmlhttps://hlefebvr.github.io/idol/en/api/types/universal-callbacks/index.htmlhttps://hlefebvr.github.io/idol/en/developer_guide/build-the-doc.htmlhttps://hlefebvr.github.io/idol/en/developer_guide/index.htmlhttps://hlefebvr.github.io/idol/en/developer_guide/tests.htmlhttps://hlefebvr.github.io/idol/en/examples/bilevel-problem.htmlhttps://hlefebvr.github.io/idol/en/examples/facility-location-problem.htmlhttps://hlefebvr.github.io/idol/en/examples/generalized-assignment-problem.htmlhttps://hlefebvr.github.io/idol/en/examples/index.htmlhttps://hlefebvr.github.io/idol/en/examples/knapsack-problem.htmlhttps://hlefebvr.github.io/idol/en/index.htmlhttps://hlefebvr.github.io/idol/en/installation/global_installation.htmlhttps://hlefebvr.github.io/idol/en/installation/index.htmlhttps://hlefebvr.github.io/idol/en/installation/linking.htmlhttps://hlefebvr.github.io/idol/en/installation/local_installation.htmlhttps://hlefebvr.github.io/idol/en/installation/mosek-and-socp.htmlhttps://hlefebvr.github.io/idol/en/installation/options.htmlhttps://hlefebvr.github.io/idol/en/references.htmlhttps://hlefebvr.github.io/idol/en/tutorials/basics/benders.htmlhttps://hlefebvr.github.io/idol/en/tutorials/basics/importing_a_model.htmlhttps://hlefebvr.github.io/idol/en/tutorials/basics/index.htmlhttps://hlefebvr.github.io/idol/en/tutorials/basics/modeling_optimization_problems.htmlhttps://hlefebvr.github.io/idol/en/tutorials/basics/using_an_external_solver.htmlhttps://hlefebvr.github.io/idol/en/tutorials/bilevel-optimization/index.htmlhttps://hlefebvr.github.io/idol/en/tutorials/branch-and-bound/basic.htmlhttps://hlefebvr.github.io/idol/en/tutorials/branch-and-bound/index.htmlhttps://hlefebvr.github.io/idol/en/tutorials/branch-and-bound/priorities.htmlhttps://hlefebvr.github.io/idol/en/tutorials/dantzig-wolfe/dantzig_wolfe.htmlhttps://hlefebvr.github.io/idol/en/tutorials/dantzig-wolfe/heuristic.htmlhttps://hlefebvr.github.io/idol/en/tutorials/dantzig-wolfe/index.htmlhttps://hlefebvr.github.io/idol/en/tutorials/dantzig-wolfe/stabilization.htmlhttps://hlefebvr.github.io/idol/en/tutorials/dantzig-wolfe/strong-branching.htmlhttps://hlefebvr.github.io/idol/en/tutorials/index.htmlhttps://hlefebvr.github.io/idol/en/tutorials/mixed-integer-programming/index.htmlhttps://hlefebvr.github.io/idol/en/tutorials/robust-optimization/index.htmlhttps://hlefebvr.github.io/idol/en/genindex.htmlhttps://hlefebvr.github.io/idol/en/search.html \ No newline at end of file diff --git a/tutorials/basics/benders.html b/tutorials/basics/benders.html new file mode 100644 index 00000000..89e2df00 --- /dev/null +++ b/tutorials/basics/benders.html @@ -0,0 +1,266 @@ + + + + + + + Lazy Cuts and Benders Decomposition — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/basics/importing_a_model.html b/tutorials/basics/importing_a_model.html new file mode 100644 index 00000000..6cccf2e3 --- /dev/null +++ b/tutorials/basics/importing_a_model.html @@ -0,0 +1,184 @@ + + + + + + + Importing A Model — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/basics/index.html b/tutorials/basics/index.html new file mode 100644 index 00000000..8b5eaadf --- /dev/null +++ b/tutorials/basics/index.html @@ -0,0 +1,148 @@ + + + + + + + Basics — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tutorials/basics/modeling_optimization_problems.html b/tutorials/basics/modeling_optimization_problems.html new file mode 100644 index 00000000..001976c4 --- /dev/null +++ b/tutorials/basics/modeling_optimization_problems.html @@ -0,0 +1,339 @@ + + + + + + + Modeling Optimization Problems — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/basics/using_an_external_solver.html b/tutorials/basics/using_an_external_solver.html new file mode 100644 index 00000000..943a50f3 --- /dev/null +++ b/tutorials/basics/using_an_external_solver.html @@ -0,0 +1,335 @@ + + + + + + + Using An External Solver — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/bilevel-optimization/index.html b/tutorials/bilevel-optimization/index.html new file mode 100644 index 00000000..6e5fdf75 --- /dev/null +++ b/tutorials/bilevel-optimization/index.html @@ -0,0 +1,138 @@ + + + + + + + Bilevel Optimization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/branch-and-bound/basic.html b/tutorials/branch-and-bound/basic.html new file mode 100644 index 00000000..bb60fc08 --- /dev/null +++ b/tutorials/branch-and-bound/basic.html @@ -0,0 +1,143 @@ + + + + + + + Branch-and-Bound 101 (to come) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/branch-and-bound/index.html b/tutorials/branch-and-bound/index.html new file mode 100644 index 00000000..80357d03 --- /dev/null +++ b/tutorials/branch-and-bound/index.html @@ -0,0 +1,144 @@ + + + + + + + Branch-and-Bound — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/branch-and-bound/priorities.html b/tutorials/branch-and-bound/priorities.html new file mode 100644 index 00000000..aaf901d4 --- /dev/null +++ b/tutorials/branch-and-bound/priorities.html @@ -0,0 +1,143 @@ + + + + + + + Branching with Priorities (to come) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/dantzig-wolfe/dantzig_wolfe.html b/tutorials/dantzig-wolfe/dantzig_wolfe.html new file mode 100644 index 00000000..bf34ca48 --- /dev/null +++ b/tutorials/dantzig-wolfe/dantzig_wolfe.html @@ -0,0 +1,386 @@ + + + + + + + Branch-and-Price 101 — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/dantzig-wolfe/heuristic.html b/tutorials/dantzig-wolfe/heuristic.html new file mode 100644 index 00000000..35875562 --- /dev/null +++ b/tutorials/dantzig-wolfe/heuristic.html @@ -0,0 +1,148 @@ + + + + + + + Heuristic Pricing (to come) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/dantzig-wolfe/index.html b/tutorials/dantzig-wolfe/index.html new file mode 100644 index 00000000..faa90259 --- /dev/null +++ b/tutorials/dantzig-wolfe/index.html @@ -0,0 +1,148 @@ + + + + + + + Branch-and-Price — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/dantzig-wolfe/stabilization.html b/tutorials/dantzig-wolfe/stabilization.html new file mode 100644 index 00000000..e2323ba2 --- /dev/null +++ b/tutorials/dantzig-wolfe/stabilization.html @@ -0,0 +1,148 @@ + + + + + + + In-Out Stabilization (to come) — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/dantzig-wolfe/strong-branching.html b/tutorials/dantzig-wolfe/strong-branching.html new file mode 100644 index 00000000..aeb9d0d8 --- /dev/null +++ b/tutorials/dantzig-wolfe/strong-branching.html @@ -0,0 +1,293 @@ + + + + + + + Strong Branching — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/index.html b/tutorials/index.html new file mode 100644 index 00000000..e2259bb1 --- /dev/null +++ b/tutorials/index.html @@ -0,0 +1,165 @@ + + + + + + + Tutorials — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tutorials/mixed-integer-programming/index.html b/tutorials/mixed-integer-programming/index.html new file mode 100644 index 00000000..ec84376c --- /dev/null +++ b/tutorials/mixed-integer-programming/index.html @@ -0,0 +1,138 @@ + + + + + + + Mixed-Integer Programming — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/tutorials/robust-optimization/index.html b/tutorials/robust-optimization/index.html new file mode 100644 index 00000000..6ed01fa2 --- /dev/null +++ b/tutorials/robust-optimization/index.html @@ -0,0 +1,138 @@ + + + + + + + Robust Optimization — idol + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+ + + + \ No newline at end of file