gitextract_81kqktr_/ ├── .clang-format ├── .github/ │ ├── actions/ │ │ ├── setup_optimizers_linux/ │ │ │ └── action.yml │ │ ├── setup_optimizers_macos/ │ │ │ └── action.yml │ │ └── setup_optimizers_windows/ │ │ └── action.yml │ ├── dependabot.yml │ └── workflows/ │ ├── doc-build.yml │ ├── linux-build.yml │ ├── macos-build.yml │ ├── wheel.yml │ └── windows-build.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CMakeLists.txt ├── GEMINI.md ├── LICENSE.md ├── README.md ├── bench/ │ ├── bench_linopy_cvxpy.py │ ├── bench_modify.jl │ ├── bench_modify.mod │ ├── bench_modify.py │ ├── bench_modify.run │ ├── bench_static.jl │ ├── bench_static.py │ ├── nqueens/ │ │ ├── .gitignore │ │ ├── nqueens.jl │ │ ├── nqueens_gurobipy.py │ │ ├── nqueens_poi.py │ │ └── nqueens_pythonmip.py │ └── test_delete.py ├── docs/ │ ├── Makefile │ ├── make.bat │ ├── requirements.txt │ └── source/ │ ├── api/ │ │ ├── pyoptinterface.copt.rst │ │ ├── pyoptinterface.gurobi.rst │ │ ├── pyoptinterface.highs.rst │ │ ├── pyoptinterface.knitro.rst │ │ ├── pyoptinterface.mosek.rst │ │ ├── pyoptinterface.rst │ │ └── pyoptinterface.xpress.rst │ ├── attribute/ │ │ ├── copt.md │ │ ├── gurobi.md │ │ ├── highs.md │ │ ├── ipopt.md │ │ ├── knitro.md │ │ ├── mosek.md │ │ └── xpress.md │ ├── benchmark.md │ ├── callback.md │ ├── changelog.md │ ├── common_model_interface.md │ ├── conf.py │ ├── constraint.md │ ├── container.md │ ├── copt.md │ ├── develop.md │ ├── examples/ │ │ ├── economic_dispatch.md │ │ ├── optimal_control_rocket.md │ │ └── optimal_power_flow.md │ ├── expression.md │ ├── faq.md │ ├── getting_started.md │ ├── gurobi.md │ ├── highs.md │ ├── index.md │ ├── infeasibility.md │ ├── ipopt.md │ ├── knitro.md │ ├── model.md │ ├── mosek.md │ ├── nonlinear.md │ ├── numpy.md │ ├── objective.md │ ├── roadmap.md │ ├── structure.md │ ├── variable.md │ └── xpress.md ├── include/ │ └── pyoptinterface/ │ ├── cache_model.hpp │ ├── container.hpp │ ├── copt_model.hpp │ ├── core.hpp │ ├── cppad_interface.hpp │ ├── dylib.hpp │ ├── gurobi_model.hpp │ ├── highs_model.hpp │ ├── ipopt_model.hpp │ ├── knitro_model.hpp │ ├── mosek_model.hpp │ ├── nleval.hpp │ ├── nlexpr.hpp │ ├── solver_common.hpp │ ├── tcc_interface.hpp │ └── xpress_model.hpp ├── lib/ │ ├── cache_model.cpp │ ├── copt_model.cpp │ ├── copt_model_ext.cpp │ ├── copt_model_ext_constants.cpp │ ├── core.cpp │ ├── core_ext.cpp │ ├── cppad_interface.cpp │ ├── cppad_interface_ext.cpp │ ├── gurobi_model.cpp │ ├── gurobi_model_ext.cpp │ ├── gurobi_model_ext_constants.cpp │ ├── highs_model.cpp │ ├── highs_model_ext.cpp │ ├── highs_model_ext_constants.cpp │ ├── ipopt_model.cpp │ ├── ipopt_model_ext.cpp │ ├── knitro_model.cpp │ ├── knitro_model_ext.cpp │ ├── knitro_model_ext_constants.cpp │ ├── main.cpp │ ├── mosek_model.cpp │ ├── mosek_model_ext.cpp │ ├── mosek_model_ext_constants.cpp │ ├── nleval.cpp │ ├── nleval_ext.cpp │ ├── nlexpr.cpp │ ├── nlexpr_ext.cpp │ ├── tcc_interface.cpp │ ├── tcc_interface_ext.cpp │ ├── xpress_model.cpp │ ├── xpress_model_ext.cpp │ └── xpress_model_ext_constants.cpp ├── optimizer_version.toml ├── pyproject.toml ├── scripts/ │ ├── generate_attribute_table.py │ └── generate_solver_constants.py ├── skills/ │ └── pyoptinterface-expert/ │ ├── SKILL.md │ └── references/ │ ├── api.md │ └── examples.md ├── src/ │ └── pyoptinterface/ │ ├── __init__.py │ ├── _src/ │ │ ├── __init__.py │ │ ├── aml.py │ │ ├── attributes.py │ │ ├── codegen_c.py │ │ ├── codegen_llvm.py │ │ ├── comparison_constraint.py │ │ ├── constraint_bridge.py │ │ ├── copt.py │ │ ├── cpp_graph_iter.py │ │ ├── dylib.py │ │ ├── gurobi.py │ │ ├── highs.py │ │ ├── ipopt.py │ │ ├── jit_c.py │ │ ├── jit_llvm.py │ │ ├── knitro.py │ │ ├── matrix.py │ │ ├── monkeypatch.py │ │ ├── mosek.py │ │ ├── nlfunc.py │ │ ├── solver_common.py │ │ ├── tupledict.py │ │ └── xpress.py │ ├── copt.py │ ├── gurobi.py │ ├── highs.py │ ├── ipopt.py │ ├── knitro.py │ ├── mosek.py │ ├── nl.py │ └── xpress.py ├── tests/ │ ├── conftest.py │ ├── simple_cb.py │ ├── test_basic.py │ ├── test_close.py │ ├── test_compare_constraint.py │ ├── test_exp_cone.py │ ├── test_iis.py │ ├── test_in_constraint.py │ ├── test_ipopt.py │ ├── test_knitro.py │ ├── test_lukvle10.py │ ├── test_matrix_api.py │ ├── test_nlp.py │ ├── test_nlp_bilinear.py │ ├── test_nlp_clnlbeam.py │ ├── test_nlp_expression.py │ ├── test_nlp_hs071.py │ ├── test_nlp_multiple_run.py │ ├── test_nlp_opf.py │ ├── test_nlp_rocket.py │ ├── test_operator.py │ ├── test_preopt.py │ ├── test_qp.py │ ├── test_reducedcost.py │ ├── test_simple_opt.py │ ├── test_soc.py │ ├── test_sos.py │ ├── test_tupledict.py │ ├── test_update.py │ ├── tsp_cb.py │ └── tsp_xpress.py └── thirdparty/ ├── ankerl/ │ ├── stl.h │ └── unordered_dense.h ├── cppad/ │ ├── CMakeLists.txt │ ├── include/ │ │ └── cppad/ │ │ ├── base_require.hpp │ │ ├── configure.hpp │ │ ├── core/ │ │ │ ├── abort_recording.hpp │ │ │ ├── abs.hpp │ │ │ ├── abs_normal_fun.hpp │ │ │ ├── ad.hpp │ │ │ ├── ad_assign.hpp │ │ │ ├── ad_binary.hpp │ │ │ ├── ad_ctor.hpp │ │ │ ├── ad_fun.hpp │ │ │ ├── ad_io.hpp │ │ │ ├── ad_to_string.hpp │ │ │ ├── ad_type.hpp │ │ │ ├── ad_valued.hpp │ │ │ ├── add.hpp │ │ │ ├── add_eq.hpp │ │ │ ├── arithmetic.hpp │ │ │ ├── atan2.hpp │ │ │ ├── atomic/ │ │ │ │ ├── four/ │ │ │ │ │ ├── atomic.hpp │ │ │ │ │ ├── call.hpp │ │ │ │ │ ├── ctor.hpp │ │ │ │ │ ├── devel/ │ │ │ │ │ │ ├── hes_sparsity.hpp │ │ │ │ │ │ └── jac_sparsity.hpp │ │ │ │ │ ├── for_type.hpp │ │ │ │ │ ├── forward.hpp │ │ │ │ │ ├── hes_sparsity.hpp │ │ │ │ │ ├── jac_sparsity.hpp │ │ │ │ │ ├── rev_depend.hpp │ │ │ │ │ └── reverse.hpp │ │ │ │ ├── one/ │ │ │ │ │ └── atomic.hpp │ │ │ │ ├── three/ │ │ │ │ │ ├── afun.hpp │ │ │ │ │ ├── atomic.hpp │ │ │ │ │ ├── ctor.hpp │ │ │ │ │ ├── for_type.hpp │ │ │ │ │ ├── forward.hpp │ │ │ │ │ ├── hes_sparsity.hpp │ │ │ │ │ ├── jac_sparsity.hpp │ │ │ │ │ ├── rev_depend.hpp │ │ │ │ │ └── reverse.hpp │ │ │ │ └── two/ │ │ │ │ ├── afun.hpp │ │ │ │ ├── atomic.hpp │ │ │ │ ├── clear.hpp │ │ │ │ ├── ctor.hpp │ │ │ │ ├── for_sparse_hes.hpp │ │ │ │ ├── for_sparse_jac.hpp │ │ │ │ ├── forward.hpp │ │ │ │ ├── option.hpp │ │ │ │ ├── rev_depend.hpp │ │ │ │ ├── rev_sparse_hes.hpp │ │ │ │ ├── rev_sparse_jac.hpp │ │ │ │ └── reverse.hpp │ │ │ ├── azmul.hpp │ │ │ ├── base2ad.hpp │ │ │ ├── base_complex.hpp │ │ │ ├── base_cond_exp.hpp │ │ │ ├── base_double.hpp │ │ │ ├── base_float.hpp │ │ │ ├── base_hash.hpp │ │ │ ├── base_limits.hpp │ │ │ ├── base_std_math.hpp │ │ │ ├── base_to_string.hpp │ │ │ ├── bender_quad.hpp │ │ │ ├── bool_fun.hpp │ │ │ ├── bool_valued.hpp │ │ │ ├── capacity_order.hpp │ │ │ ├── check_for_nan.hpp │ │ │ ├── chkpoint_one/ │ │ │ │ ├── chkpoint_one.hpp │ │ │ │ ├── ctor.hpp │ │ │ │ ├── for_sparse_jac.hpp │ │ │ │ ├── forward.hpp │ │ │ │ ├── rev_sparse_hes.hpp │ │ │ │ ├── rev_sparse_jac.hpp │ │ │ │ ├── reverse.hpp │ │ │ │ ├── set_hes_sparse_bool.hpp │ │ │ │ ├── set_hes_sparse_set.hpp │ │ │ │ ├── set_jac_sparse_bool.hpp │ │ │ │ └── set_jac_sparse_set.hpp │ │ │ ├── chkpoint_two/ │ │ │ │ ├── chkpoint_two.hpp │ │ │ │ ├── ctor.hpp │ │ │ │ ├── dynamic.hpp │ │ │ │ ├── for_type.hpp │ │ │ │ ├── forward.hpp │ │ │ │ ├── hes_sparsity.hpp │ │ │ │ ├── jac_sparsity.hpp │ │ │ │ ├── rev_depend.hpp │ │ │ │ └── reverse.hpp │ │ │ ├── compare.hpp │ │ │ ├── compound_assign.hpp │ │ │ ├── con_dyn_var.hpp │ │ │ ├── cond_exp.hpp │ │ │ ├── convert.hpp │ │ │ ├── cppad_assert.hpp │ │ │ ├── dependent.hpp │ │ │ ├── discrete/ │ │ │ │ └── discrete.hpp │ │ │ ├── div.hpp │ │ │ ├── div_eq.hpp │ │ │ ├── drivers.hpp │ │ │ ├── epsilon.hpp │ │ │ ├── equal_op_seq.hpp │ │ │ ├── for_hes_sparsity.hpp │ │ │ ├── for_jac_sparsity.hpp │ │ │ ├── for_one.hpp │ │ │ ├── for_sparse_hes.hpp │ │ │ ├── for_sparse_jac.hpp │ │ │ ├── for_two.hpp │ │ │ ├── forward/ │ │ │ │ └── forward.hpp │ │ │ ├── fun_check.hpp │ │ │ ├── fun_construct.hpp │ │ │ ├── fun_eval.hpp │ │ │ ├── graph/ │ │ │ │ ├── cpp_graph.hpp │ │ │ │ ├── from_graph.hpp │ │ │ │ ├── from_json.hpp │ │ │ │ ├── graph_op_enum.hpp │ │ │ │ ├── to_graph.hpp │ │ │ │ └── to_json.hpp │ │ │ ├── hash_code.hpp │ │ │ ├── hessian.hpp │ │ │ ├── identical.hpp │ │ │ ├── independent/ │ │ │ │ └── independent.hpp │ │ │ ├── integer.hpp │ │ │ ├── jacobian.hpp │ │ │ ├── lu_ratio.hpp │ │ │ ├── mul.hpp │ │ │ ├── mul_eq.hpp │ │ │ ├── near_equal_ext.hpp │ │ │ ├── new_dynamic.hpp │ │ │ ├── num_skip.hpp │ │ │ ├── numeric_limits.hpp │ │ │ ├── omp_max_thread.hpp │ │ │ ├── opt_val_hes.hpp │ │ │ ├── optimize.hpp │ │ │ ├── ordered.hpp │ │ │ ├── parallel_ad.hpp │ │ │ ├── pow.hpp │ │ │ ├── print_for.hpp │ │ │ ├── rev_hes_sparsity.hpp │ │ │ ├── rev_jac_sparsity.hpp │ │ │ ├── rev_one.hpp │ │ │ ├── rev_sparse_hes.hpp │ │ │ ├── rev_sparse_jac.hpp │ │ │ ├── rev_two.hpp │ │ │ ├── reverse.hpp │ │ │ ├── sign.hpp │ │ │ ├── sparse.hpp │ │ │ ├── sparse_hes.hpp │ │ │ ├── sparse_hessian.hpp │ │ │ ├── sparse_jac.hpp │ │ │ ├── sparse_jacobian.hpp │ │ │ ├── standard_math.hpp │ │ │ ├── std_math_11.hpp │ │ │ ├── sub.hpp │ │ │ ├── sub_eq.hpp │ │ │ ├── subgraph_jac_rev.hpp │ │ │ ├── subgraph_reverse.hpp │ │ │ ├── subgraph_sparsity.hpp │ │ │ ├── tape_link.hpp │ │ │ ├── testvector.hpp │ │ │ ├── to_csrc.hpp │ │ │ ├── unary_minus.hpp │ │ │ ├── unary_plus.hpp │ │ │ ├── undef.hpp │ │ │ ├── user_ad.hpp │ │ │ ├── value.hpp │ │ │ ├── var2par.hpp │ │ │ ├── vec_ad/ │ │ │ │ └── vec_ad.hpp │ │ │ └── zdouble.hpp │ │ ├── cppad.hpp │ │ ├── local/ │ │ │ ├── ad_tape.hpp │ │ │ ├── atom_state.hpp │ │ │ ├── atomic_index.hpp │ │ │ ├── color_general.hpp │ │ │ ├── color_symmetric.hpp │ │ │ ├── cppad_colpack.hpp │ │ │ ├── declare_ad.hpp │ │ │ ├── define.hpp │ │ │ ├── graph/ │ │ │ │ ├── cpp_graph_itr.hpp │ │ │ │ ├── cpp_graph_op.hpp │ │ │ │ ├── csrc_writer.hpp │ │ │ │ ├── json_lexer.hpp │ │ │ │ ├── json_parser.hpp │ │ │ │ └── json_writer.hpp │ │ │ ├── hash_code.hpp │ │ │ ├── independent.hpp │ │ │ ├── is_pod.hpp │ │ │ ├── is_pod.hpp.in │ │ │ ├── op_code_dyn.hpp │ │ │ ├── op_code_var.hpp │ │ │ ├── optimize/ │ │ │ │ ├── cexp_info.hpp │ │ │ │ ├── csum_op_info.hpp │ │ │ │ ├── csum_stacks.hpp │ │ │ │ ├── extract_option.hpp │ │ │ │ ├── get_cexp_info.hpp │ │ │ │ ├── get_dyn_previous.hpp │ │ │ │ ├── get_op_previous.hpp │ │ │ │ ├── get_op_usage.hpp │ │ │ │ ├── get_par_usage.hpp │ │ │ │ ├── hash_code.hpp │ │ │ │ ├── match_op.hpp │ │ │ │ ├── optimize_run.hpp │ │ │ │ ├── record_csum.hpp │ │ │ │ ├── record_pv.hpp │ │ │ │ ├── record_vp.hpp │ │ │ │ ├── record_vv.hpp │ │ │ │ ├── size_pair.hpp │ │ │ │ └── usage.hpp │ │ │ ├── play/ │ │ │ │ ├── addr_enum.hpp │ │ │ │ ├── atom_op_info.hpp │ │ │ │ ├── dyn_player.hpp │ │ │ │ ├── player.hpp │ │ │ │ ├── random_iterator.hpp │ │ │ │ ├── random_setup.hpp │ │ │ │ ├── sequential_iterator.hpp │ │ │ │ └── subgraph_iterator.hpp │ │ │ ├── pod_vector.hpp │ │ │ ├── record/ │ │ │ │ ├── comp_op.hpp │ │ │ │ ├── cond_exp.hpp │ │ │ │ ├── dyn_recorder.hpp │ │ │ │ ├── put_dyn_atomic.hpp │ │ │ │ ├── put_var_atomic.hpp │ │ │ │ ├── put_var_vecad.hpp │ │ │ │ └── recorder.hpp │ │ │ ├── set_get_in_parallel.hpp │ │ │ ├── sparse/ │ │ │ │ ├── binary_op.hpp │ │ │ │ ├── internal.hpp │ │ │ │ ├── list_setvec.hpp │ │ │ │ ├── pack_setvec.hpp │ │ │ │ ├── size_setvec.hpp │ │ │ │ ├── svec_setvec.hpp │ │ │ │ └── unary_op.hpp │ │ │ ├── std_set.hpp │ │ │ ├── subgraph/ │ │ │ │ ├── arg_variable.hpp │ │ │ │ ├── entire_call.hpp │ │ │ │ ├── get_rev.hpp │ │ │ │ ├── info.hpp │ │ │ │ ├── init_rev.hpp │ │ │ │ └── sparsity.hpp │ │ │ ├── sweep/ │ │ │ │ ├── call_atomic.hpp │ │ │ │ ├── dynamic.hpp │ │ │ │ ├── for_hes.hpp │ │ │ │ ├── for_jac.hpp │ │ │ │ ├── forward0.hpp │ │ │ │ ├── forward1.hpp │ │ │ │ ├── forward2.hpp │ │ │ │ ├── forward_0.hpp │ │ │ │ ├── forward_any.hpp │ │ │ │ ├── forward_dir.hpp │ │ │ │ ├── rev_hes.hpp │ │ │ │ ├── rev_jac.hpp │ │ │ │ └── reverse.hpp │ │ │ ├── temp_file.hpp │ │ │ ├── utility/ │ │ │ │ ├── cppad_vector_itr.hpp │ │ │ │ └── vector_bool.hpp │ │ │ ├── val_graph/ │ │ │ │ ├── base_op.hpp │ │ │ │ ├── binary_op.hpp │ │ │ │ ├── call_atomic.hpp │ │ │ │ ├── call_op.hpp │ │ │ │ ├── cexp_op.hpp │ │ │ │ ├── comp_op.hpp │ │ │ │ ├── compress.hpp │ │ │ │ ├── con_op.hpp │ │ │ │ ├── csum_op.hpp │ │ │ │ ├── cumulative.hpp │ │ │ │ ├── dead_code.hpp │ │ │ │ ├── dis_op.hpp │ │ │ │ ├── dyn_type.hpp │ │ │ │ ├── enable_parallel.hpp │ │ │ │ ├── fold_con.hpp │ │ │ │ ├── fun2val.hpp │ │ │ │ ├── op2arg_index.hpp │ │ │ │ ├── op_enum2class.hpp │ │ │ │ ├── op_hash_table.hpp │ │ │ │ ├── op_iterator.hpp │ │ │ │ ├── option.hpp │ │ │ │ ├── pri_op.hpp │ │ │ │ ├── print_op.hpp │ │ │ │ ├── record.hpp │ │ │ │ ├── record_new.hpp │ │ │ │ ├── renumber.hpp │ │ │ │ ├── rev_depend.hpp │ │ │ │ ├── summation.hpp │ │ │ │ ├── tape.hpp │ │ │ │ ├── unary_op.hpp │ │ │ │ ├── val2fun.hpp │ │ │ │ ├── val_optimize.hpp │ │ │ │ ├── val_type.hpp │ │ │ │ ├── var_type.hpp │ │ │ │ └── vector_op.hpp │ │ │ └── var_op/ │ │ │ ├── abs_op.hpp │ │ │ ├── acos_op.hpp │ │ │ ├── acosh_op.hpp │ │ │ ├── add_op.hpp │ │ │ ├── asin_op.hpp │ │ │ ├── asinh_op.hpp │ │ │ ├── atan_op.hpp │ │ │ ├── atanh_op.hpp │ │ │ ├── atomic_op.hpp │ │ │ ├── cexp_op.hpp │ │ │ ├── compare.hpp │ │ │ ├── compare_op.hpp │ │ │ ├── cond_op.hpp │ │ │ ├── cos_op.hpp │ │ │ ├── cosh_op.hpp │ │ │ ├── cskip_op.hpp │ │ │ ├── csum_op.hpp │ │ │ ├── dis_op.hpp │ │ │ ├── discrete_op.hpp │ │ │ ├── div_op.hpp │ │ │ ├── erf_op.hpp │ │ │ ├── exp_op.hpp │ │ │ ├── expm1_op.hpp │ │ │ ├── load_op.hpp │ │ │ ├── log1p_op.hpp │ │ │ ├── log_op.hpp │ │ │ ├── mul_op.hpp │ │ │ ├── neg_op.hpp │ │ │ ├── one_var.hpp │ │ │ ├── par_op.hpp │ │ │ ├── parameter_op.hpp │ │ │ ├── pow_op.hpp │ │ │ ├── pri_op.hpp │ │ │ ├── print_op.hpp │ │ │ ├── prototype_op.hpp │ │ │ ├── sign_op.hpp │ │ │ ├── sin_op.hpp │ │ │ ├── sinh_op.hpp │ │ │ ├── sqrt_op.hpp │ │ │ ├── store_op.hpp │ │ │ ├── sub_op.hpp │ │ │ ├── tan_op.hpp │ │ │ ├── tanh_op.hpp │ │ │ ├── two_var.hpp │ │ │ ├── var_op.hpp │ │ │ └── zmul_op.hpp │ │ ├── utility/ │ │ │ ├── check_numeric_type.hpp │ │ │ ├── check_simple_vector.hpp │ │ │ ├── create_dll_lib.hpp │ │ │ ├── elapsed_seconds.hpp │ │ │ ├── error_handler.hpp │ │ │ ├── index_sort.hpp │ │ │ ├── link_dll_lib.hpp │ │ │ ├── lu_factor.hpp │ │ │ ├── lu_invert.hpp │ │ │ ├── lu_solve.hpp │ │ │ ├── memory_leak.hpp │ │ │ ├── nan.hpp │ │ │ ├── near_equal.hpp │ │ │ ├── ode_err_control.hpp │ │ │ ├── ode_gear.hpp │ │ │ ├── ode_gear_control.hpp │ │ │ ├── omp_alloc.hpp │ │ │ ├── poly.hpp │ │ │ ├── pow_int.hpp │ │ │ ├── romberg_mul.hpp │ │ │ ├── romberg_one.hpp │ │ │ ├── rosen_34.hpp │ │ │ ├── runge_45.hpp │ │ │ ├── set_union.hpp │ │ │ ├── sparse2eigen.hpp │ │ │ ├── sparse_rc.hpp │ │ │ ├── sparse_rcv.hpp │ │ │ ├── speed_test.hpp │ │ │ ├── test_boolofvoid.hpp │ │ │ ├── thread_alloc.hpp │ │ │ ├── time_test.hpp │ │ │ ├── to_string.hpp │ │ │ ├── track_new_del.hpp │ │ │ ├── vector.hpp │ │ │ └── vector_bool.hpp │ │ ├── utility.hpp │ │ └── wno_conversion.hpp │ └── src/ │ ├── cpp_graph_op.cpp │ └── temp_file.cpp ├── fmt/ │ ├── CMakeLists.txt │ ├── include/ │ │ └── fmt/ │ │ ├── args.h │ │ ├── base.h │ │ ├── chrono.h │ │ ├── color.h │ │ ├── compile.h │ │ ├── core.h │ │ ├── format-inl.h │ │ ├── format.h │ │ ├── os.h │ │ ├── ostream.h │ │ ├── printf.h │ │ ├── ranges.h │ │ ├── std.h │ │ └── xchar.h │ └── src/ │ ├── fmt.cc │ ├── format.cc │ └── os.cc ├── notes.md ├── solvers/ │ ├── copt/ │ │ └── copt.h │ ├── gurobi/ │ │ └── gurobi_c.h │ ├── highs/ │ │ ├── HConfig.h │ │ ├── Highs.h │ │ ├── filereaderlp/ │ │ │ ├── builder.hpp │ │ │ ├── def.hpp │ │ │ ├── model.hpp │ │ │ └── reader.hpp │ │ ├── interfaces/ │ │ │ └── highs_c_api.h │ │ ├── io/ │ │ │ ├── Filereader.h │ │ │ ├── FilereaderEms.h │ │ │ ├── FilereaderLp.h │ │ │ ├── FilereaderMps.h │ │ │ ├── HMPSIO.h │ │ │ ├── HMpsFF.h │ │ │ ├── HighsIO.h │ │ │ └── LoadOptions.h │ │ ├── ipm/ │ │ │ ├── IpxSolution.h │ │ │ ├── IpxWrapper.h │ │ │ ├── basiclu/ │ │ │ │ ├── basiclu.h │ │ │ │ ├── basiclu_factorize.h │ │ │ │ ├── basiclu_get_factors.h │ │ │ │ ├── basiclu_initialize.h │ │ │ │ ├── basiclu_obj_factorize.h │ │ │ │ ├── basiclu_obj_free.h │ │ │ │ ├── basiclu_obj_get_factors.h │ │ │ │ ├── basiclu_obj_initialize.h │ │ │ │ ├── basiclu_obj_solve_dense.h │ │ │ │ ├── basiclu_obj_solve_for_update.h │ │ │ │ ├── basiclu_obj_solve_sparse.h │ │ │ │ ├── basiclu_obj_update.h │ │ │ │ ├── basiclu_object.h │ │ │ │ ├── basiclu_solve_dense.h │ │ │ │ ├── basiclu_solve_for_update.h │ │ │ │ ├── basiclu_solve_sparse.h │ │ │ │ ├── basiclu_update.h │ │ │ │ ├── lu_def.h │ │ │ │ ├── lu_file.h │ │ │ │ ├── lu_internal.h │ │ │ │ └── lu_list.h │ │ │ └── ipx/ │ │ │ ├── basiclu_kernel.h │ │ │ ├── basiclu_wrapper.h │ │ │ ├── basis.h │ │ │ ├── conjugate_residuals.h │ │ │ ├── control.h │ │ │ ├── crossover.h │ │ │ ├── diagonal_precond.h │ │ │ ├── forrest_tomlin.h │ │ │ ├── guess_basis.h │ │ │ ├── indexed_vector.h │ │ │ ├── info.h │ │ │ ├── ipm.h │ │ │ ├── ipx_c.h │ │ │ ├── ipx_config.h │ │ │ ├── ipx_info.h │ │ │ ├── ipx_internal.h │ │ │ ├── ipx_parameters.h │ │ │ ├── ipx_status.h │ │ │ ├── iterate.h │ │ │ ├── kkt_solver.h │ │ │ ├── kkt_solver_basis.h │ │ │ ├── kkt_solver_diag.h │ │ │ ├── linear_operator.h │ │ │ ├── lp_solver.h │ │ │ ├── lu_factorization.h │ │ │ ├── lu_update.h │ │ │ ├── maxvolume.h │ │ │ ├── model.h │ │ │ ├── multistream.h │ │ │ ├── normal_matrix.h │ │ │ ├── power_method.h │ │ │ ├── sparse_matrix.h │ │ │ ├── sparse_utils.h │ │ │ ├── splitted_normal_matrix.h │ │ │ ├── starting_basis.h │ │ │ ├── symbolic_invert.h │ │ │ ├── timer.h │ │ │ └── utils.h │ │ ├── lp_data/ │ │ │ ├── HConst.h │ │ │ ├── HStruct.h │ │ │ ├── HighsAnalysis.h │ │ │ ├── HighsCallback.h │ │ │ ├── HighsCallbackStruct.h │ │ │ ├── HighsDebug.h │ │ │ ├── HighsIis.h │ │ │ ├── HighsInfo.h │ │ │ ├── HighsInfoDebug.h │ │ │ ├── HighsLp.h │ │ │ ├── HighsLpSolverObject.h │ │ │ ├── HighsLpUtils.h │ │ │ ├── HighsModelUtils.h │ │ │ ├── HighsOptions.h │ │ │ ├── HighsRanging.h │ │ │ ├── HighsSolution.h │ │ │ ├── HighsSolutionDebug.h │ │ │ ├── HighsSolve.h │ │ │ └── HighsStatus.h │ │ ├── mip/ │ │ │ ├── HighsCliqueTable.h │ │ │ ├── HighsConflictPool.h │ │ │ ├── HighsCutGeneration.h │ │ │ ├── HighsCutPool.h │ │ │ ├── HighsDebugSol.h │ │ │ ├── HighsDomain.h │ │ │ ├── HighsDomainChange.h │ │ │ ├── HighsDynamicRowMatrix.h │ │ │ ├── HighsGFkSolve.h │ │ │ ├── HighsImplications.h │ │ │ ├── HighsLpAggregator.h │ │ │ ├── HighsLpRelaxation.h │ │ │ ├── HighsMipAnalysis.h │ │ │ ├── HighsMipSolver.h │ │ │ ├── HighsMipSolverData.h │ │ │ ├── HighsModkSeparator.h │ │ │ ├── HighsNodeQueue.h │ │ │ ├── HighsObjectiveFunction.h │ │ │ ├── HighsPathSeparator.h │ │ │ ├── HighsPrimalHeuristics.h │ │ │ ├── HighsPseudocost.h │ │ │ ├── HighsRedcostFixing.h │ │ │ ├── HighsSearch.h │ │ │ ├── HighsSeparation.h │ │ │ ├── HighsSeparator.h │ │ │ ├── HighsTableauSeparator.h │ │ │ ├── HighsTransformedLp.h │ │ │ ├── MipTimer.h │ │ │ └── feasibilityjump.hh │ │ ├── model/ │ │ │ ├── HighsHessian.h │ │ │ ├── HighsHessianUtils.h │ │ │ └── HighsModel.h │ │ ├── parallel/ │ │ │ ├── HighsBinarySemaphore.h │ │ │ ├── HighsCacheAlign.h │ │ │ ├── HighsCombinable.h │ │ │ ├── HighsMutex.h │ │ │ ├── HighsParallel.h │ │ │ ├── HighsRaceTimer.h │ │ │ ├── HighsSchedulerConstants.h │ │ │ ├── HighsSpinMutex.h │ │ │ ├── HighsSplitDeque.h │ │ │ ├── HighsTask.h │ │ │ └── HighsTaskExecutor.h │ │ ├── pdlp/ │ │ │ ├── CupdlpWrapper.h │ │ │ └── cupdlp/ │ │ │ ├── cupdlp_cs.h │ │ │ ├── cupdlp_defs.h │ │ │ ├── cupdlp_linalg.h │ │ │ ├── cupdlp_proj.h │ │ │ ├── cupdlp_restart.h │ │ │ ├── cupdlp_scaling.h │ │ │ ├── cupdlp_solver.h │ │ │ ├── cupdlp_step.h │ │ │ └── cupdlp_utils.c │ │ ├── pdqsort/ │ │ │ └── pdqsort.h │ │ ├── presolve/ │ │ │ ├── HPresolve.h │ │ │ ├── HPresolveAnalysis.h │ │ │ ├── HighsPostsolveStack.h │ │ │ ├── HighsSymmetry.h │ │ │ ├── ICrash.h │ │ │ ├── ICrashUtil.h │ │ │ ├── ICrashX.h │ │ │ └── PresolveComponent.h │ │ ├── qpsolver/ │ │ │ ├── a_asm.hpp │ │ │ ├── a_quass.hpp │ │ │ ├── basis.hpp │ │ │ ├── crashsolution.hpp │ │ │ ├── dantzigpricing.hpp │ │ │ ├── devexpricing.hpp │ │ │ ├── eventhandler.hpp │ │ │ ├── factor.hpp │ │ │ ├── feasibility_bounded.hpp │ │ │ ├── feasibility_highs.hpp │ │ │ ├── gradient.hpp │ │ │ ├── instance.hpp │ │ │ ├── matrix.hpp │ │ │ ├── perturbation.hpp │ │ │ ├── pricing.hpp │ │ │ ├── qpconst.hpp │ │ │ ├── qpvector.hpp │ │ │ ├── quass.hpp │ │ │ ├── ratiotest.hpp │ │ │ ├── runtime.hpp │ │ │ ├── scaling.hpp │ │ │ ├── settings.hpp │ │ │ ├── snippets.hpp │ │ │ ├── statistics.hpp │ │ │ └── steepestedgepricing.hpp │ │ ├── simplex/ │ │ │ ├── HApp.h │ │ │ ├── HEkk.h │ │ │ ├── HEkkDual.h │ │ │ ├── HEkkDualRHS.h │ │ │ ├── HEkkDualRow.h │ │ │ ├── HEkkPrimal.h │ │ │ ├── HSimplex.h │ │ │ ├── HSimplexDebug.h │ │ │ ├── HSimplexNla.h │ │ │ ├── HSimplexReport.h │ │ │ ├── HighsSimplexAnalysis.h │ │ │ ├── SimplexConst.h │ │ │ ├── SimplexStruct.h │ │ │ └── SimplexTimer.h │ │ ├── test_kkt/ │ │ │ ├── DevKkt.h │ │ │ └── KktCh2.h │ │ ├── util/ │ │ │ ├── FactorTimer.h │ │ │ ├── HFactor.h │ │ │ ├── HFactorConst.h │ │ │ ├── HFactorDebug.h │ │ │ ├── HSet.h │ │ │ ├── HVector.h │ │ │ ├── HVectorBase.h │ │ │ ├── HighsCDouble.h │ │ │ ├── HighsComponent.h │ │ │ ├── HighsDataStack.h │ │ │ ├── HighsDisjointSets.h │ │ │ ├── HighsHash.h │ │ │ ├── HighsHashTree.h │ │ │ ├── HighsInt.h │ │ │ ├── HighsIntegers.h │ │ │ ├── HighsLinearSumBounds.h │ │ │ ├── HighsMatrixPic.h │ │ │ ├── HighsMatrixSlice.h │ │ │ ├── HighsMatrixUtils.h │ │ │ ├── HighsMemoryAllocation.h │ │ │ ├── HighsRandom.h │ │ │ ├── HighsRbTree.h │ │ │ ├── HighsSort.h │ │ │ ├── HighsSparseMatrix.h │ │ │ ├── HighsSparseVectorSum.h │ │ │ ├── HighsSplay.h │ │ │ ├── HighsTimer.h │ │ │ ├── HighsUtils.h │ │ │ └── stringutil.h │ │ └── zstr/ │ │ ├── strict_fstream.hpp │ │ └── zstr.hpp │ ├── ipopt/ │ │ ├── IpReturnCodes.h │ │ ├── IpReturnCodes.inc │ │ ├── IpReturnCodes_inc.h │ │ ├── IpStdCInterface.h │ │ ├── IpTypes.h │ │ └── IpoptConfig.h │ ├── knitro/ │ │ └── knitro.h │ ├── mosek/ │ │ ├── mosek_linux.h │ │ └── mosek_win.h │ └── xpress/ │ ├── function_list.txt │ └── xpress_forward_decls.h └── tcc/ └── libtcc.h