·
Last changedVersion:
This version passed the hardening gate. Hardening applied 2 targeted changes and preserved all other text. Classified findings before hardening: 1. Classified findings closed: 1. Classified findings remaining: 0. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 10.
1
None
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Closed |
1 finding
Solve LP, MILP, and QP problems via the cuOpt C API. The same library, headers, build pattern, and core calls (cuOptCreate*Problem, cuOptSolve, cuOptGetObjectiveValue) apply across all three; QP extends the API with quadratic-objective creation calls.
Confirm problem type and formulation (variables, objective, constraints, variable types) before coding.
This skill is C only.
For LP/MILP, the ordered C entry points are: cuOptCreateRangedProblem (sense CUOPT_MINIMIZE / CUOPT_MAXIMIZE, CSR constraint matrix as row_offsets / col_indices / values, var_types char array using CUOPT_CONTINUOUS / CUOPT_INTEGER macros) → cuOptSolve(problem, settings, &solution) → cuOptGetObjectiveValue(solution, &obj_value) → matching cuOptDestroy* calls. Include <cuopt/mathematical_optimization/cuopt_c.h>. Full ordered code with build instructions in references/examples.md.
QP uses the same library, include/lib paths, and build pattern as LP/MILP — only the problem-creation call differs (it accepts a quadratic objective). See the cuOpt C headers (cpp/include/cuopt/mathematical_optimization/) for the QP-specific creation/solve calls and the repo docs at docs/cuopt/source/cuopt-c/lp-qp-milp/ for end-to-end QP examples.
QP rules:
CUOPT_MINIMIZE). To maximize f(x), negate objective coefficients and Q entries.CUOPT_CONTINUOUS for every variable; integer QP is not supported.cuOptGetDualSolution and cuOptGetReducedCosts return duals and reduced costs for LP and QP. They are not returned for a problem with quadratic constraints (the arrays are filled with NaN), so read them only when all constraints are linear. See assets/lp_duals for the call sequence.
MPS parsing: Required sections in order: NAME, ROWS, COLUMNS, RHS, (optional) BOUNDS, ENDATA. Integer markers: 'MARKER', 'INTORG', 'INTEND'.
OOM or slow: Check problem size (variables, constraints); use sparse matrix; set time limit and gap tolerance.
cuOptReadProblemFor CLI (MPS files), use cuopt_cli and product docs.
For contribution or build-from-source, use product or repo documentation.
Get started with chainctlchainctl skill install public/nvidia/cuopt-numerical-optimization-api-c:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/nvidia/skills/cuopt-numerical-optimization-api-c:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
LICENSE
SKILL.md
assets/README.md
assets/lp_basic/README.md
assets/lp_basic/lp_simple.c
assets/lp_duals/README.md
assets/lp_duals/lp_duals.c
assets/lp_warmstart/README.md
assets/milp_basic/README.md
assets/milp_basic/milp_simple.c
assets/milp_production_planning/README.md
assets/milp_production_planning/milp_production.c
assets/mps_solver/README.md
assets/mps_solver/data/sample.mps
assets/mps_solver/mps_solver.c
evals/evals.json
references/examples.md
skill-card.md
skill.oms.sig