Skip to content

Commit ff4dc17

Browse files
docs: auto-discover Python API modules and drive C API from YAML config
Python API: replace hardcoded file paths with PAGE_SOURCES config — each entry lists directories to scan non-recursively. New .py files added to a configured directory appear in the docs automatically without editing the script. C API: replace RST parser with fern/c_api_config.yaml for section organization. Doxygen XML is still the symbol source; the YAML controls section groupings and prose. Symbols not in the config auto-appear in an "Uncategorized" section on the designated catchall page so new header additions are never silently dropped. Added previously uncategorized symbols (hyper diving/heuristic params, scaling constants, presolve constants, deprecated quad create functions). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 6ea938b commit ff4dc17

8 files changed

Lines changed: 1369 additions & 652 deletions

File tree

fern/c_api_config.yaml

Lines changed: 424 additions & 0 deletions
Large diffs are not rendered by default.

fern/docs/pages/cuopt-c/convex/convex-c-api.mdx

Lines changed: 96 additions & 33 deletions
Large diffs are not rendered by default.

fern/docs/pages/cuopt-c/mip/mip-c-api.mdx

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
title: "cuOpt MIP C API Reference"
33
---
44

5-
This section contains the cuOpt MIP C API reference. Functions for problem creation, solver settings, solving, and inspecting solutions are shared with convex optimization and documented in [Convex C Api](convex-c-api).
5+
This section contains the cuOpt MIP C API reference. Functions for problem creation, solver settings, solving, and inspecting solutions are shared with convex optimization and documented in [Convex C API](../convex/convex-c-api).
66

77
## Warm Start and MIP Start
88

9-
For LP problems solved with PDLP, see [Convex C Api](convex-c-api) for primal and dual warm start.
10-
11-
For MIP problems, one or more primal solution hints (MIP starts) may be provided:
9+
For LP problems solved with PDLP, see [Convex C API](../convex/convex-c-api) for primal and dual warm start. For MIP problems, one or more primal solution hints (MIP starts) may be provided.
1210

1311
<hr />
1412

@@ -100,7 +98,7 @@ Registering a set-solution callback disables presolve. The callback arguments re
10098

10199
## MIP Parameter Constants
102100

103-
These constants configure MIP-specific solver behavior. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`. For shared parameters (time limit, logging, presolve, etc.), see parameter-constants in the convex API reference.
101+
These constants configure MIP-specific solver behavior. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`. For shared parameters (time limit, logging, presolve, etc.), see [Parameter Constants](../convex/convex-c-api#parameter-constants) in the convex API reference.
104102

105103
- `CUOPT_NODE_LIMIT` (`"node_limit"`)
106104
- `CUOPT_WORK_LIMIT` (`"work_limit"`)
@@ -136,9 +134,55 @@ These constants configure MIP-specific solver behavior. Use them with `cuOptSetP
136134
- `CUOPT_MIP_STRONG_BRANCHING_SIMPLEX_ITERATION_LIMIT` (`"mip_strong_branching_simplex_iteration_limit"`)
137135
- `CUOPT_MIP_SEMICONTINUOUS_BIG_M` (`"mip_semi_continuous_big_m"`)
138136

137+
## MIP Scaling Constants
138+
139+
These constants are used to configure `CUOPT_MIP_SCALING` via `cuOptSetIntegerParameter`.
140+
141+
- `CUOPT_MIP_SCALING_OFF` (`0`)
142+
- `CUOPT_MIP_SCALING_ON` (`1`)
143+
- `CUOPT_MIP_SCALING_NO_OBJECTIVE` (`2`)
144+
139145
## MIP Determinism Mode Constants
140146

141147
These constants are used to configure `CUOPT_MIP_DETERMINISM_MODE` via `cuOptSetIntegerParameter`.
142148

143149
- `CUOPT_MODE_OPPORTUNISTIC` (`0`)
144150
- `CUOPT_MODE_DETERMINISTIC` (`1`)
151+
152+
## MIP Hyper Diving Parameters
153+
154+
These constants configure the hyper diving heuristic. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`.
155+
156+
- `CUOPT_MIP_HYPER_DIVING_BACKTRACK_LIMIT` (`"mip_hyper_diving_backtrack_limit"`)
157+
- `CUOPT_MIP_HYPER_DIVING_COEFFICIENT` (`"mip_hyper_diving_coefficient"`)
158+
- `CUOPT_MIP_HYPER_DIVING_FARKAS` (`"mip_hyper_diving_farkas"`)
159+
- `CUOPT_MIP_HYPER_DIVING_GUIDED` (`"mip_hyper_diving_guided"`)
160+
- `CUOPT_MIP_HYPER_DIVING_ITERATION_LIMIT_FACTOR` (`"mip_hyper_diving_iteration_limit_factor"`)
161+
- `CUOPT_MIP_HYPER_DIVING_LINE_SEARCH` (`"mip_hyper_diving_line_search"`)
162+
- `CUOPT_MIP_HYPER_DIVING_MIN_NODE_DEPTH` (`"mip_hyper_diving_min_node_depth"`)
163+
- `CUOPT_MIP_HYPER_DIVING_NODE_LIMIT` (`"mip_hyper_diving_node_limit"`)
164+
- `CUOPT_MIP_HYPER_DIVING_PSEUDOCOST` (`"mip_hyper_diving_pseudocost"`)
165+
- `CUOPT_MIP_HYPER_DIVING_SHOW_TYPE` (`"mip_hyper_diving_show_type"`)
166+
- `CUOPT_MIP_HYPER_DIVING_VECTOR_LENGTH` (`"mip_hyper_diving_vector_length"`)
167+
168+
## MIP Hyper Heuristic Parameters
169+
170+
These constants configure the hyper heuristic solver. Use them with `cuOptSetParameter`, `cuOptSetIntegerParameter`, or `cuOptSetFloatParameter`.
171+
172+
- `CUOPT_MIP_HYPER_HEURISTIC_CYCLE_DETECTION_LENGTH` (`"mip_hyper_heuristic_cycle_detection_length"`)
173+
- `CUOPT_MIP_HYPER_HEURISTIC_ENABLED_RECOMBINERS` (`"mip_hyper_heuristic_enabled_recombiners"`)
174+
- `CUOPT_MIP_HYPER_HEURISTIC_INITIAL_INFEASIBILITY_WEIGHT` (`"mip_hyper_heuristic_initial_infeasibility_weight"`)
175+
- `CUOPT_MIP_HYPER_HEURISTIC_MAX_ITERS_WITHOUT_IMPROVEMENT` (`"mip_hyper_heuristic_max_iterations_without_improvement"`)
176+
- `CUOPT_MIP_HYPER_HEURISTIC_NUM_CPUFJ_THREADS` (`"mip_hyper_heuristic_num_cpufj_threads"`)
177+
- `CUOPT_MIP_HYPER_HEURISTIC_N_OF_MINIMUMS_FOR_EXIT` (`"mip_hyper_heuristic_n_of_minimums_for_exit"`)
178+
- `CUOPT_MIP_HYPER_HEURISTIC_POPULATION_SIZE` (`"mip_hyper_heuristic_population_size"`)
179+
- `CUOPT_MIP_HYPER_HEURISTIC_PRESOLVE_MAX_TIME` (`"mip_hyper_heuristic_presolve_max_time"`)
180+
- `CUOPT_MIP_HYPER_HEURISTIC_PRESOLVE_TIME_RATIO` (`"mip_hyper_heuristic_presolve_time_ratio"`)
181+
- `CUOPT_MIP_HYPER_HEURISTIC_RELATED_VARS_TIME_LIMIT` (`"mip_hyper_heuristic_related_vars_time_limit"`)
182+
- `CUOPT_MIP_HYPER_HEURISTIC_RELAXED_LP_TIME_LIMIT` (`"mip_hyper_heuristic_relaxed_lp_time_limit"`)
183+
- `CUOPT_MIP_HYPER_HEURISTIC_RINS_FIX_RATE` (`"mip_hyper_heuristic_rins_fix_rate"`)
184+
- `CUOPT_MIP_HYPER_HEURISTIC_RINS_MAX_TIME_LIMIT` (`"mip_hyper_heuristic_rins_max_time_limit"`)
185+
- `CUOPT_MIP_HYPER_HEURISTIC_RINS_TIME_LIMIT` (`"mip_hyper_heuristic_rins_time_limit"`)
186+
- `CUOPT_MIP_HYPER_HEURISTIC_ROOT_LP_MAX_TIME` (`"mip_hyper_heuristic_root_lp_max_time"`)
187+
- `CUOPT_MIP_HYPER_HEURISTIC_ROOT_LP_TIME_RATIO` (`"mip_hyper_heuristic_root_lp_time_ratio"`)
188+
- `CUOPT_MIP_HYPER_HEURISTIC_STAGNATION_TRIGGER` (`"mip_hyper_heuristic_stagnation_trigger"`)

fern/docs/pages/cuopt-python/convex/convex-api.mdx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@ title: "Convex Optimization Python API Reference"
33
---
44

55

6-
## Problem & Variables
6+
## Problem
7+
8+
<hr />
9+
10+
### class `VType`
11+
12+
The type of a variable is continuous, integer, or semi-continuous. Variable Types can be directly used as a constant. CONTINUOUS is VType.CONTINUOUS INTEGER is VType.INTEGER SEMI_CONTINUOUS is VType.SEMI_CONTINUOUS
13+
714

815
<hr />
916

@@ -844,15 +851,7 @@ Optimizes the LP or MIP problem with the added variables, constraints and object
844851

845852

846853

847-
## Solver Settings
848-
849-
LP/MIP solver settings package; implementation is in the ``solver_settings`` extension.
850-
851-
Public ``solver_params`` is an immutable tuple so callers cannot mutate the extension module's internal parameter-name list used for validation.
852-
853-
854-
855-
## I/O
854+
## Parser
856855

857856
<hr />
858857

fern/docs/pages/cuopt-python/mip/mip-api.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
title: "MIP Python API Reference"
33
---
44

5-
<Note>MIP Python API shares classes with the LP API. See [Convex Optimization API](convex-api).</Note>
5+
<Note>No public API symbols found in the configured source directories.</Note>

0 commit comments

Comments
 (0)