├── .clang-format ├── .github └── workflows │ ├── docs.yml │ └── unit_tests.yml ├── .gitignore ├── .nojekyll ├── CMakeLists.txt ├── CMakeLists.txt.in ├── LICENSE ├── README.md ├── ci └── run_tests.sh ├── configure └── qoco_config.h.in ├── docs ├── Doxyfile ├── Makefile ├── _build │ ├── doctrees │ │ ├── api │ │ │ ├── C.doctree │ │ │ ├── exit.doctree │ │ │ ├── index.doctree │ │ │ ├── interfaces.doctree │ │ │ ├── matlab.doctree │ │ │ ├── python.doctree │ │ │ └── settings.doctree │ │ ├── codegen │ │ │ ├── api.doctree │ │ │ ├── build.doctree │ │ │ ├── calling.doctree │ │ │ ├── generate.doctree │ │ │ ├── index.doctree │ │ │ └── installation.doctree │ │ ├── contributing │ │ │ └── index.doctree │ │ ├── environment.pickle │ │ ├── examples │ │ │ ├── index.doctree │ │ │ ├── lcvx.doctree │ │ │ └── simple_example.doctree │ │ ├── index.doctree │ │ ├── install │ │ │ ├── C.doctree │ │ │ ├── index.doctree │ │ │ ├── matlab.doctree │ │ │ └── python.doctree │ │ └── parsers │ │ │ ├── cvxpy.doctree │ │ │ ├── cvxpygen.doctree │ │ │ └── index.doctree │ └── html │ │ ├── .buildinfo │ │ ├── .buildinfo.bak │ │ ├── _images │ │ └── qoco-logo.JPEG │ │ ├── _sources │ │ ├── api │ │ │ ├── C.rst.txt │ │ │ ├── exit.rst.txt │ │ │ ├── index.rst.txt │ │ │ ├── interfaces.rst.txt │ │ │ ├── matlab.rst.txt │ │ │ ├── python.rst.txt │ │ │ └── settings.rst.txt │ │ ├── codegen │ │ │ ├── api.rst.txt │ │ │ ├── build.rst.txt │ │ │ ├── calling.rst.txt │ │ │ ├── generate.rst.txt │ │ │ ├── index.rst.txt │ │ │ └── installation.rst.txt │ │ ├── contributing │ │ │ └── index.rst.txt │ │ ├── examples │ │ │ ├── index.rst.txt │ │ │ ├── lcvx.rst.txt │ │ │ └── simple_example.rst.txt │ │ ├── index.rst.txt │ │ ├── install │ │ │ ├── C.rst.txt │ │ │ ├── index.rst.txt │ │ │ ├── matlab.rst.txt │ │ │ └── python.rst.txt │ │ └── parsers │ │ │ ├── cvxpy.rst.txt │ │ │ ├── cvxpygen.rst.txt │ │ │ └── index.rst.txt │ │ ├── _static │ │ ├── _sphinx_javascript_frameworks_compat.js │ │ ├── basic.css │ │ ├── css │ │ │ ├── badge_only.css │ │ │ ├── custom.css │ │ │ ├── fonts │ │ │ │ ├── Roboto-Slab-Bold.woff │ │ │ │ ├── Roboto-Slab-Bold.woff2 │ │ │ │ ├── Roboto-Slab-Regular.woff │ │ │ │ ├── Roboto-Slab-Regular.woff2 │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ ├── fontawesome-webfont.woff2 │ │ │ │ ├── lato-bold-italic.woff │ │ │ │ ├── lato-bold-italic.woff2 │ │ │ │ ├── lato-bold.woff │ │ │ │ ├── lato-bold.woff2 │ │ │ │ ├── lato-normal-italic.woff │ │ │ │ ├── lato-normal-italic.woff2 │ │ │ │ ├── lato-normal.woff │ │ │ │ └── lato-normal.woff2 │ │ │ └── theme.css │ │ ├── doctools.js │ │ ├── documentation_options.js │ │ ├── favicon.ico │ │ ├── file.png │ │ ├── fonts │ │ │ ├── Lato │ │ │ │ ├── lato-bold.eot │ │ │ │ ├── lato-bold.ttf │ │ │ │ ├── lato-bold.woff │ │ │ │ ├── lato-bold.woff2 │ │ │ │ ├── lato-bolditalic.eot │ │ │ │ ├── lato-bolditalic.ttf │ │ │ │ ├── lato-bolditalic.woff │ │ │ │ ├── lato-bolditalic.woff2 │ │ │ │ ├── lato-italic.eot │ │ │ │ ├── lato-italic.ttf │ │ │ │ ├── lato-italic.woff │ │ │ │ ├── lato-italic.woff2 │ │ │ │ ├── lato-regular.eot │ │ │ │ ├── lato-regular.ttf │ │ │ │ ├── lato-regular.woff │ │ │ │ └── lato-regular.woff2 │ │ │ └── RobotoSlab │ │ │ │ ├── roboto-slab-v7-bold.eot │ │ │ │ ├── roboto-slab-v7-bold.ttf │ │ │ │ ├── roboto-slab-v7-bold.woff │ │ │ │ ├── roboto-slab-v7-bold.woff2 │ │ │ │ ├── roboto-slab-v7-regular.eot │ │ │ │ ├── roboto-slab-v7-regular.ttf │ │ │ │ ├── roboto-slab-v7-regular.woff │ │ │ │ └── roboto-slab-v7-regular.woff2 │ │ ├── img │ │ │ ├── favicon.ico │ │ │ ├── qoco-logo-no-box.jpeg │ │ │ └── qoco-logo.JPEG │ │ ├── jquery.js │ │ ├── js │ │ │ ├── badge_only.js │ │ │ ├── theme.js │ │ │ └── versions.js │ │ ├── language_data.js │ │ ├── minus.png │ │ ├── plus.png │ │ ├── pygments.css │ │ ├── qoco-logo-no-box.jpeg │ │ ├── searchtools.js │ │ └── sphinx_highlight.js │ │ ├── api │ │ ├── C.html │ │ ├── exit.html │ │ ├── index.html │ │ ├── interfaces.html │ │ ├── matlab.html │ │ ├── python.html │ │ └── settings.html │ │ ├── codegen │ │ ├── api.html │ │ ├── build.html │ │ ├── calling.html │ │ ├── generate.html │ │ ├── index.html │ │ └── installation.html │ │ ├── contributing │ │ └── index.html │ │ ├── examples │ │ ├── index.html │ │ ├── lcvx.html │ │ └── simple_example.html │ │ ├── genindex.html │ │ ├── index.html │ │ ├── install │ │ ├── C.html │ │ ├── index.html │ │ ├── matlab.html │ │ └── python.html │ │ ├── objects.inv │ │ ├── parsers │ │ ├── cvxpy.html │ │ ├── cvxpygen.html │ │ └── index.html │ │ ├── search.html │ │ └── searchindex.js ├── _static │ ├── css │ │ └── custom.css │ └── img │ │ ├── favicon.ico │ │ ├── qoco-logo-no-box.jpeg │ │ └── qoco-logo.JPEG ├── _templates │ └── layout.html ├── api │ ├── C.rst │ ├── exit.rst │ ├── index.rst │ ├── interfaces.rst │ ├── matlab.rst │ ├── python.rst │ └── settings.rst ├── codegen │ ├── api.rst │ ├── build.rst │ ├── calling.rst │ ├── generate.rst │ ├── index.rst │ └── installation.rst ├── conf.py ├── contributing │ └── index.rst ├── doxygen_out │ └── xml │ │ ├── combine.xslt │ │ ├── compound.xsd │ │ ├── d1 │ │ └── d94 │ │ │ └── equilibration_8c.xml │ │ ├── d3 │ │ └── d91 │ │ │ └── utils_8c.xml │ │ ├── d4 │ │ └── d9d │ │ │ └── qoco__api_8c.xml │ │ ├── d8 │ │ ├── d14 │ │ │ └── linalg_8c.xml │ │ └── de6 │ │ │ └── qoco__error_8c.xml │ │ ├── db │ │ └── d03 │ │ │ └── kkt_8c.xml │ │ ├── dd │ │ └── d08 │ │ │ └── input__validation_8c.xml │ │ ├── df │ │ ├── d3b │ │ │ └── cone_8c.xml │ │ └── d41 │ │ │ └── timer_8c.xml │ │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.xml │ │ ├── index.xml │ │ ├── index.xsd │ │ └── xml.xsd ├── examples │ ├── index.rst │ ├── lcvx.rst │ └── simple_example.rst ├── html │ ├── annotated.html │ ├── bc_s.png │ ├── bdwn.png │ ├── classes.html │ ├── closed.png │ ├── cone_8c.html │ ├── cone_8c__incl.map │ ├── cone_8c__incl.md5 │ ├── cone_8c__incl.png │ ├── cone_8h.html │ ├── cone_8h__dep__incl.map │ ├── cone_8h__dep__incl.md5 │ ├── cone_8h__dep__incl.png │ ├── cone_8h__incl.map │ ├── cone_8h__incl.md5 │ ├── cone_8h__incl.png │ ├── cone_8h_source.html │ ├── definitions_8h.html │ ├── definitions_8h__dep__incl.map │ ├── definitions_8h__dep__incl.md5 │ ├── definitions_8h__dep__incl.png │ ├── definitions_8h__incl.map │ ├── definitions_8h__incl.md5 │ ├── definitions_8h__incl.png │ ├── definitions_8h_source.html │ ├── dir_000001_000000.html │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ ├── doc.png │ ├── doxygen.css │ ├── doxygen.svg │ ├── dynsections.js │ ├── enums_8h.html │ ├── enums_8h__dep__incl.map │ ├── enums_8h__dep__incl.md5 │ ├── enums_8h__dep__incl.png │ ├── enums_8h_source.html │ ├── equilibration_8c.html │ ├── equilibration_8c__incl.map │ ├── equilibration_8c__incl.md5 │ ├── equilibration_8c__incl.png │ ├── equilibration_8h.html │ ├── equilibration_8h__dep__incl.map │ ├── equilibration_8h__dep__incl.md5 │ ├── equilibration_8h__dep__incl.png │ ├── equilibration_8h__incl.map │ ├── equilibration_8h__incl.md5 │ ├── equilibration_8h__incl.png │ ├── equilibration_8h_source.html │ ├── files.html │ ├── folderclosed.png │ ├── folderopen.png │ ├── functions.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_defs.html │ ├── globals_enum.html │ ├── globals_eval.html │ ├── globals_func.html │ ├── globals_type.html │ ├── graph_legend.html │ ├── graph_legend.md5 │ ├── graph_legend.png │ ├── index.html │ ├── input__validation_8c.html │ ├── input__validation_8c__incl.map │ ├── input__validation_8c__incl.md5 │ ├── input__validation_8c__incl.png │ ├── input__validation_8h.html │ ├── input__validation_8h__dep__incl.map │ ├── input__validation_8h__dep__incl.md5 │ ├── input__validation_8h__dep__incl.png │ ├── input__validation_8h__incl.map │ ├── input__validation_8h__incl.md5 │ ├── input__validation_8h__incl.png │ ├── input__validation_8h_source.html │ ├── jquery.js │ ├── kkt_8c.html │ ├── kkt_8c__incl.map │ ├── kkt_8c__incl.md5 │ ├── kkt_8c__incl.png │ ├── kkt_8h.html │ ├── kkt_8h__dep__incl.map │ ├── kkt_8h__dep__incl.md5 │ ├── kkt_8h__dep__incl.png │ ├── kkt_8h__incl.map │ ├── kkt_8h__incl.md5 │ ├── kkt_8h__incl.png │ ├── kkt_8h_source.html │ ├── linalg_8c.html │ ├── linalg_8c__incl.map │ ├── linalg_8c__incl.md5 │ ├── linalg_8c__incl.png │ ├── linalg_8h.html │ ├── linalg_8h__dep__incl.map │ ├── linalg_8h__dep__incl.md5 │ ├── linalg_8h__dep__incl.png │ ├── linalg_8h__incl.map │ ├── linalg_8h__incl.md5 │ ├── linalg_8h__incl.png │ ├── linalg_8h_source.html │ ├── md__home_govind_Desktop_git_qoco_README.html │ ├── menu.js │ ├── menudata.js │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── pages.html │ ├── qoco_8h.html │ ├── qoco_8h__incl.map │ ├── qoco_8h__incl.md5 │ ├── qoco_8h__incl.png │ ├── qoco_8h_source.html │ ├── qoco__api_8c.html │ ├── qoco__api_8c__incl.map │ ├── qoco__api_8c__incl.md5 │ ├── qoco__api_8c__incl.png │ ├── qoco__api_8h.html │ ├── qoco__api_8h__dep__incl.map │ ├── qoco__api_8h__dep__incl.md5 │ ├── qoco__api_8h__dep__incl.png │ ├── qoco__api_8h__incl.map │ ├── qoco__api_8h__incl.md5 │ ├── qoco__api_8h__incl.png │ ├── qoco__api_8h_source.html │ ├── qoco__error_8c.html │ ├── qoco__error_8c__incl.map │ ├── qoco__error_8c__incl.md5 │ ├── qoco__error_8c__incl.png │ ├── qoco__error_8h.html │ ├── qoco__error_8h__dep__incl.map │ ├── qoco__error_8h__dep__incl.md5 │ ├── qoco__error_8h__dep__incl.png │ ├── qoco__error_8h__incl.map │ ├── qoco__error_8h__incl.md5 │ ├── qoco__error_8h__incl.png │ ├── qoco__error_8h_source.html │ ├── search │ │ ├── all_0.html │ │ ├── all_0.js │ │ ├── all_1.html │ │ ├── all_1.js │ │ ├── all_10.html │ │ ├── all_10.js │ │ ├── all_11.html │ │ ├── all_11.js │ │ ├── all_12.html │ │ ├── all_12.js │ │ ├── all_13.html │ │ ├── all_13.js │ │ ├── all_14.html │ │ ├── all_14.js │ │ ├── all_15.html │ │ ├── all_15.js │ │ ├── all_16.html │ │ ├── all_16.js │ │ ├── all_17.html │ │ ├── all_17.js │ │ ├── all_18.html │ │ ├── all_18.js │ │ ├── all_2.html │ │ ├── all_2.js │ │ ├── all_3.html │ │ ├── all_3.js │ │ ├── all_4.html │ │ ├── all_4.js │ │ ├── all_5.html │ │ ├── all_5.js │ │ ├── all_6.html │ │ ├── all_6.js │ │ ├── all_7.html │ │ ├── all_7.js │ │ ├── all_8.html │ │ ├── all_8.js │ │ ├── all_9.html │ │ ├── all_9.js │ │ ├── all_a.html │ │ ├── all_a.js │ │ ├── all_b.html │ │ ├── all_b.js │ │ ├── all_c.html │ │ ├── all_c.js │ │ ├── all_d.html │ │ ├── all_d.js │ │ ├── all_e.html │ │ ├── all_e.js │ │ ├── all_f.html │ │ ├── all_f.js │ │ ├── classes_0.html │ │ ├── classes_0.js │ │ ├── close.svg │ │ ├── defines_0.html │ │ ├── defines_0.js │ │ ├── defines_1.html │ │ ├── defines_1.js │ │ ├── enums_0.html │ │ ├── enums_0.js │ │ ├── enumvalues_0.html │ │ ├── enumvalues_0.js │ │ ├── files_0.html │ │ ├── files_0.js │ │ ├── files_1.html │ │ ├── files_1.js │ │ ├── files_2.html │ │ ├── files_2.js │ │ ├── files_3.html │ │ ├── files_3.js │ │ ├── files_4.html │ │ ├── files_4.js │ │ ├── files_5.html │ │ ├── files_5.js │ │ ├── files_6.html │ │ ├── files_6.js │ │ ├── files_7.html │ │ ├── files_7.js │ │ ├── files_8.html │ │ ├── files_8.js │ │ ├── files_9.html │ │ ├── files_9.js │ │ ├── functions_0.html │ │ ├── functions_0.js │ │ ├── functions_1.html │ │ ├── functions_1.js │ │ ├── functions_10.html │ │ ├── functions_10.js │ │ ├── functions_2.html │ │ ├── functions_2.js │ │ ├── functions_3.html │ │ ├── functions_3.js │ │ ├── functions_4.html │ │ ├── functions_4.js │ │ ├── functions_5.html │ │ ├── functions_5.js │ │ ├── functions_6.html │ │ ├── functions_6.js │ │ ├── functions_7.html │ │ ├── functions_7.js │ │ ├── functions_8.html │ │ ├── functions_8.js │ │ ├── functions_9.html │ │ ├── functions_9.js │ │ ├── functions_a.html │ │ ├── functions_a.js │ │ ├── functions_b.html │ │ ├── functions_b.js │ │ ├── functions_c.html │ │ ├── functions_c.js │ │ ├── functions_d.html │ │ ├── functions_d.js │ │ ├── functions_e.html │ │ ├── functions_e.js │ │ ├── functions_f.html │ │ ├── functions_f.js │ │ ├── mag_sel.svg │ │ ├── nomatches.html │ │ ├── pages_0.html │ │ ├── pages_0.js │ │ ├── search.css │ │ ├── search.js │ │ ├── search_l.png │ │ ├── search_m.png │ │ ├── search_r.png │ │ ├── searchdata.js │ │ ├── typedefs_0.html │ │ ├── typedefs_0.js │ │ ├── variables_0.html │ │ ├── variables_0.js │ │ ├── variables_1.html │ │ ├── variables_1.js │ │ ├── variables_10.html │ │ ├── variables_10.js │ │ ├── variables_11.html │ │ ├── variables_11.js │ │ ├── variables_12.html │ │ ├── variables_12.js │ │ ├── variables_13.html │ │ ├── variables_13.js │ │ ├── variables_14.html │ │ ├── variables_14.js │ │ ├── variables_15.html │ │ ├── variables_15.js │ │ ├── variables_16.html │ │ ├── variables_16.js │ │ ├── variables_17.html │ │ ├── variables_17.js │ │ ├── variables_18.html │ │ ├── variables_18.js │ │ ├── variables_2.html │ │ ├── variables_2.js │ │ ├── variables_3.html │ │ ├── variables_3.js │ │ ├── variables_4.html │ │ ├── variables_4.js │ │ ├── variables_5.html │ │ ├── variables_5.js │ │ ├── variables_6.html │ │ ├── variables_6.js │ │ ├── variables_7.html │ │ ├── variables_7.js │ │ ├── variables_8.html │ │ ├── variables_8.js │ │ ├── variables_9.html │ │ ├── variables_9.js │ │ ├── variables_a.html │ │ ├── variables_a.js │ │ ├── variables_b.html │ │ ├── variables_b.js │ │ ├── variables_c.html │ │ ├── variables_c.js │ │ ├── variables_d.html │ │ ├── variables_d.js │ │ ├── variables_e.html │ │ ├── variables_e.js │ │ ├── variables_f.html │ │ └── variables_f.js │ ├── splitbar.png │ ├── structQOCOCscMatrix-members.html │ ├── structQOCOCscMatrix.html │ ├── structQOCOKKT-members.html │ ├── structQOCOKKT.html │ ├── structQOCOKKT__coll__graph.map │ ├── structQOCOKKT__coll__graph.md5 │ ├── structQOCOKKT__coll__graph.png │ ├── structQOCOProblemData-members.html │ ├── structQOCOProblemData.html │ ├── structQOCOProblemData__coll__graph.map │ ├── structQOCOProblemData__coll__graph.md5 │ ├── structQOCOProblemData__coll__graph.png │ ├── structQOCOSettings-members.html │ ├── structQOCOSettings.html │ ├── structQOCOSolution-members.html │ ├── structQOCOSolution.html │ ├── structQOCOSolver-members.html │ ├── structQOCOSolver.html │ ├── structQOCOSolver__coll__graph.map │ ├── structQOCOSolver__coll__graph.md5 │ ├── structQOCOSolver__coll__graph.png │ ├── structQOCOTimer-members.html │ ├── structQOCOTimer.html │ ├── structQOCOWorkspace-members.html │ ├── structQOCOWorkspace.html │ ├── structQOCOWorkspace__coll__graph.map │ ├── structQOCOWorkspace__coll__graph.md5 │ ├── structQOCOWorkspace__coll__graph.png │ ├── structs_8h.html │ ├── structs_8h__dep__incl.map │ ├── structs_8h__dep__incl.md5 │ ├── structs_8h__dep__incl.png │ ├── structs_8h__incl.map │ ├── structs_8h__incl.md5 │ ├── structs_8h__incl.png │ ├── structs_8h_source.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── tabs.css │ ├── timer_8c.html │ ├── timer_8c__incl.map │ ├── timer_8c__incl.md5 │ ├── timer_8c__incl.png │ ├── timer_8h.html │ ├── timer_8h__dep__incl.map │ ├── timer_8h__dep__incl.md5 │ ├── timer_8h__dep__incl.png │ ├── timer_8h__incl.map │ ├── timer_8h__incl.md5 │ ├── timer_8h__incl.png │ ├── timer_8h_source.html │ ├── timer__linux_8c.html │ ├── timer__linux_8c__incl.map │ ├── timer__linux_8c__incl.md5 │ ├── timer__linux_8c__incl.png │ ├── timer__macos_8c.html │ ├── timer__macos_8c__incl.map │ ├── timer__macos_8c__incl.md5 │ ├── timer__macos_8c__incl.png │ ├── timer__windows_8c.html │ ├── timer__windows_8c__incl.map │ ├── timer__windows_8c__incl.md5 │ ├── timer__windows_8c__incl.png │ ├── todo.html │ ├── utils_8c.html │ ├── utils_8c__incl.map │ ├── utils_8c__incl.md5 │ ├── utils_8c__incl.png │ ├── utils_8h.html │ ├── utils_8h__dep__incl.map │ ├── utils_8h__dep__incl.md5 │ ├── utils_8h__dep__incl.png │ ├── utils_8h__incl.map │ ├── utils_8h__incl.md5 │ ├── utils_8h__incl.png │ └── utils_8h_source.html ├── index.rst ├── install │ ├── C.rst │ ├── index.rst │ ├── matlab.rst │ └── python.rst ├── latex │ ├── Makefile │ ├── annotated.tex │ ├── cone_8c.tex │ ├── cone_8c__incl.md5 │ ├── cone_8c__incl.pdf │ ├── cone_8h.tex │ ├── cone_8h__dep__incl.md5 │ ├── cone_8h__dep__incl.pdf │ ├── cone_8h__incl.md5 │ ├── cone_8h__incl.pdf │ ├── definitions_8h.tex │ ├── definitions_8h__dep__incl.md5 │ ├── definitions_8h__dep__incl.pdf │ ├── definitions_8h__incl.md5 │ ├── definitions_8h__incl.pdf │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.tex │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba_dep.pdf │ ├── dir_d44c64559bbebec7f509842c48db8b23.tex │ ├── doxygen.sty │ ├── enums_8h.tex │ ├── enums_8h__dep__incl.md5 │ ├── enums_8h__dep__incl.pdf │ ├── equilibration_8c.tex │ ├── equilibration_8c__incl.md5 │ ├── equilibration_8c__incl.pdf │ ├── equilibration_8h.tex │ ├── equilibration_8h__dep__incl.md5 │ ├── equilibration_8h__dep__incl.pdf │ ├── equilibration_8h__incl.md5 │ ├── equilibration_8h__incl.pdf │ ├── files.tex │ ├── input__validation_8c.tex │ ├── input__validation_8c__incl.md5 │ ├── input__validation_8c__incl.pdf │ ├── input__validation_8h.tex │ ├── input__validation_8h__dep__incl.md5 │ ├── input__validation_8h__dep__incl.pdf │ ├── input__validation_8h__incl.md5 │ ├── input__validation_8h__incl.pdf │ ├── kkt_8c.tex │ ├── kkt_8c__incl.md5 │ ├── kkt_8c__incl.pdf │ ├── kkt_8h.tex │ ├── kkt_8h__dep__incl.md5 │ ├── kkt_8h__dep__incl.pdf │ ├── kkt_8h__incl.md5 │ ├── kkt_8h__incl.pdf │ ├── linalg_8c.tex │ ├── linalg_8c__incl.md5 │ ├── linalg_8c__incl.pdf │ ├── linalg_8h.tex │ ├── linalg_8h__dep__incl.md5 │ ├── linalg_8h__dep__incl.pdf │ ├── linalg_8h__incl.md5 │ ├── linalg_8h__incl.pdf │ ├── longtable_doxygen.sty │ ├── md__home_govind_Desktop_git_qoco_README.tex │ ├── qoco_8h.tex │ ├── qoco_8h__incl.md5 │ ├── qoco_8h__incl.pdf │ ├── qoco__api_8c.tex │ ├── qoco__api_8c__incl.md5 │ ├── qoco__api_8c__incl.pdf │ ├── qoco__api_8h.tex │ ├── qoco__api_8h__dep__incl.md5 │ ├── qoco__api_8h__dep__incl.pdf │ ├── qoco__api_8h__incl.md5 │ ├── qoco__api_8h__incl.pdf │ ├── qoco__error_8c.tex │ ├── qoco__error_8c__incl.md5 │ ├── qoco__error_8c__incl.pdf │ ├── qoco__error_8h.tex │ ├── qoco__error_8h__dep__incl.md5 │ ├── qoco__error_8h__dep__incl.pdf │ ├── qoco__error_8h__incl.md5 │ ├── qoco__error_8h__incl.pdf │ ├── refman.aux │ ├── refman.fdb_latexmk │ ├── refman.fls │ ├── refman.idx │ ├── refman.ilg │ ├── refman.ind │ ├── refman.log │ ├── refman.out │ ├── refman.pdf │ ├── refman.synctex.gz │ ├── refman.tex │ ├── refman.toc │ ├── structQOCOCscMatrix.tex │ ├── structQOCOKKT.tex │ ├── structQOCOKKT__coll__graph.md5 │ ├── structQOCOKKT__coll__graph.pdf │ ├── structQOCOProblemData.tex │ ├── structQOCOProblemData__coll__graph.md5 │ ├── structQOCOProblemData__coll__graph.pdf │ ├── structQOCOSettings.tex │ ├── structQOCOSolution.tex │ ├── structQOCOSolver.tex │ ├── structQOCOSolver__coll__graph.md5 │ ├── structQOCOSolver__coll__graph.pdf │ ├── structQOCOTimer.tex │ ├── structQOCOWorkspace.tex │ ├── structQOCOWorkspace__coll__graph.md5 │ ├── structQOCOWorkspace__coll__graph.pdf │ ├── structs_8h.tex │ ├── structs_8h__dep__incl.md5 │ ├── structs_8h__dep__incl.pdf │ ├── structs_8h__incl.md5 │ ├── structs_8h__incl.pdf │ ├── tabu_doxygen.sty │ ├── timer_8c.tex │ ├── timer_8c__incl.md5 │ ├── timer_8c__incl.pdf │ ├── timer_8h.tex │ ├── timer_8h__dep__incl.md5 │ ├── timer_8h__dep__incl.pdf │ ├── timer_8h__incl.md5 │ ├── timer_8h__incl.pdf │ ├── timer__linux_8c.tex │ ├── timer__linux_8c__incl.md5 │ ├── timer__linux_8c__incl.pdf │ ├── timer__macos_8c.tex │ ├── timer__macos_8c__incl.md5 │ ├── timer__macos_8c__incl.pdf │ ├── timer__windows_8c.tex │ ├── timer__windows_8c__incl.md5 │ ├── timer__windows_8c__incl.pdf │ ├── todo.tex │ ├── utils_8c.tex │ ├── utils_8c__incl.md5 │ ├── utils_8c__incl.pdf │ ├── utils_8h.tex │ ├── utils_8h__dep__incl.md5 │ ├── utils_8h__dep__incl.pdf │ ├── utils_8h__incl.md5 │ └── utils_8h__incl.pdf ├── make.bat ├── parsers │ ├── cvxpy.rst │ ├── cvxpygen.rst │ └── index.rst ├── requirements.txt └── xml │ ├── combine.xslt │ ├── compound.xsd │ ├── cone_8c.xml │ ├── cone_8h.xml │ ├── definitions_8h.xml │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.xml │ ├── dir_d44c64559bbebec7f509842c48db8b23.xml │ ├── enums_8h.xml │ ├── equilibration_8c.xml │ ├── equilibration_8h.xml │ ├── index.xml │ ├── index.xsd │ ├── input__validation_8c.xml │ ├── input__validation_8h.xml │ ├── kkt_8c.xml │ ├── kkt_8h.xml │ ├── linalg_8c.xml │ ├── linalg_8h.xml │ ├── qoco_8h.xml │ ├── qoco__api_8c.xml │ ├── qoco__api_8h.xml │ ├── qoco__error_8c.xml │ ├── qoco__error_8h.xml │ ├── structQOCOCscMatrix.xml │ ├── structQOCOKKT.xml │ ├── structQOCOProblemData.xml │ ├── structQOCOSettings.xml │ ├── structQOCOSolution.xml │ ├── structQOCOSolver.xml │ ├── structQOCOTimer.xml │ ├── structQOCOWorkspace.xml │ ├── structs_8h.xml │ ├── timer_8c.xml │ ├── timer_8h.xml │ ├── timer__linux_8c.xml │ ├── timer__macos_8c.xml │ ├── timer__windows_8c.xml │ ├── todo.xml │ ├── utils_8c.xml │ ├── utils_8h.xml │ └── xml.xsd ├── examples └── qoco_demo.c ├── include ├── cone.h ├── definitions.h ├── enums.h ├── equilibration.h ├── input_validation.h ├── kkt.h ├── qoco.h ├── qoco_api.h ├── qoco_linalg.h ├── qoco_status.h ├── qoco_utils.h ├── structs.h └── timer.h ├── lib ├── amd │ ├── CMakeLists.txt │ ├── SuiteSparse_config.c │ ├── SuiteSparse_config.h │ ├── amd.h │ ├── amd_1.c │ ├── amd_2.c │ ├── amd_aat.c │ ├── amd_control.c │ ├── amd_defaults.c │ ├── amd_dump.c │ ├── amd_info.c │ ├── amd_internal.h │ ├── amd_order.c │ ├── amd_post_tree.c │ ├── amd_postorder.c │ ├── amd_preprocess.c │ ├── amd_valid.c │ └── amd_version.c └── qdldl │ ├── .editorconfig │ ├── .github │ ├── dependabot.yaml │ └── workflows │ │ └── ci.yml │ ├── .gitignore │ ├── CHANGELOG.md │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── configure │ ├── cmake │ │ └── cmake_uninstall.cmake.in │ ├── qdldl_types.h.in │ └── qdldl_version.h.in │ ├── include │ ├── .gitignore │ └── qdldl.h │ ├── src │ └── qdldl.c │ └── tests │ ├── CMakeLists.txt │ ├── minunit.h │ ├── qdldl_tester.c │ ├── test_basic.h │ ├── test_identity.h │ ├── test_osqp_kkt.h │ ├── test_rank_deficient.h │ ├── test_singleton.h │ ├── test_sym_structure.h │ ├── test_tril_structure.h │ ├── test_two_by_two.h │ └── test_zero_on_diag.h ├── src ├── cone.c ├── equilibration.c ├── input_validation.c ├── kkt.c ├── qoco_api.c ├── qoco_linalg.c ├── qoco_status.c ├── qoco_utils.c ├── timer_linux.c ├── timer_macos.c └── timer_windows.c └── tests ├── CMakeLists.txt ├── generate_all_problem_data.py ├── main.cpp ├── ocp ├── generate_problem_data.py ├── lcvx_bad_scaling_test.cpp ├── lcvx_test.cpp └── pdg_test.cpp ├── portfolio ├── generate_problem_data.py └── markowitz_test.cpp ├── simple_tests └── missing_constraints_test.cpp ├── unit_tests ├── cone_test.cpp ├── input_validation_test.cpp └── linalg_test.cpp └── utils ├── codegen_functions.py ├── cvxpy_to_qoco.py ├── test_utils.cpp └── test_utils.h /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | .vscode/ 3 | hide/ 4 | __pycache__/ 5 | *_data.h 6 | qoco_config.h -------------------------------------------------------------------------------- /.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/.nojekyll -------------------------------------------------------------------------------- /CMakeLists.txt.in: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.1) 2 | 3 | project(googletest-download NONE) 4 | 5 | include(ExternalProject) 6 | ExternalProject_Add(googletest 7 | GIT_REPOSITORY https://github.com/google/googletest.git 8 | GIT_TAG v1.16.0 9 | SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src" 10 | BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build" 11 | CONFIGURE_COMMAND "" 12 | BUILD_COMMAND "" 13 | INSTALL_COMMAND "" 14 | TEST_COMMAND "" 15 | ) -------------------------------------------------------------------------------- /ci/run_tests.sh: -------------------------------------------------------------------------------- 1 | export CXX=/usr/local/bin/clang++ && export CC=/usr/local/bin/clang && cd build && cmake -DQOCO_BUILD_TYPE:STR=Release -DENABLE_TESTING:BOOL=True .. && make && ctest --verbose && cd .. -------------------------------------------------------------------------------- /configure/qoco_config.h.in: -------------------------------------------------------------------------------- 1 | #ifndef QOCO_CONFIG_H 2 | #define QOCO_CONFIG_H 3 | 4 | // Version Macros 5 | #define QOCO_VERSION_MAJOR @QOCO_VERSION_MAJOR@ 6 | #define QOCO_VERSION_MINOR @QOCO_VERSION_MINOR@ 7 | #define QOCO_VERSION_PATCH @QOCO_VERSION_PATCH@ 8 | #define QOCO_VERSION "@QOCO_VERSION@" 9 | 10 | // OS Macros 11 | #cmakedefine IS_LINUX 12 | #cmakedefine IS_MACOS 13 | #cmakedefine IS_WINDOWS 14 | 15 | #endif // #ifndef QOCO_CONFIG_H 16 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS = 7 | SPHINXBUILD = sphinx-build 8 | SPHINXPROJ = qoco 9 | SOURCEDIR = . 10 | BUILDDIR = _build 11 | HTMLCOPYDIR = _build/html 12 | 13 | # Put it first so that "make" without argument is like "make help". 14 | help: 15 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 16 | 17 | .PHONY: help Makefile 18 | 19 | # Catch-all target: route all unknown targets to Sphinx using the new 20 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 21 | %: Makefile 22 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 23 | ifneq ("$(HTMLCOPYDIR)", "$(BUILDDIR)/html") 24 | cp -rT $(BUILDDIR)/html $(HTMLCOPYDIR) 25 | endif -------------------------------------------------------------------------------- /docs/_build/doctrees/api/C.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/C.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/api/exit.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/exit.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/api/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/index.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/api/interfaces.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/interfaces.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/api/matlab.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/matlab.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/api/python.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/python.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/api/settings.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/api/settings.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/codegen/api.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/codegen/api.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/codegen/build.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/codegen/build.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/codegen/calling.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/codegen/calling.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/codegen/generate.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/codegen/generate.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/codegen/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/codegen/index.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/codegen/installation.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/codegen/installation.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/contributing/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/contributing/index.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/environment.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/environment.pickle -------------------------------------------------------------------------------- /docs/_build/doctrees/examples/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/examples/index.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/examples/lcvx.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/examples/lcvx.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/examples/simple_example.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/examples/simple_example.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/index.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/install/C.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/install/C.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/install/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/install/index.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/install/matlab.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/install/matlab.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/install/python.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/install/python.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/parsers/cvxpy.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/parsers/cvxpy.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/parsers/cvxpygen.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/parsers/cvxpygen.doctree -------------------------------------------------------------------------------- /docs/_build/doctrees/parsers/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/doctrees/parsers/index.doctree -------------------------------------------------------------------------------- /docs/_build/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: ea7712eb58363bf09aadcca5f6a07824 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/_build/html/.buildinfo.bak: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 521a8cf45f8b4be3787e0ce067e0737a 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/_build/html/_images/qoco-logo.JPEG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_images/qoco-logo.JPEG -------------------------------------------------------------------------------- /docs/_build/html/_sources/api/C.rst.txt: -------------------------------------------------------------------------------- 1 | .. _c_interface: 2 | 3 | .. toctree:: 4 | :maxdepth: 0 5 | :glob: 6 | :hidden: 7 | 8 | C/C++ 9 | ===== 10 | 11 | .. _C_main_API: 12 | 13 | Main solver API 14 | --------------- 15 | 16 | .. doxygenfunction:: qoco_setup 17 | .. doxygenfunction:: qoco_solve 18 | .. doxygenfunction:: qoco_cleanup 19 | 20 | Helper functions 21 | ---------------- 22 | .. doxygenfunction:: qoco_set_csc 23 | .. doxygenfunction:: set_default_settings 24 | .. doxygenfunction:: qoco_update_settings 25 | .. doxygenfunction:: update_vector_data 26 | .. doxygenfunction:: update_matrix_data 27 | 28 | QOCO data types 29 | --------------- 30 | .. doxygenstruct:: QOCOSolver 31 | :members: 32 | .. doxygenstruct:: QOCOSettings 33 | :members: 34 | .. doxygenstruct:: QOCOWorkspace 35 | :members: 36 | .. doxygenstruct:: QOCOKKT 37 | :members: 38 | .. doxygenstruct:: QOCOCscMatrix 39 | :members: 40 | .. doxygenstruct:: QOCOSolution 41 | :members: 42 | 43 | 44 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/api/exit.rst.txt: -------------------------------------------------------------------------------- 1 | .. _exit_flags: 2 | 3 | Exit flags 4 | ----------- 5 | 6 | QOCO's exit flags are defined in the :code:`include/enums.h` file. 7 | 8 | +------------------------------+-----------------------------------+-------+ 9 | | Status | Status Code | Value | 10 | +==============================+===================================+=======+ 11 | | Solver hasn't been called | :code:`QOCO_UNSOLVED` | 0 | 12 | +------------------------------+-----------------------------------+-------+ 13 | | Solved to desired accuracy | :code:`QOCO_SOLVED` | 1 | 14 | +------------------------------+-----------------------------------+-------+ 15 | | Solved to low accuracy | :code:`QOCO_SOLVED_INACCURATE` | 2 | 16 | +------------------------------+-----------------------------------+-------+ 17 | | Numerical error or infeasible| :code:`QOCO_NUMERICAL_ERROR` | 3 | 18 | +------------------------------+-----------------------------------+-------+ 19 | | Iteration limit reached | :code:`QOCO_MAX_ITER` | 4 | 20 | +------------------------------+-----------------------------------+-------+ -------------------------------------------------------------------------------- /docs/_build/html/_sources/api/index.rst.txt: -------------------------------------------------------------------------------- 1 | API 2 | ========== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :hidden: 7 | 8 | interfaces.rst 9 | settings.rst 10 | exit.rst 11 | 12 | This section describes the various :ref:`interfaces ` to QOCO in different languages and describes the solver :ref:`settings ` which can be changed, and the possible :ref:`exit flags ` the solver returns. 13 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/codegen/build.rst.txt: -------------------------------------------------------------------------------- 1 | .. _building: 2 | 3 | Building Custom Solver 4 | ---------------------- 5 | #. Change directory into custom solver. 6 | .. code:: bash 7 | 8 | cd qoco_custom 9 | 10 | #. Make build directory and change directory. 11 | .. code:: bash 12 | 13 | mkdir build 14 | cd build 15 | 16 | #. Compile sources. 17 | .. code:: bash 18 | 19 | cmake .. && make 20 | 21 | You should now see two binaries: :code:`libqoco_custom.so` which is the custom solver library, and :code:`runtest` which solves a sample SOCP with the custom solver. 22 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/codegen/generate.rst.txt: -------------------------------------------------------------------------------- 1 | Generating Custom Solver 2 | ------------------------ 3 | .. _generate: 4 | 5 | Below is code that will generate a custom solver for the problem family defined in :ref:`simple example `. 6 | 7 | .. code:: python 8 | 9 | import qocogen 10 | import numpy as np 11 | from scipy import sparse 12 | 13 | # Define problem data 14 | P = sparse.diags([2, 2, 2, 0], 0).tocsc() 15 | 16 | c = np.array([0, 0, 0, 1]) 17 | G = -sparse.identity(4).tocsc() 18 | h = np.zeros(4) 19 | A = sparse.csc_matrix([[1, 1, 0, 0], [0, 1, 1, 0]]) 20 | b = np.array([1, 1]) 21 | 22 | l = 1 23 | n = 4 24 | m = 4 25 | p = 2 26 | nsoc = 1 27 | q = np.array([3]) 28 | 29 | # Generate custom solver in this directory with name qoco_custom. 30 | qocogen.generate_solver(n, m, p, P, c, A, b, G, h, l, nsoc, q, ".", "qoco_custom") 31 | 32 | You should now find your custom solver in the :code:`qoco_custom` directory within the current directory along with a file titled :code:`runtest.c` which demonstrates how to call :code:`qoco_custom` to solve the problem instance specified when generating the solver. 33 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/codegen/installation.rst.txt: -------------------------------------------------------------------------------- 1 | Installation 2 | ============== 3 | 4 | Pip 5 | ---- 6 | QOCOGEN is on PyPI and can be installed as follows 7 | 8 | .. code:: bash 9 | 10 | pip install qocogen 11 | 12 | 13 | Build from Source 14 | ----------------- 15 | 16 | QOCOGEN can also be built from source as follows 17 | 18 | .. code:: bash 19 | 20 | git clone https://github.com/qoco-org/qocogen 21 | cd qocogen 22 | pip install . -------------------------------------------------------------------------------- /docs/_build/html/_sources/contributing/index.rst.txt: -------------------------------------------------------------------------------- 1 | Contributing 2 | ============ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :hidden: 7 | 8 | We are very open to any contribution including new features, bug fixes, new interfaces for different languages, and documentation improvements. File any issues, bug reports, or feature requests `here `_. 9 | 10 | If you have any questions, comments, or any feedback, please email us at `govindchari1@gmail.com `_. -------------------------------------------------------------------------------- /docs/_build/html/_sources/examples/index.rst.txt: -------------------------------------------------------------------------------- 1 | .. _examples: 2 | 3 | Examples 4 | =============== 5 | 6 | Here are some examples of calling QOCO from different languages. 7 | 8 | :ref:`Simple Example ` 9 | 10 | :ref:`Lossless Convexification ` 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | :hidden: 15 | 16 | simple_example.rst 17 | lcvx.rst -------------------------------------------------------------------------------- /docs/_build/html/_sources/install/index.rst.txt: -------------------------------------------------------------------------------- 1 | .. _install: 2 | 3 | Get Started 4 | =============== 5 | 6 | To install QOCO refer to the installation guides below for different languages. 7 | 8 | :ref:`C/C++ ` 9 | 10 | :ref:`Python ` 11 | 12 | :ref:`Matlab ` 13 | 14 | .. toctree:: 15 | :maxdepth: 2 16 | :hidden: 17 | 18 | C.rst 19 | python.rst 20 | matlab.rst -------------------------------------------------------------------------------- /docs/_build/html/_sources/install/matlab.rst.txt: -------------------------------------------------------------------------------- 1 | .. _matlab_installation: 2 | 3 | Matlab 4 | ============== 5 | 6 | Build from Source 7 | ----------------- 8 | 9 | The Matlab mex wrapper for QOCO can be built from source as follows. 10 | 11 | #. Clone the repository 12 | .. code:: bash 13 | 14 | git clone --recursive https://github.com/qoco-org/qoco-matlab 15 | 16 | #. Open up Matlab in the :code:`qoco-matlab` directory and run the following in the Matlab terminal 17 | .. code:: bash 18 | 19 | make_qoco 20 | 21 | #. Test your installation by running the following in the Matlab terminal 22 | .. code:: bash 23 | 24 | run_qoco_tests 25 | 26 | #. Add :code:`qoco-matlab` to your Matlab path by executing the following in the Matlab terminal 27 | .. code:: bash 28 | 29 | addpath('.') 30 | savepath 31 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/install/python.rst.txt: -------------------------------------------------------------------------------- 1 | .. _python_installation: 2 | 3 | Python 4 | ============== 5 | 6 | Pip 7 | ---- 8 | QOCO is on PyPI and can be installed as follows 9 | 10 | .. code:: bash 11 | 12 | pip install qoco 13 | 14 | 15 | Build from Source 16 | ----------------- 17 | 18 | The Python wrapper for QOCO can also be built from source as follows 19 | 20 | .. code:: bash 21 | 22 | git clone https://github.com/qoco-org/qoco-python 23 | cd qoco-python 24 | pip install . -------------------------------------------------------------------------------- /docs/_build/html/_sources/parsers/cvxpy.rst.txt: -------------------------------------------------------------------------------- 1 | CVXPY 2 | ===== 3 | 4 | QOCO can be called from `CVXPY `_ from version 1.6.4 onwards. 5 | 6 | After :ref:`installing QOCO ` and defining your problem in CVXPY, QOCO can be called as follows 7 | 8 | .. code:: python 9 | 10 | problem.solve(solver='QOCO', max_iters=100) 11 | 12 | 13 | where we set the :code:`max_iters` option to :code:`100`. For a full list of settings that can be changed, refer to :ref:`settings `. 14 | 15 | For some example problems that can be solved with CVXPY refer to `examples `_. To solve these problems with QOCO, add the keyword argument :code:`solver='QOCO'` to the :code:`problem.solve()` function. 16 | 17 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/parsers/cvxpygen.rst.txt: -------------------------------------------------------------------------------- 1 | CVXPYgen 2 | ======== 3 | 4 | QOCOGEN can be called from `CVXPYgen `_ from version 0.5.0 onwards to generate a custom solver and then to call the custom solver from Python. 5 | 6 | After :ref:`installing QOCO ` and defining your problem in CVXPY, QOCOGEN can be called to generate a custom solver using CVXPYgen as follows 7 | 8 | .. code:: python 9 | 10 | from cvxpygen import cpg 11 | 12 | # problem is a CVXPY problem 13 | cpg.generate_code(problem, code_dir='solver_directory', solver='QOCO') 14 | 15 | 16 | To call the custom solver through CVXPYgen, run 17 | 18 | .. code:: python 19 | 20 | from solver_directory.cpg_solver import cpg_solve 21 | problem.register_solve('CPG', cpg_solve) 22 | problem.solve(method='CPG', max_iters=100) 23 | 24 | where we set the :code:`max_iters` option to :code:`100`. For a full list of settings that can be changed, refer to :ref:`settings `. 25 | 26 | For an example of setting up and solving a problem using QOCO through CVXPY and QOCOGEN through CVXPYgen, see :ref:`settings `. 27 | -------------------------------------------------------------------------------- /docs/_build/html/_sources/parsers/index.rst.txt: -------------------------------------------------------------------------------- 1 | Parsers 2 | ========== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | cvxpy.rst 9 | cvxpygen.rst -------------------------------------------------------------------------------- /docs/_build/html/_static/css/custom.css: -------------------------------------------------------------------------------- 1 | .wy-table-responsive table td, .wy-table-responsive table th { 2 | white-space: inherit; 3 | } 4 | -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-bold-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-bold-italic.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-bold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-bold.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-bold.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-normal-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-normal-italic.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-normal-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-normal.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-normal.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/css/fonts/lato-normal.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/css/fonts/lato-normal.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | const DOCUMENTATION_OPTIONS = { 2 | VERSION: '', 3 | LANGUAGE: 'en', 4 | COLLAPSE_INDEX: false, 5 | BUILDER: 'html', 6 | FILE_SUFFIX: '.html', 7 | LINK_SUFFIX: '.html', 8 | HAS_SOURCE: true, 9 | SOURCELINK_SUFFIX: '.txt', 10 | NAVIGATION_WITH_KEYS: false, 11 | SHOW_SEARCH_SUMMARY: true, 12 | ENABLE_SEARCH_SHORTCUTS: true, 13 | }; -------------------------------------------------------------------------------- /docs/_build/html/_static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/favicon.ico -------------------------------------------------------------------------------- /docs/_build/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/file.png -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bold.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bold.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bold.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bold.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-italic.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-italic.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-italic.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-italic.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-italic.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-regular.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-regular.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-regular.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/Lato/lato-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/Lato/lato-regular.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff -------------------------------------------------------------------------------- /docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 -------------------------------------------------------------------------------- /docs/_build/html/_static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/img/favicon.ico -------------------------------------------------------------------------------- /docs/_build/html/_static/img/qoco-logo-no-box.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/img/qoco-logo-no-box.jpeg -------------------------------------------------------------------------------- /docs/_build/html/_static/img/qoco-logo.JPEG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/img/qoco-logo.JPEG -------------------------------------------------------------------------------- /docs/_build/html/_static/js/badge_only.js: -------------------------------------------------------------------------------- 1 | !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); -------------------------------------------------------------------------------- /docs/_build/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/minus.png -------------------------------------------------------------------------------- /docs/_build/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/plus.png -------------------------------------------------------------------------------- /docs/_build/html/_static/qoco-logo-no-box.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/_static/qoco-logo-no-box.jpeg -------------------------------------------------------------------------------- /docs/_build/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_build/html/objects.inv -------------------------------------------------------------------------------- /docs/_static/css/custom.css: -------------------------------------------------------------------------------- 1 | .wy-table-responsive table td, .wy-table-responsive table th { 2 | white-space: inherit; 3 | } 4 | -------------------------------------------------------------------------------- /docs/_static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_static/img/favicon.ico -------------------------------------------------------------------------------- /docs/_static/img/qoco-logo-no-box.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_static/img/qoco-logo-no-box.jpeg -------------------------------------------------------------------------------- /docs/_static/img/qoco-logo.JPEG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/_static/img/qoco-logo.JPEG -------------------------------------------------------------------------------- /docs/_templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | {% block footer %} {{ super() }} 3 | 4 | 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /docs/api/C.rst: -------------------------------------------------------------------------------- 1 | .. _c_interface: 2 | 3 | .. toctree:: 4 | :maxdepth: 0 5 | :glob: 6 | :hidden: 7 | 8 | C/C++ 9 | ===== 10 | 11 | .. _C_main_API: 12 | 13 | Main solver API 14 | --------------- 15 | 16 | .. doxygenfunction:: qoco_setup 17 | .. doxygenfunction:: qoco_solve 18 | .. doxygenfunction:: qoco_cleanup 19 | 20 | Helper functions 21 | ---------------- 22 | .. doxygenfunction:: qoco_set_csc 23 | .. doxygenfunction:: set_default_settings 24 | .. doxygenfunction:: qoco_update_settings 25 | .. doxygenfunction:: update_vector_data 26 | .. doxygenfunction:: update_matrix_data 27 | 28 | QOCO data types 29 | --------------- 30 | .. doxygenstruct:: QOCOSolver 31 | :members: 32 | .. doxygenstruct:: QOCOSettings 33 | :members: 34 | .. doxygenstruct:: QOCOWorkspace 35 | :members: 36 | .. doxygenstruct:: QOCOKKT 37 | :members: 38 | .. doxygenstruct:: QOCOCscMatrix 39 | :members: 40 | .. doxygenstruct:: QOCOSolution 41 | :members: 42 | 43 | 44 | -------------------------------------------------------------------------------- /docs/api/exit.rst: -------------------------------------------------------------------------------- 1 | .. _exit_flags: 2 | 3 | Exit flags 4 | ----------- 5 | 6 | QOCO's exit flags are defined in the :code:`include/enums.h` file. 7 | 8 | +------------------------------+-----------------------------------+-------+ 9 | | Status | Status Code | Value | 10 | +==============================+===================================+=======+ 11 | | Solver hasn't been called | :code:`QOCO_UNSOLVED` | 0 | 12 | +------------------------------+-----------------------------------+-------+ 13 | | Solved to desired accuracy | :code:`QOCO_SOLVED` | 1 | 14 | +------------------------------+-----------------------------------+-------+ 15 | | Solved to low accuracy | :code:`QOCO_SOLVED_INACCURATE` | 2 | 16 | +------------------------------+-----------------------------------+-------+ 17 | | Numerical error or infeasible| :code:`QOCO_NUMERICAL_ERROR` | 3 | 18 | +------------------------------+-----------------------------------+-------+ 19 | | Iteration limit reached | :code:`QOCO_MAX_ITER` | 4 | 20 | +------------------------------+-----------------------------------+-------+ -------------------------------------------------------------------------------- /docs/api/index.rst: -------------------------------------------------------------------------------- 1 | API 2 | ========== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :hidden: 7 | 8 | interfaces.rst 9 | settings.rst 10 | exit.rst 11 | 12 | This section describes the various :ref:`interfaces ` to QOCO in different languages and describes the solver :ref:`settings ` which can be changed, and the possible :ref:`exit flags ` the solver returns. 13 | -------------------------------------------------------------------------------- /docs/codegen/build.rst: -------------------------------------------------------------------------------- 1 | .. _building: 2 | 3 | Building Custom Solver 4 | ---------------------- 5 | #. Change directory into custom solver. 6 | .. code:: bash 7 | 8 | cd qoco_custom 9 | 10 | #. Make build directory and change directory. 11 | .. code:: bash 12 | 13 | mkdir build 14 | cd build 15 | 16 | #. Compile sources. 17 | .. code:: bash 18 | 19 | cmake .. && make 20 | 21 | You should now see two binaries: :code:`libqoco_custom.so` which is the custom solver library, and :code:`runtest` which solves a sample SOCP with the custom solver. 22 | -------------------------------------------------------------------------------- /docs/codegen/generate.rst: -------------------------------------------------------------------------------- 1 | Generating Custom Solver 2 | ------------------------ 3 | .. _generate: 4 | 5 | Below is code that will generate a custom solver for the problem family defined in :ref:`simple example `. 6 | 7 | .. code:: python 8 | 9 | import qocogen 10 | import numpy as np 11 | from scipy import sparse 12 | 13 | # Define problem data 14 | P = sparse.diags([2, 2, 2, 0], 0).tocsc() 15 | 16 | c = np.array([0, 0, 0, 1]) 17 | G = -sparse.identity(4).tocsc() 18 | h = np.zeros(4) 19 | A = sparse.csc_matrix([[1, 1, 0, 0], [0, 1, 1, 0]]) 20 | b = np.array([1, 1]) 21 | 22 | l = 1 23 | n = 4 24 | m = 4 25 | p = 2 26 | nsoc = 1 27 | q = np.array([3]) 28 | 29 | # Generate custom solver in this directory with name qoco_custom. 30 | qocogen.generate_solver(n, m, p, P, c, A, b, G, h, l, nsoc, q, ".", "qoco_custom") 31 | 32 | You should now find your custom solver in the :code:`qoco_custom` directory within the current directory along with a file titled :code:`runtest.c` which demonstrates how to call :code:`qoco_custom` to solve the problem instance specified when generating the solver. 33 | -------------------------------------------------------------------------------- /docs/codegen/installation.rst: -------------------------------------------------------------------------------- 1 | Installation 2 | ============== 3 | 4 | Pip 5 | ---- 6 | QOCOGEN is on PyPI and can be installed as follows 7 | 8 | .. code:: bash 9 | 10 | pip install qocogen 11 | 12 | 13 | Build from Source 14 | ----------------- 15 | 16 | QOCOGEN can also be built from source as follows 17 | 18 | .. code:: bash 19 | 20 | git clone https://github.com/qoco-org/qocogen 21 | cd qocogen 22 | pip install . -------------------------------------------------------------------------------- /docs/contributing/index.rst: -------------------------------------------------------------------------------- 1 | Contributing 2 | ============ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :hidden: 7 | 8 | We are very open to any contribution including new features, bug fixes, new interfaces for different languages, and documentation improvements. File any issues, bug reports, or feature requests `here `_. 9 | 10 | If you have any questions, comments, or any feedback, please email us at `govindchari1@gmail.com `_. -------------------------------------------------------------------------------- /docs/doxygen_out/xml/combine.xslt: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/doxygen_out/xml/dir_68267d1309a1af8e8297ef4c3efbcdba.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /home/govind/Desktop/git/qoco/src 5 | cone.c 6 | equilibration.c 7 | input_validation.c 8 | kkt.c 9 | linalg.c 10 | qoco_api.c 11 | qoco_error.c 12 | timer.c 13 | utils.c 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/doxygen_out/xml/xml.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/examples/index.rst: -------------------------------------------------------------------------------- 1 | .. _examples: 2 | 3 | Examples 4 | =============== 5 | 6 | Here are some examples of calling QOCO from different languages. 7 | 8 | :ref:`Simple Example ` 9 | 10 | :ref:`Lossless Convexification ` 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | :hidden: 15 | 16 | simple_example.rst 17 | lcvx.rst -------------------------------------------------------------------------------- /docs/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/bc_s.png -------------------------------------------------------------------------------- /docs/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/bdwn.png -------------------------------------------------------------------------------- /docs/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/closed.png -------------------------------------------------------------------------------- /docs/html/cone_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/html/cone_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 1c0e2736eb0b5ec8b6603cde12fa314e -------------------------------------------------------------------------------- /docs/html/cone_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/cone_8c__incl.png -------------------------------------------------------------------------------- /docs/html/cone_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/cone_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 7a128993739dea016ee06b734abdb62b -------------------------------------------------------------------------------- /docs/html/cone_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/cone_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/cone_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/html/cone_8h__incl.md5: -------------------------------------------------------------------------------- 1 | d08d5c1d7c155bd7a8f1ff7bc7aa07c9 -------------------------------------------------------------------------------- /docs/html/cone_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/cone_8h__incl.png -------------------------------------------------------------------------------- /docs/html/definitions_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 93d4edd583968b0e465648074df9e1b4 -------------------------------------------------------------------------------- /docs/html/definitions_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/definitions_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/definitions_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/html/definitions_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 6b8c2916931e44878718294908e5e268 -------------------------------------------------------------------------------- /docs/html/definitions_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/definitions_8h__incl.png -------------------------------------------------------------------------------- /docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5: -------------------------------------------------------------------------------- 1 | 5851137f5502eae57e6c98e22f15a310 -------------------------------------------------------------------------------- /docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png -------------------------------------------------------------------------------- /docs/html/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/doc.png -------------------------------------------------------------------------------- /docs/html/enums_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/html/enums_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 3345d88efbc2dd17cd242591e76cce5a -------------------------------------------------------------------------------- /docs/html/enums_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/enums_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/equilibration_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docs/html/equilibration_8c__incl.md5: -------------------------------------------------------------------------------- 1 | e23b8088eb56c6a1f2a0a26ef95a478e -------------------------------------------------------------------------------- /docs/html/equilibration_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/equilibration_8c__incl.png -------------------------------------------------------------------------------- /docs/html/equilibration_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/html/equilibration_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | d7be5d460d15bbf08d886631de4d581d -------------------------------------------------------------------------------- /docs/html/equilibration_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/equilibration_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/equilibration_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/html/equilibration_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 238b2e97981e18a04aeed9ee865585f5 -------------------------------------------------------------------------------- /docs/html/equilibration_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/equilibration_8h__incl.png -------------------------------------------------------------------------------- /docs/html/folderclosed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/folderclosed.png -------------------------------------------------------------------------------- /docs/html/folderopen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/folderopen.png -------------------------------------------------------------------------------- /docs/html/graph_legend.md5: -------------------------------------------------------------------------------- 1 | f51bf6e9a10430aafef59831b08dcbfe -------------------------------------------------------------------------------- /docs/html/graph_legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/graph_legend.png -------------------------------------------------------------------------------- /docs/html/input__validation_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/html/input__validation_8c__incl.md5: -------------------------------------------------------------------------------- 1 | fb8c2b66fa726cb0e671bfcd159da314 -------------------------------------------------------------------------------- /docs/html/input__validation_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/input__validation_8c__incl.png -------------------------------------------------------------------------------- /docs/html/input__validation_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/html/input__validation_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | f4c9f17602adccc7e735a446b2230c16 -------------------------------------------------------------------------------- /docs/html/input__validation_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/input__validation_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/input__validation_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/html/input__validation_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 1babeeeb3efe4f2d32742d5307083e02 -------------------------------------------------------------------------------- /docs/html/input__validation_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/input__validation_8h__incl.png -------------------------------------------------------------------------------- /docs/html/kkt_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/html/kkt_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 61a47878bfacdcc417ce5eab10e226b5 -------------------------------------------------------------------------------- /docs/html/kkt_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/kkt_8c__incl.png -------------------------------------------------------------------------------- /docs/html/kkt_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/html/kkt_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 66b7be0656fa3d5b40f06c690565aef6 -------------------------------------------------------------------------------- /docs/html/kkt_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/kkt_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/kkt_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/html/kkt_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 4ee361e29ab65d76f37192bd41cf0fc6 -------------------------------------------------------------------------------- /docs/html/kkt_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/kkt_8h__incl.png -------------------------------------------------------------------------------- /docs/html/linalg_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/html/linalg_8c__incl.md5: -------------------------------------------------------------------------------- 1 | bcfd486929b0672009ac7829b20e5dd9 -------------------------------------------------------------------------------- /docs/html/linalg_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/linalg_8c__incl.png -------------------------------------------------------------------------------- /docs/html/linalg_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/html/linalg_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | b427c794a82fa57dd9d919d4bdbb672a -------------------------------------------------------------------------------- /docs/html/linalg_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/linalg_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/linalg_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/linalg_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 5186e4cdb5ea57e6b09b6dc9ff64680a -------------------------------------------------------------------------------- /docs/html/linalg_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/linalg_8h__incl.png -------------------------------------------------------------------------------- /docs/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/nav_f.png -------------------------------------------------------------------------------- /docs/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/nav_g.png -------------------------------------------------------------------------------- /docs/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/nav_h.png -------------------------------------------------------------------------------- /docs/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/open.png -------------------------------------------------------------------------------- /docs/html/qoco_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 9c9e2c402ae728c4ef95c8001fa91420 -------------------------------------------------------------------------------- /docs/html/qoco_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco_8h__incl.png -------------------------------------------------------------------------------- /docs/html/qoco__api_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 09e0378c4dfad8698c39cba5f05d848b -------------------------------------------------------------------------------- /docs/html/qoco__api_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco__api_8c__incl.png -------------------------------------------------------------------------------- /docs/html/qoco__api_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/html/qoco__api_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | e8f8baa1c55cbf24b9ed05e14df37cea -------------------------------------------------------------------------------- /docs/html/qoco__api_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco__api_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/qoco__api_8h__incl.md5: -------------------------------------------------------------------------------- 1 | a1a68bcd2db03e618feb331159049383 -------------------------------------------------------------------------------- /docs/html/qoco__api_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco__api_8h__incl.png -------------------------------------------------------------------------------- /docs/html/qoco__error_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/html/qoco__error_8c__incl.md5: -------------------------------------------------------------------------------- 1 | d7e03a199961ec71ea32413d6bc57344 -------------------------------------------------------------------------------- /docs/html/qoco__error_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco__error_8c__incl.png -------------------------------------------------------------------------------- /docs/html/qoco__error_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/qoco__error_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 74bf30b13ab92c8d29e232190867057a -------------------------------------------------------------------------------- /docs/html/qoco__error_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco__error_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/qoco__error_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/qoco__error_8h__incl.md5: -------------------------------------------------------------------------------- 1 | f0fa5fce3938e161ab48ed5dc3dd3e77 -------------------------------------------------------------------------------- /docs/html/qoco__error_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/qoco__error_8h__incl.png -------------------------------------------------------------------------------- /docs/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['a_0',['a',['../structQOCOWorkspace.html#a04dfe46d9df29667a1241255569456d0',1,'QOCOWorkspace']]], 4 | ['a_1',['A',['../structQOCOProblemData.html#aa9cbb95a483b65f3e1155596cb3eab5d',1,'QOCOProblemData']]], 5 | ['abstol_2',['abstol',['../structQOCOSettings.html#a7d62b01403b7572ee0d1ebaaab45c9d0',1,'QOCOSettings']]], 6 | ['abstol_5finacc_3',['abstol_inacc',['../structQOCOSettings.html#a92cdec007c0b9a4392d3036e97012492',1,'QOCOSettings']]], 7 | ['allocate_5fkkt_4',['allocate_kkt',['../kkt_8h.html#a32e6ba8ee8266d6576a302fd28485668',1,'allocate_kkt(QOCOWorkspace *work): kkt.c'],['../kkt_8c.html#a32e6ba8ee8266d6576a302fd28485668',1,'allocate_kkt(QOCOWorkspace *work): kkt.c']]], 8 | ['at_5',['At',['../structQOCOProblemData.html#a57cf5c3774dadfb733a2bc1e51e424e8',1,'QOCOProblemData']]], 9 | ['atokkt_6',['AtoKKT',['../structQOCOKKT.html#abf6e6214c517d4bc4623d86caedac76d',1,'QOCOKKT']]], 10 | ['axpy_7',['axpy',['../linalg_8h.html#a83d0613ee15321b01a503789bab214dc',1,'axpy(const QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOFloat a, QOCOInt n): linalg.c'],['../linalg_8c.html#a83d0613ee15321b01a503789bab214dc',1,'axpy(const QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOFloat a, QOCOInt n): linalg.c']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b_8',['b',['../structQOCOProblemData.html#aaee73365c1f1cbe460f1bb8720c3c123',1,'QOCOProblemData']]], 4 | ['bisect_5fiters_9',['bisect_iters',['../structQOCOSettings.html#a13065594e57d4091033243b12c5bfd5c',1,'QOCOSettings']]], 5 | ['bisection_5fsearch_10',['bisection_search',['../cone_8h.html#ac90e9e955d185003e55bdc63bf25b3a1',1,'bisection_search(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c'],['../cone_8c.html#ac90e9e955d185003e55bdc63bf25b3a1',1,'bisection_search(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c']]], 6 | ['bring2cone_11',['bring2cone',['../cone_8h.html#aeeaf7177391c69104dff81ff350a6fd4',1,'bring2cone(QOCOFloat *u, QOCOProblemData *data): cone.c'],['../cone_8c.html#aeeaf7177391c69104dff81ff350a6fd4',1,'bring2cone(QOCOFloat *u, QOCOProblemData *data): cone.c']]], 7 | ['bwork_12',['bwork',['../structQOCOKKT.html#a16a43a93af6629be0dcd53d2e3b14dc4',1,'QOCOKKT']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['timer_2eh_197',['timer.h',['../timer_8h.html',1,'']]], 4 | ['timer_5flinux_2ec_198',['timer_linux.c',['../timer__linux_8c.html',1,'']]], 5 | ['timer_5fmacos_2ec_199',['timer_macos.c',['../timer__macos_8c.html',1,'']]], 6 | ['todo_20list_200',['Todo List',['../todo.html',1,'']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['verbose_212',['verbose',['../structQOCOSettings.html#a1a566c8aa840eaaf69e3070060a0ab5a',1,'QOCOSettings']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['w_213',['W',['../structQOCOWorkspace.html#a090e9a2bda01d9afaeb6d723012c0c0b',1,'QOCOWorkspace']]], 4 | ['wfull_214',['Wfull',['../structQOCOWorkspace.html#ac6167675f75b92721d71e26f7438a29e',1,'QOCOWorkspace']]], 5 | ['winv_215',['Winv',['../structQOCOWorkspace.html#a6967ce11381cadffa62570866eee2c09',1,'QOCOWorkspace']]], 6 | ['winvfull_216',['Winvfull',['../structQOCOWorkspace.html#a29bea851e0fff76a4173b777eb263d41',1,'QOCOWorkspace']]], 7 | ['wnnz_217',['Wnnz',['../structQOCOWorkspace.html#aa43b26d800f4371c0ddf16d22978b94c',1,'QOCOWorkspace']]], 8 | ['wnnzfull_218',['Wnnzfull',['../structQOCOWorkspace.html#a266fcd28cf2cfd16369a1f3e7f55bc38',1,'QOCOWorkspace']]], 9 | ['work_219',['work',['../structQOCOSolver.html#a1fff4710076ad15378db81e9fdc83fb3',1,'QOCOSolver']]], 10 | ['wtw_220',['WtW',['../structQOCOWorkspace.html#a058dfbd7bf8f83c61e81d9985ec1a0ff',1,'QOCOWorkspace']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/all_16.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['x_221',['x',['../structQOCOCscMatrix.html#a4ea542f0db4ad47d3a66b544df108f10',1,'QOCOCscMatrix::x()'],['../structQOCOWorkspace.html#aa41f5e07236e756b74cc5a8a19645917',1,'QOCOWorkspace::x()'],['../structQOCOSolution.html#a989c1156c8a3019bfd101141d067b27f',1,'QOCOSolution::x()']]], 4 | ['xbuff_222',['xbuff',['../structQOCOWorkspace.html#aa134684318c23648ab32df1b09547b1f',1,'QOCOWorkspace']]], 5 | ['xyz_223',['xyz',['../structQOCOKKT.html#adbc8ffce9207cfc89d657f46fd6959ab',1,'QOCOKKT']]], 6 | ['xyzbuff1_224',['xyzbuff1',['../structQOCOKKT.html#a37864381633654817dc0fcd3b34ce981',1,'QOCOKKT']]], 7 | ['xyzbuff2_225',['xyzbuff2',['../structQOCOKKT.html#aa3928f751b6f70a295f6b39bac199a4b',1,'QOCOKKT']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_17.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['y_226',['y',['../structQOCOWorkspace.html#ac41c22bfe9821570218e52e527b90b9e',1,'QOCOWorkspace::y()'],['../structQOCOSolution.html#a27cf10ad9a7474d9fd6b418110fc904f',1,'QOCOSolution::y()']]], 4 | ['ybuff_227',['ybuff',['../structQOCOWorkspace.html#a92d74672f162a42197b232bf07c4c3c7',1,'QOCOWorkspace']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_18.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_228',['z',['../structQOCOWorkspace.html#a6ebb2d02f31c2a1866076b4165f07a54',1,'QOCOWorkspace::z()'],['../structQOCOSolution.html#a44f6e311adc9af5956dc65c9b6722957',1,'QOCOSolution::z()']]], 4 | ['zbar_229',['zbar',['../structQOCOWorkspace.html#a2f5ae5af745301de6b8bcaa455279e80',1,'QOCOWorkspace']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['d_37',['D',['../structQOCOKKT.html#ab39972aa84945bcdad126a612dbcd036',1,'QOCOKKT']]], 4 | ['data_38',['data',['../structQOCOWorkspace.html#af43c13687a7775620c8f817a076227a2',1,'QOCOWorkspace']]], 5 | ['definitions_2eh_39',['definitions.h',['../definitions_8h.html',1,'']]], 6 | ['delta_40',['delta',['../structQOCOKKT.html#a161652b18272e8ad4b4ef2498b64f06e',1,'QOCOKKT']]], 7 | ['dinv_41',['Dinv',['../structQOCOKKT.html#a6885d626168a163bb5221796aa878aee',1,'QOCOKKT']]], 8 | ['dinvruiz_42',['Dinvruiz',['../structQOCOKKT.html#a11ee7c721bfe5fdede3fa518946a766a',1,'QOCOKKT']]], 9 | ['dot_43',['dot',['../linalg_8h.html#af6aa23417cb2b6b034862e9c268876fb',1,'dot(const QOCOFloat *u, const QOCOFloat *v, QOCOInt n): linalg.c'],['../linalg_8c.html#af6aa23417cb2b6b034862e9c268876fb',1,'dot(const QOCOFloat *u, const QOCOFloat *v, QOCOInt n): linalg.c']]], 10 | ['dres_44',['dres',['../structQOCOSolution.html#a5e063df676903dfe0f5b26411824263c',1,'QOCOSolution']]], 11 | ['druiz_45',['Druiz',['../structQOCOKKT.html#afd535d2eb4f588cb097c9961f11f8cee',1,'QOCOKKT']]], 12 | ['ds_46',['Ds',['../structQOCOWorkspace.html#a2152c26a211c0054631fcfdc22c84bc2',1,'QOCOWorkspace']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['einvruiz_47',['Einvruiz',['../structQOCOKKT.html#aae616bb46f059dc575ca1bb2d5f4fa27',1,'QOCOKKT']]], 4 | ['enums_2eh_48',['enums.h',['../enums_8h.html',1,'']]], 5 | ['equilibration_2ec_49',['equilibration.c',['../equilibration_8c.html',1,'']]], 6 | ['equilibration_2eh_50',['equilibration.h',['../equilibration_8h.html',1,'']]], 7 | ['eruiz_51',['Eruiz',['../structQOCOKKT.html#a02dcddeb25f2e5faa1a28167c2bde732',1,'QOCOKKT']]], 8 | ['etree_52',['etree',['../structQOCOKKT.html#acf1f241dff0d6bda8ae0c54319eb5e9e',1,'QOCOKKT']]], 9 | ['ew_5fproduct_53',['ew_product',['../linalg_8h.html#ada738414c28d331a24f6095fafebe1c9',1,'ew_product(QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOInt n): linalg.c'],['../linalg_8c.html#ada738414c28d331a24f6095fafebe1c9',1,'ew_product(QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOInt n): linalg.c']]], 10 | ['exact_5flinesearch_54',['exact_linesearch',['../cone_8h.html#a89ae3d348aafeaea9d7792c984cd46ef',1,'exact_linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c'],['../cone_8c.html#a89ae3d348aafeaea9d7792c984cd46ef',1,'exact_linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['finvruiz_55',['Finvruiz',['../structQOCOKKT.html#a9f2b26ac858146f3571c071a55aa7be2',1,'QOCOKKT']]], 4 | ['free_5fqoco_5fcsc_5fmatrix_56',['free_qoco_csc_matrix',['../linalg_8h.html#a4e4c7c1df7c224d28c9ee82553cfda94',1,'free_qoco_csc_matrix(QOCOCscMatrix *A): linalg.c'],['../linalg_8c.html#a4e4c7c1df7c224d28c9ee82553cfda94',1,'free_qoco_csc_matrix(QOCOCscMatrix *A): linalg.c']]], 5 | ['fruiz_57',['Fruiz',['../structQOCOKKT.html#adb853bd2760ba9c0af0d9b6d5738f9ae',1,'QOCOKKT']]], 6 | ['fwork_58',['fwork',['../structQOCOKKT.html#a4b7208b5657c7306580065b6e046c41b',1,'QOCOKKT']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['g_59',['G',['../structQOCOProblemData.html#a83d3b83ad1361869c5676fe157b5e116',1,'QOCOProblemData']]], 4 | ['gap_60',['gap',['../structQOCOSolution.html#aa96bc0b7bc5ccaf1e40f36fdb5bd0638',1,'QOCOSolution']]], 5 | ['get_5felapsed_5ftime_5fsec_61',['get_elapsed_time_sec',['../timer_8h.html#a4ea3627b111cae5ddb7b1bc76a113eb5',1,'get_elapsed_time_sec(QOCOTimer *timer): timer_linux.c'],['../timer__linux_8c.html#a4ea3627b111cae5ddb7b1bc76a113eb5',1,'get_elapsed_time_sec(QOCOTimer *timer): timer_linux.c'],['../timer__macos_8c.html#a4ea3627b111cae5ddb7b1bc76a113eb5',1,'get_elapsed_time_sec(QOCOTimer *timer): timer_macos.c']]], 6 | ['gt_62',['Gt',['../structQOCOProblemData.html#a2eec01f8d201d7f7bf40520a73253ba3',1,'QOCOProblemData']]], 7 | ['gtokkt_63',['GtoKKT',['../structQOCOKKT.html#a85a50ddc6e8893a0f2d85761220f3837',1,'QOCOKKT']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/all_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['h_64',['h',['../structQOCOProblemData.html#ac5b72e0466328072d1a45b0cbe155967',1,'QOCOProblemData']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/all_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l_85',['l',['../structQOCOProblemData.html#a9d6633850372ce5c5e852aca470138ae',1,'QOCOProblemData']]], 4 | ['lambda_86',['lambda',['../structQOCOWorkspace.html#ae51fe619a4326ae51b2058838e1aa2ae',1,'QOCOWorkspace']]], 5 | ['li_87',['Li',['../structQOCOKKT.html#af6b8e85423d8b6ffdc57fa20eefaaf5d',1,'QOCOKKT']]], 6 | ['linalg_2ec_88',['linalg.c',['../linalg_8c.html',1,'']]], 7 | ['linalg_2eh_89',['linalg.h',['../linalg_8h.html',1,'']]], 8 | ['linesearch_90',['linesearch',['../cone_8h.html#ad15543fafb4fedbd8c13a2eaef0e6425',1,'linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c'],['../cone_8c.html#ad15543fafb4fedbd8c13a2eaef0e6425',1,'linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c']]], 9 | ['lnz_91',['Lnz',['../structQOCOKKT.html#aa016e2bbc0d2441b347501fd1bae4c05',1,'QOCOKKT']]], 10 | ['log_5fiter_92',['log_iter',['../utils_8h.html#aed998408252b44161ed1ac30c2467deb',1,'log_iter(QOCOSolver *solver): utils.c'],['../utils_8c.html#aed998408252b44161ed1ac30c2467deb',1,'log_iter(QOCOSolver *solver): utils.c']]], 11 | ['lp_93',['Lp',['../structQOCOKKT.html#a681940985da5106985036b2aa5ee9084',1,'QOCOKKT']]], 12 | ['lx_94',['Lx',['../structQOCOKKT.html#acc39b62e0df813274b5ef6cea77c7879',1,'QOCOKKT']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/html/search/all_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['m_95',['m',['../structQOCOCscMatrix.html#a327e8b9e4295284efb5652d25a1e9bbd',1,'QOCOCscMatrix::m()'],['../structQOCOProblemData.html#a05c227cb935c10b07ddb8c2a1fd56bdc',1,'QOCOProblemData::m()']]], 4 | ['max_5farrayi_96',['max_arrayi',['../linalg_8h.html#ab5f0f37d238fd5f833e790474d6429be',1,'max_arrayi(const QOCOInt *x, QOCOInt n): linalg.c'],['../linalg_8c.html#ab5f0f37d238fd5f833e790474d6429be',1,'max_arrayi(const QOCOInt *x, QOCOInt n): linalg.c']]], 5 | ['max_5fiters_97',['max_iters',['../structQOCOSettings.html#ad024407378c8232511ffc8775e6d92a7',1,'QOCOSettings']]], 6 | ['mu_98',['mu',['../structQOCOWorkspace.html#a24869d9e9aa5cbcfd7451ab6219a011f',1,'QOCOWorkspace']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/all_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n_99',['n',['../structQOCOCscMatrix.html#acd4820c353d8a89cdb6539e7e10d0d21',1,'QOCOCscMatrix::n()'],['../structQOCOProblemData.html#aa0cf719a1ff80e6f1851e03a04ac454d',1,'QOCOProblemData::n()']]], 4 | ['new_5fqoco_5fcsc_5fmatrix_100',['new_qoco_csc_matrix',['../linalg_8h.html#acc38bacc4387241a20e9db0ba2f931e4',1,'new_qoco_csc_matrix(const QOCOCscMatrix *A): linalg.c'],['../linalg_8c.html#acc38bacc4387241a20e9db0ba2f931e4',1,'new_qoco_csc_matrix(const QOCOCscMatrix *A): linalg.c']]], 5 | ['nnz_101',['nnz',['../structQOCOCscMatrix.html#ac9fc0f50af06e588ef4431b77044342d',1,'QOCOCscMatrix']]], 6 | ['nsoc_102',['nsoc',['../structQOCOProblemData.html#a980efff44ee3906ba6d866df9067e9d6',1,'QOCOProblemData']]], 7 | ['nt2kkt_103',['nt2kkt',['../structQOCOKKT.html#a14f8a761326da48445b45f9a19f0e504',1,'QOCOKKT']]], 8 | ['nt_5fmultiply_104',['nt_multiply',['../cone_8h.html#aa75cb85b5b77d1831a982da450db3292',1,'nt_multiply(QOCOFloat *W, QOCOFloat *x, QOCOFloat *z, QOCOInt l, QOCOInt m, QOCOInt nsoc, QOCOInt *q): cone.c'],['../cone_8c.html#aa75cb85b5b77d1831a982da450db3292',1,'nt_multiply(QOCOFloat *W, QOCOFloat *x, QOCOFloat *z, QOCOInt l, QOCOInt m, QOCOInt nsoc, QOCOInt *q): cone.c']]], 9 | ['ntdiag2kkt_105',['ntdiag2kkt',['../structQOCOKKT.html#aa0f0fe3ae4f7d6db557fc2dcea2309eb',1,'QOCOKKT']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/html/search/all_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['obj_106',['obj',['../structQOCOSolution.html#a382db943a6d77679838a47df7d1591f9',1,'QOCOSolution']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qococscmatrix_230',['QOCOCscMatrix',['../structQOCOCscMatrix.html',1,'']]], 4 | ['qocokkt_231',['QOCOKKT',['../structQOCOKKT.html',1,'']]], 5 | ['qocoproblemdata_232',['QOCOProblemData',['../structQOCOProblemData.html',1,'']]], 6 | ['qocosettings_233',['QOCOSettings',['../structQOCOSettings.html',1,'']]], 7 | ['qocosolution_234',['QOCOSolution',['../structQOCOSolution.html',1,'']]], 8 | ['qocosolver_235',['QOCOSolver',['../structQOCOSolver.html',1,'']]], 9 | ['qocoworkspace_236',['QOCOWorkspace',['../structQOCOWorkspace.html',1,'']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/html/search/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 31 | 32 | -------------------------------------------------------------------------------- /docs/html/search/defines_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qoco_5fabs_447',['qoco_abs',['../definitions_8h.html#ac4f16c2e8de46f259db17adff54309ed',1,'definitions.h']]], 4 | ['qoco_5fassert_448',['qoco_assert',['../definitions_8h.html#aa543bca1d1ce32c19086397f611075fe',1,'definitions.h']]], 5 | ['qoco_5fcalloc_449',['qoco_calloc',['../definitions_8h.html#a44ae01b192007f6085a5097b15752094',1,'definitions.h']]], 6 | ['qoco_5ffree_450',['qoco_free',['../definitions_8h.html#a1796cf4b640966b437f6f89369303dd7',1,'definitions.h']]], 7 | ['qoco_5fmalloc_451',['qoco_malloc',['../definitions_8h.html#a152b57b6c087787118c75653da56d76b',1,'definitions.h']]], 8 | ['qoco_5fmax_452',['qoco_max',['../definitions_8h.html#aef7019cb0e7922c31100c20048252108',1,'definitions.h']]], 9 | ['qoco_5fmin_453',['qoco_min',['../definitions_8h.html#a428961e6b5fcdacdfee91ea6be5cc0ca',1,'definitions.h']]], 10 | ['qoco_5fsqrt_454',['qoco_sqrt',['../definitions_8h.html#af75ea74bed39dc159c8d3c34d635658a',1,'definitions.h']]], 11 | ['qocofloat_5fmax_455',['QOCOFloat_MAX',['../definitions_8h.html#a70b544b16d53ef50a7443774466449e7',1,'definitions.h']]], 12 | ['qocoint_5fmax_456',['QOCOInt_MAX',['../definitions_8h.html#a43f14128f35157a26dd29378d7d51544',1,'definitions.h']]] 13 | ]; 14 | -------------------------------------------------------------------------------- /docs/html/search/defines_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['safe_5fdiv_457',['safe_div',['../definitions_8h.html#ab65fb67e9a764fbda260b2b867c0be3a',1,'definitions.h']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/enums_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qoco_5ferror_5fcode_434',['qoco_error_code',['../enums_8h.html#a39468918ae64e75b2f3b79b76fb752e5',1,'enums.h']]], 4 | ['qoco_5fsolve_5fstatus_435',['qoco_solve_status',['../enums_8h.html#aa172e8d3d8d92e128f1bcca12f536844',1,'enums.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/files_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['cone_2ec_237',['cone.c',['../cone_8c.html',1,'']]], 4 | ['cone_2eh_238',['cone.h',['../cone_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/files_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['definitions_2eh_239',['definitions.h',['../definitions_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['enums_2eh_240',['enums.h',['../enums_8h.html',1,'']]], 4 | ['equilibration_2ec_241',['equilibration.c',['../equilibration_8c.html',1,'']]], 5 | ['equilibration_2eh_242',['equilibration.h',['../equilibration_8h.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/files_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['input_5fvalidation_2ec_243',['input_validation.c',['../input__validation_8c.html',1,'']]], 4 | ['input_5fvalidation_2eh_244',['input_validation.h',['../input__validation_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/files_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['kkt_2ec_245',['kkt.c',['../kkt_8c.html',1,'']]], 4 | ['kkt_2eh_246',['kkt.h',['../kkt_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/files_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['linalg_2ec_247',['linalg.c',['../linalg_8c.html',1,'']]], 4 | ['linalg_2eh_248',['linalg.h',['../linalg_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/files_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qoco_2eh_249',['qoco.h',['../qoco_8h.html',1,'']]], 4 | ['qoco_5fapi_2ec_250',['qoco_api.c',['../qoco__api_8c.html',1,'']]], 5 | ['qoco_5fapi_2eh_251',['qoco_api.h',['../qoco__api_8h.html',1,'']]], 6 | ['qoco_5ferror_2ec_252',['qoco_error.c',['../qoco__error_8c.html',1,'']]], 7 | ['qoco_5ferror_2eh_253',['qoco_error.h',['../qoco__error_8h.html',1,'']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/files_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['structs_2eh_254',['structs.h',['../structs_8h.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/files_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['timer_2eh_255',['timer.h',['../timer_8h.html',1,'']]], 4 | ['timer_5flinux_2ec_256',['timer_linux.c',['../timer__linux_8c.html',1,'']]], 5 | ['timer_5fmacos_2ec_257',['timer_macos.c',['../timer__macos_8c.html',1,'']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/files_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['utils_2ec_258',['utils.c',['../utils_8c.html',1,'']]], 4 | ['utils_2eh_259',['utils.h',['../utils_8h.html',1,'']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['allocate_5fkkt_260',['allocate_kkt',['../kkt_8h.html#a32e6ba8ee8266d6576a302fd28485668',1,'allocate_kkt(QOCOWorkspace *work): kkt.c'],['../kkt_8c.html#a32e6ba8ee8266d6576a302fd28485668',1,'allocate_kkt(QOCOWorkspace *work): kkt.c']]], 4 | ['axpy_261',['axpy',['../linalg_8h.html#a83d0613ee15321b01a503789bab214dc',1,'axpy(const QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOFloat a, QOCOInt n): linalg.c'],['../linalg_8c.html#a83d0613ee15321b01a503789bab214dc',1,'axpy(const QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOFloat a, QOCOInt n): linalg.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['bisection_5fsearch_262',['bisection_search',['../cone_8h.html#ac90e9e955d185003e55bdc63bf25b3a1',1,'bisection_search(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c'],['../cone_8c.html#ac90e9e955d185003e55bdc63bf25b3a1',1,'bisection_search(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c']]], 4 | ['bring2cone_263',['bring2cone',['../cone_8h.html#aeeaf7177391c69104dff81ff350a6fd4',1,'bring2cone(QOCOFloat *u, QOCOProblemData *data): cone.c'],['../cone_8c.html#aeeaf7177391c69104dff81ff350a6fd4',1,'bring2cone(QOCOFloat *u, QOCOProblemData *data): cone.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['dot_285',['dot',['../linalg_8h.html#af6aa23417cb2b6b034862e9c268876fb',1,'dot(const QOCOFloat *u, const QOCOFloat *v, QOCOInt n): linalg.c'],['../linalg_8c.html#af6aa23417cb2b6b034862e9c268876fb',1,'dot(const QOCOFloat *u, const QOCOFloat *v, QOCOInt n): linalg.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ew_5fproduct_286',['ew_product',['../linalg_8h.html#ada738414c28d331a24f6095fafebe1c9',1,'ew_product(QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOInt n): linalg.c'],['../linalg_8c.html#ada738414c28d331a24f6095fafebe1c9',1,'ew_product(QOCOFloat *x, const QOCOFloat *y, QOCOFloat *z, QOCOInt n): linalg.c']]], 4 | ['exact_5flinesearch_287',['exact_linesearch',['../cone_8h.html#a89ae3d348aafeaea9d7792c984cd46ef',1,'exact_linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c'],['../cone_8c.html#a89ae3d348aafeaea9d7792c984cd46ef',1,'exact_linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['free_5fqoco_5fcsc_5fmatrix_288',['free_qoco_csc_matrix',['../linalg_8h.html#a4e4c7c1df7c224d28c9ee82553cfda94',1,'free_qoco_csc_matrix(QOCOCscMatrix *A): linalg.c'],['../linalg_8c.html#a4e4c7c1df7c224d28c9ee82553cfda94',1,'free_qoco_csc_matrix(QOCOCscMatrix *A): linalg.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['get_5felapsed_5ftime_5fsec_289',['get_elapsed_time_sec',['../timer_8h.html#a4ea3627b111cae5ddb7b1bc76a113eb5',1,'get_elapsed_time_sec(QOCOTimer *timer): timer_linux.c'],['../timer__linux_8c.html#a4ea3627b111cae5ddb7b1bc76a113eb5',1,'get_elapsed_time_sec(QOCOTimer *timer): timer_linux.c'],['../timer__macos_8c.html#a4ea3627b111cae5ddb7b1bc76a113eb5',1,'get_elapsed_time_sec(QOCOTimer *timer): timer_macos.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['inf_5fnorm_290',['inf_norm',['../linalg_8h.html#a8bc5eb1d540eaf36dcb07c5da089f7b2',1,'inf_norm(const QOCOFloat *x, QOCOInt n): linalg.c'],['../linalg_8c.html#a8bc5eb1d540eaf36dcb07c5da089f7b2',1,'inf_norm(const QOCOFloat *x, QOCOInt n): linalg.c']]], 4 | ['initialize_5fipm_291',['initialize_ipm',['../kkt_8h.html#af0e88edff1a77bc07b379c2e194d3bff',1,'initialize_ipm(QOCOSolver *solver): kkt.c'],['../kkt_8c.html#af0e88edff1a77bc07b379c2e194d3bff',1,'initialize_ipm(QOCOSolver *solver): kkt.c']]], 5 | ['invert_5fpermutation_292',['invert_permutation',['../linalg_8h.html#a9399c635b5b4fb0e61f186adfc1d0df2',1,'invert_permutation(const QOCOInt *p, QOCOInt *pinv, QOCOInt n): linalg.c'],['../linalg_8c.html#a9399c635b5b4fb0e61f186adfc1d0df2',1,'invert_permutation(const QOCOInt *p, QOCOInt *pinv, QOCOInt n): linalg.c']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/functions_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['kkt_5fmultiply_293',['kkt_multiply',['../kkt_8h.html#a112a3955fd72740bb6e5dd032ad34e8c',1,'kkt_multiply(QOCOSolver *solver, QOCOFloat *x, QOCOFloat *y): kkt.c'],['../kkt_8c.html#a112a3955fd72740bb6e5dd032ad34e8c',1,'kkt_multiply(QOCOSolver *solver, QOCOFloat *x, QOCOFloat *y): kkt.c']]], 4 | ['kkt_5fsolve_294',['kkt_solve',['../kkt_8h.html#a0fa673e36adc2fe84350627543fe58d4',1,'kkt_solve(QOCOSolver *solver, QOCOFloat *b, QOCOInt iters): kkt.c'],['../kkt_8c.html#a0fa673e36adc2fe84350627543fe58d4',1,'kkt_solve(QOCOSolver *solver, QOCOFloat *b, QOCOInt iters): kkt.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['linesearch_295',['linesearch',['../cone_8h.html#ad15543fafb4fedbd8c13a2eaef0e6425',1,'linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c'],['../cone_8c.html#ad15543fafb4fedbd8c13a2eaef0e6425',1,'linesearch(QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver): cone.c']]], 4 | ['log_5fiter_296',['log_iter',['../utils_8h.html#aed998408252b44161ed1ac30c2467deb',1,'log_iter(QOCOSolver *solver): utils.c'],['../utils_8c.html#aed998408252b44161ed1ac30c2467deb',1,'log_iter(QOCOSolver *solver): utils.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['max_5farrayi_297',['max_arrayi',['../linalg_8h.html#ab5f0f37d238fd5f833e790474d6429be',1,'max_arrayi(const QOCOInt *x, QOCOInt n): linalg.c'],['../linalg_8c.html#ab5f0f37d238fd5f833e790474d6429be',1,'max_arrayi(const QOCOInt *x, QOCOInt n): linalg.c']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/functions_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['new_5fqoco_5fcsc_5fmatrix_298',['new_qoco_csc_matrix',['../linalg_8h.html#acc38bacc4387241a20e9db0ba2f931e4',1,'new_qoco_csc_matrix(const QOCOCscMatrix *A): linalg.c'],['../linalg_8c.html#acc38bacc4387241a20e9db0ba2f931e4',1,'new_qoco_csc_matrix(const QOCOCscMatrix *A): linalg.c']]], 4 | ['nt_5fmultiply_299',['nt_multiply',['../cone_8h.html#aa75cb85b5b77d1831a982da450db3292',1,'nt_multiply(QOCOFloat *W, QOCOFloat *x, QOCOFloat *z, QOCOInt l, QOCOInt m, QOCOInt nsoc, QOCOInt *q): cone.c'],['../cone_8c.html#aa75cb85b5b77d1831a982da450db3292',1,'nt_multiply(QOCOFloat *W, QOCOFloat *x, QOCOFloat *z, QOCOInt l, QOCOInt m, QOCOInt nsoc, QOCOInt *q): cone.c']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/functions_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['regularize_314',['regularize',['../linalg_8h.html#acec2b6c1dc707854f23d505b1fc42ab1',1,'regularize(QOCOCscMatrix *M, QOCOFloat lambda, QOCOInt *nzadded_idx): linalg.c'],['../linalg_8c.html#acec2b6c1dc707854f23d505b1fc42ab1',1,'regularize(QOCOCscMatrix *M, QOCOFloat lambda, QOCOInt *nzadded_idx): linalg.c']]], 4 | ['row_5fcol_5fscale_315',['row_col_scale',['../linalg_8h.html#a2fae5e0df1f9fb3d70115f91a74c9e99',1,'row_col_scale(const QOCOCscMatrix *M, QOCOFloat *E, QOCOFloat *D): linalg.c'],['../linalg_8c.html#a2fae5e0df1f9fb3d70115f91a74c9e99',1,'row_col_scale(const QOCOCscMatrix *M, QOCOFloat *E, QOCOFloat *D): linalg.c']]], 5 | ['row_5finf_5fnorm_316',['row_inf_norm',['../linalg_8h.html#a0b420ad549447d77bf28bf2732108203',1,'row_inf_norm(const QOCOCscMatrix *M, QOCOFloat *norm): linalg.c'],['../linalg_8c.html#a0b420ad549447d77bf28bf2732108203',1,'row_inf_norm(const QOCOCscMatrix *M, QOCOFloat *norm): linalg.c']]], 6 | ['ruiz_5fequilibration_317',['ruiz_equilibration',['../equilibration_8h.html#a69d5dd1945452c99c240d541c9348e79',1,'ruiz_equilibration(QOCOSolver *solver): equilibration.c'],['../equilibration_8c.html#a69d5dd1945452c99c240d541c9348e79',1,'ruiz_equilibration(QOCOSolver *solver): equilibration.c']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
No Matches
11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['todo_20list_458',['Todo List',['../todo.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/search_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/search/search_l.png -------------------------------------------------------------------------------- /docs/html/search/search_m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/search/search_m.png -------------------------------------------------------------------------------- /docs/html/search/search_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/search/search_r.png -------------------------------------------------------------------------------- /docs/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "abcdefghiklmnopqrstuvwxyz", 4 | 1: "q", 5 | 2: "cdeiklqstu", 6 | 3: "abcdefgiklmnpqrsu", 7 | 4: "abcdefghiklmnopqrsuvwxyz", 8 | 5: "q", 9 | 6: "q", 10 | 7: "q", 11 | 8: "qs", 12 | 9: "t" 13 | }; 14 | 15 | var indexSectionNames = 16 | { 17 | 0: "all", 18 | 1: "classes", 19 | 2: "files", 20 | 3: "functions", 21 | 4: "variables", 22 | 5: "typedefs", 23 | 6: "enums", 24 | 7: "enumvalues", 25 | 8: "defines", 26 | 9: "pages" 27 | }; 28 | 29 | var indexSectionLabels = 30 | { 31 | 0: "All", 32 | 1: "Classes", 33 | 2: "Files", 34 | 3: "Functions", 35 | 4: "Variables", 36 | 5: "Typedefs", 37 | 6: "Enumerations", 38 | 7: "Enumerator", 39 | 8: "Macros", 40 | 9: "Pages" 41 | }; 42 | 43 | -------------------------------------------------------------------------------- /docs/html/search/typedefs_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['qocofloat_432',['QOCOFloat',['../definitions_8h.html#a4f04b37411a6fc01fed72b02f1364188',1,'definitions.h']]], 4 | ['qocoint_433',['QOCOInt',['../definitions_8h.html#aedd8d3f09aca17e3ca87133e7b66c5b2',1,'definitions.h']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['a_335',['a',['../structQOCOWorkspace.html#a04dfe46d9df29667a1241255569456d0',1,'QOCOWorkspace']]], 4 | ['a_336',['A',['../structQOCOProblemData.html#aa9cbb95a483b65f3e1155596cb3eab5d',1,'QOCOProblemData']]], 5 | ['abstol_337',['abstol',['../structQOCOSettings.html#a7d62b01403b7572ee0d1ebaaab45c9d0',1,'QOCOSettings']]], 6 | ['abstol_5finacc_338',['abstol_inacc',['../structQOCOSettings.html#a92cdec007c0b9a4392d3036e97012492',1,'QOCOSettings']]], 7 | ['at_339',['At',['../structQOCOProblemData.html#a57cf5c3774dadfb733a2bc1e51e424e8',1,'QOCOProblemData']]], 8 | ['atokkt_340',['AtoKKT',['../structQOCOKKT.html#abf6e6214c517d4bc4623d86caedac76d',1,'QOCOKKT']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/html/search/variables_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['b_341',['b',['../structQOCOProblemData.html#aaee73365c1f1cbe460f1bb8720c3c123',1,'QOCOProblemData']]], 4 | ['bisect_5fiters_342',['bisect_iters',['../structQOCOSettings.html#a13065594e57d4091033243b12c5bfd5c',1,'QOCOSettings']]], 5 | ['bwork_343',['bwork',['../structQOCOKKT.html#a16a43a93af6629be0dcd53d2e3b14dc4',1,'QOCOKKT']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_10.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['reltol_398',['reltol',['../structQOCOSettings.html#a9924681488237bcc446854964f3b5012',1,'QOCOSettings']]], 4 | ['reltol_5finacc_399',['reltol_inacc',['../structQOCOSettings.html#a13d27ddfaba9c83983090fba602ab2b4',1,'QOCOSettings']]], 5 | ['rhs_400',['rhs',['../structQOCOKKT.html#a350c03f2665d19dde24b74b556d91a59',1,'QOCOKKT']]], 6 | ['ruiz_5fiters_401',['ruiz_iters',['../structQOCOSettings.html#af252771d1771c37f794a6d5c385ce66d',1,'QOCOSettings']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/variables_11.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['s_402',['s',['../structQOCOWorkspace.html#a002ae166cc6aecae4752707d5d363b4f',1,'QOCOWorkspace::s()'],['../structQOCOSolution.html#a79f89645c7b39a9c4d4c8380e7129213',1,'QOCOSolution::s()']]], 4 | ['sbar_403',['sbar',['../structQOCOWorkspace.html#a48685f3f6a25e3f6f9d052a04ecad1dc',1,'QOCOWorkspace']]], 5 | ['settings_404',['settings',['../structQOCOSolver.html#a74a794b01773f869a491cacdb6fc21b3',1,'QOCOSolver']]], 6 | ['setup_5ftime_5fsec_405',['setup_time_sec',['../structQOCOSolution.html#a75eacd22010e7a6c349fad37d8a1a768',1,'QOCOSolution']]], 7 | ['sigma_406',['sigma',['../structQOCOWorkspace.html#aec13ff096706e16f9458c354dede1dab',1,'QOCOWorkspace']]], 8 | ['sol_407',['sol',['../structQOCOSolver.html#a8ce63094ab43c6ece3a393fa4e5b1702',1,'QOCOSolver']]], 9 | ['solve_5ftime_5fsec_408',['solve_time_sec',['../structQOCOSolution.html#afc8c9f62bffbf4557635d69bfc2f2188',1,'QOCOSolution']]], 10 | ['solve_5ftimer_409',['solve_timer',['../structQOCOWorkspace.html#a1e42af4dbb27330568497c58e92cfea2',1,'QOCOWorkspace']]], 11 | ['status_410',['status',['../structQOCOSolution.html#ace095bf7a10b6e36e707583772499f3b',1,'QOCOSolution']]] 12 | ]; 13 | -------------------------------------------------------------------------------- /docs/html/search/variables_12.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['ubuff1_411',['ubuff1',['../structQOCOWorkspace.html#a7369470409a139d98b2078a8ba11a45a',1,'QOCOWorkspace']]], 4 | ['ubuff2_412',['ubuff2',['../structQOCOWorkspace.html#a69686f6f9be8831adc15b675c9a8901b',1,'QOCOWorkspace']]], 5 | ['ubuff3_413',['ubuff3',['../structQOCOWorkspace.html#ac6d7f378e50078c8df22229a64f63335',1,'QOCOWorkspace']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_13.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['verbose_414',['verbose',['../structQOCOSettings.html#a1a566c8aa840eaaf69e3070060a0ab5a',1,'QOCOSettings']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_14.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['w_415',['W',['../structQOCOWorkspace.html#a090e9a2bda01d9afaeb6d723012c0c0b',1,'QOCOWorkspace']]], 4 | ['wfull_416',['Wfull',['../structQOCOWorkspace.html#ac6167675f75b92721d71e26f7438a29e',1,'QOCOWorkspace']]], 5 | ['winv_417',['Winv',['../structQOCOWorkspace.html#a6967ce11381cadffa62570866eee2c09',1,'QOCOWorkspace']]], 6 | ['winvfull_418',['Winvfull',['../structQOCOWorkspace.html#a29bea851e0fff76a4173b777eb263d41',1,'QOCOWorkspace']]], 7 | ['wnnz_419',['Wnnz',['../structQOCOWorkspace.html#aa43b26d800f4371c0ddf16d22978b94c',1,'QOCOWorkspace']]], 8 | ['wnnzfull_420',['Wnnzfull',['../structQOCOWorkspace.html#a266fcd28cf2cfd16369a1f3e7f55bc38',1,'QOCOWorkspace']]], 9 | ['work_421',['work',['../structQOCOSolver.html#a1fff4710076ad15378db81e9fdc83fb3',1,'QOCOSolver']]], 10 | ['wtw_422',['WtW',['../structQOCOWorkspace.html#a058dfbd7bf8f83c61e81d9985ec1a0ff',1,'QOCOWorkspace']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/variables_15.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['x_423',['x',['../structQOCOCscMatrix.html#a4ea542f0db4ad47d3a66b544df108f10',1,'QOCOCscMatrix::x()'],['../structQOCOWorkspace.html#aa41f5e07236e756b74cc5a8a19645917',1,'QOCOWorkspace::x()'],['../structQOCOSolution.html#a989c1156c8a3019bfd101141d067b27f',1,'QOCOSolution::x()']]], 4 | ['xbuff_424',['xbuff',['../structQOCOWorkspace.html#aa134684318c23648ab32df1b09547b1f',1,'QOCOWorkspace']]], 5 | ['xyz_425',['xyz',['../structQOCOKKT.html#adbc8ffce9207cfc89d657f46fd6959ab',1,'QOCOKKT']]], 6 | ['xyzbuff1_426',['xyzbuff1',['../structQOCOKKT.html#a37864381633654817dc0fcd3b34ce981',1,'QOCOKKT']]], 7 | ['xyzbuff2_427',['xyzbuff2',['../structQOCOKKT.html#aa3928f751b6f70a295f6b39bac199a4b',1,'QOCOKKT']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/variables_16.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['y_428',['y',['../structQOCOWorkspace.html#ac41c22bfe9821570218e52e527b90b9e',1,'QOCOWorkspace::y()'],['../structQOCOSolution.html#a27cf10ad9a7474d9fd6b418110fc904f',1,'QOCOSolution::y()']]], 4 | ['ybuff_429',['ybuff',['../structQOCOWorkspace.html#a92d74672f162a42197b232bf07c4c3c7',1,'QOCOWorkspace']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_17.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_430',['z',['../structQOCOWorkspace.html#a6ebb2d02f31c2a1866076b4165f07a54',1,'QOCOWorkspace::z()'],['../structQOCOSolution.html#a44f6e311adc9af5956dc65c9b6722957',1,'QOCOSolution::z()']]], 4 | ['zbar_431',['zbar',['../structQOCOWorkspace.html#a2f5ae5af745301de6b8bcaa455279e80',1,'QOCOWorkspace']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_18.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['z_434',['z',['../structQOCOWorkspace.html#a6ebb2d02f31c2a1866076b4165f07a54',1,'QOCOWorkspace::z()'],['../structQOCOSolution.html#a44f6e311adc9af5956dc65c9b6722957',1,'QOCOSolution::z()']]], 4 | ['zbar_435',['zbar',['../structQOCOWorkspace.html#a2f5ae5af745301de6b8bcaa455279e80',1,'QOCOWorkspace']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /docs/html/search/variables_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['c_344',['c',['../structQOCOProblemData.html#a7865ab92c05a9b0d4dbf85798f33b002',1,'QOCOProblemData']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['d_345',['D',['../structQOCOKKT.html#ab39972aa84945bcdad126a612dbcd036',1,'QOCOKKT']]], 4 | ['data_346',['data',['../structQOCOWorkspace.html#af43c13687a7775620c8f817a076227a2',1,'QOCOWorkspace']]], 5 | ['delta_347',['delta',['../structQOCOKKT.html#a161652b18272e8ad4b4ef2498b64f06e',1,'QOCOKKT']]], 6 | ['dinv_348',['Dinv',['../structQOCOKKT.html#a6885d626168a163bb5221796aa878aee',1,'QOCOKKT']]], 7 | ['dinvruiz_349',['Dinvruiz',['../structQOCOKKT.html#a11ee7c721bfe5fdede3fa518946a766a',1,'QOCOKKT']]], 8 | ['dres_350',['dres',['../structQOCOSolution.html#a5e063df676903dfe0f5b26411824263c',1,'QOCOSolution']]], 9 | ['druiz_351',['Druiz',['../structQOCOKKT.html#afd535d2eb4f588cb097c9961f11f8cee',1,'QOCOKKT']]], 10 | ['ds_352',['Ds',['../structQOCOWorkspace.html#a2152c26a211c0054631fcfdc22c84bc2',1,'QOCOWorkspace']]] 11 | ]; 12 | -------------------------------------------------------------------------------- /docs/html/search/variables_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['einvruiz_353',['Einvruiz',['../structQOCOKKT.html#aae616bb46f059dc575ca1bb2d5f4fa27',1,'QOCOKKT']]], 4 | ['eruiz_354',['Eruiz',['../structQOCOKKT.html#a02dcddeb25f2e5faa1a28167c2bde732',1,'QOCOKKT']]], 5 | ['etree_355',['etree',['../structQOCOKKT.html#acf1f241dff0d6bda8ae0c54319eb5e9e',1,'QOCOKKT']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['finvruiz_356',['Finvruiz',['../structQOCOKKT.html#a9f2b26ac858146f3571c071a55aa7be2',1,'QOCOKKT']]], 4 | ['fruiz_357',['Fruiz',['../structQOCOKKT.html#adb853bd2760ba9c0af0d9b6d5738f9ae',1,'QOCOKKT']]], 5 | ['fwork_358',['fwork',['../structQOCOKKT.html#a4b7208b5657c7306580065b6e046c41b',1,'QOCOKKT']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_6.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['g_359',['G',['../structQOCOProblemData.html#a83d3b83ad1361869c5676fe157b5e116',1,'QOCOProblemData']]], 4 | ['gap_360',['gap',['../structQOCOSolution.html#aa96bc0b7bc5ccaf1e40f36fdb5bd0638',1,'QOCOSolution']]], 5 | ['gt_361',['Gt',['../structQOCOProblemData.html#a2eec01f8d201d7f7bf40520a73253ba3',1,'QOCOProblemData']]], 6 | ['gtokkt_362',['GtoKKT',['../structQOCOKKT.html#a85a50ddc6e8893a0f2d85761220f3837',1,'QOCOKKT']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/variables_7.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['h_363',['h',['../structQOCOProblemData.html#ac5b72e0466328072d1a45b0cbe155967',1,'QOCOProblemData']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_8.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['i_364',['i',['../structQOCOCscMatrix.html#a02dde3f329f8f44bdb592a6715f8e8f1',1,'QOCOCscMatrix']]], 4 | ['iter_5fref_5fiters_365',['iter_ref_iters',['../structQOCOSettings.html#afd5bc6a556931668265c2e47270e8278',1,'QOCOSettings']]], 5 | ['iters_366',['iters',['../structQOCOSolution.html#af22ee3af705035ac8049c32ba6445975',1,'QOCOSolution']]], 6 | ['iwork_367',['iwork',['../structQOCOKKT.html#a20507578b547327068bafb3902266612',1,'QOCOKKT']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /docs/html/search/variables_9.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['k_368',['K',['../structQOCOKKT.html#a42dca8a44ef230ae857c0ed1902a1e6e',1,'QOCOKKT']]], 4 | ['k_369',['k',['../structQOCOKKT.html#a0370a2e9d69025a4b53aeb27429f33dd',1,'QOCOKKT']]], 5 | ['kinv_370',['kinv',['../structQOCOKKT.html#ac992970a5113c5ff3d60e0c64532aa0a',1,'QOCOKKT']]], 6 | ['kkt_371',['kkt',['../structQOCOWorkspace.html#ac24765599d57154f6018a884b48844ce',1,'QOCOWorkspace']]], 7 | ['kkt_5fdynamic_5freg_372',['kkt_dynamic_reg',['../structQOCOSettings.html#ad635ca462b97c3f0978b755ce2ce763c',1,'QOCOSettings']]], 8 | ['kkt_5fstatic_5freg_373',['kkt_static_reg',['../structQOCOSettings.html#a11f48d67a5626431c077ad30c84433df',1,'QOCOSettings']]], 9 | ['kktres_374',['kktres',['../structQOCOKKT.html#a09b19f406c70817daf7dc41ead83c975',1,'QOCOKKT']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/html/search/variables_a.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['l_375',['l',['../structQOCOProblemData.html#a9d6633850372ce5c5e852aca470138ae',1,'QOCOProblemData']]], 4 | ['lambda_376',['lambda',['../structQOCOWorkspace.html#ae51fe619a4326ae51b2058838e1aa2ae',1,'QOCOWorkspace']]], 5 | ['li_377',['Li',['../structQOCOKKT.html#af6b8e85423d8b6ffdc57fa20eefaaf5d',1,'QOCOKKT']]], 6 | ['lnz_378',['Lnz',['../structQOCOKKT.html#aa016e2bbc0d2441b347501fd1bae4c05',1,'QOCOKKT']]], 7 | ['lp_379',['Lp',['../structQOCOKKT.html#a681940985da5106985036b2aa5ee9084',1,'QOCOKKT']]], 8 | ['lx_380',['Lx',['../structQOCOKKT.html#acc39b62e0df813274b5ef6cea77c7879',1,'QOCOKKT']]] 9 | ]; 10 | -------------------------------------------------------------------------------- /docs/html/search/variables_b.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['m_381',['m',['../structQOCOCscMatrix.html#a327e8b9e4295284efb5652d25a1e9bbd',1,'QOCOCscMatrix::m()'],['../structQOCOProblemData.html#a05c227cb935c10b07ddb8c2a1fd56bdc',1,'QOCOProblemData::m()']]], 4 | ['max_5fiters_382',['max_iters',['../structQOCOSettings.html#ad024407378c8232511ffc8775e6d92a7',1,'QOCOSettings']]], 5 | ['mu_383',['mu',['../structQOCOWorkspace.html#a24869d9e9aa5cbcfd7451ab6219a011f',1,'QOCOWorkspace']]] 6 | ]; 7 | -------------------------------------------------------------------------------- /docs/html/search/variables_c.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['n_384',['n',['../structQOCOCscMatrix.html#acd4820c353d8a89cdb6539e7e10d0d21',1,'QOCOCscMatrix::n()'],['../structQOCOProblemData.html#aa0cf719a1ff80e6f1851e03a04ac454d',1,'QOCOProblemData::n()']]], 4 | ['nnz_385',['nnz',['../structQOCOCscMatrix.html#ac9fc0f50af06e588ef4431b77044342d',1,'QOCOCscMatrix']]], 5 | ['nsoc_386',['nsoc',['../structQOCOProblemData.html#a980efff44ee3906ba6d866df9067e9d6',1,'QOCOProblemData']]], 6 | ['nt2kkt_387',['nt2kkt',['../structQOCOKKT.html#a14f8a761326da48445b45f9a19f0e504',1,'QOCOKKT']]], 7 | ['ntdiag2kkt_388',['ntdiag2kkt',['../structQOCOKKT.html#aa0f0fe3ae4f7d6db557fc2dcea2309eb',1,'QOCOKKT']]] 8 | ]; 9 | -------------------------------------------------------------------------------- /docs/html/search/variables_d.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['obj_389',['obj',['../structQOCOSolution.html#a382db943a6d77679838a47df7d1591f9',1,'QOCOSolution']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/search/variables_e.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['p_390',['p',['../structQOCOCscMatrix.html#aec1440d28be057713cfa7a8655d28a71',1,'QOCOCscMatrix::p()'],['../structQOCOProblemData.html#ac8ab25686747edb154cab71cacb08517',1,'QOCOProblemData::p()'],['../structQOCOKKT.html#a449decfbee7d2a4c43d9c651dd51769c',1,'QOCOKKT::p()']]], 4 | ['p_391',['P',['../structQOCOProblemData.html#abdb31a4bf94ade82b694d2635456a6e6',1,'QOCOProblemData']]], 5 | ['pinv_392',['pinv',['../structQOCOKKT.html#a3a44f4ab1182b63af361b7bae1d29498',1,'QOCOKKT']]], 6 | ['pnum_5fnzadded_393',['Pnum_nzadded',['../structQOCOKKT.html#a533086695da2b3b918014831c0a8d6d8',1,'QOCOKKT']]], 7 | ['pnzadded_5fidx_394',['Pnzadded_idx',['../structQOCOKKT.html#aef2409d8e6dad5214eec21b362a12f68',1,'QOCOKKT']]], 8 | ['pregtokkt_395',['PregtoKKT',['../structQOCOKKT.html#a7cb73048831966481cdf1bbe0cc0ca07',1,'QOCOKKT']]], 9 | ['pres_396',['pres',['../structQOCOSolution.html#a0885d2735b7586aed3ccc8a81acda625',1,'QOCOSolution']]] 10 | ]; 11 | -------------------------------------------------------------------------------- /docs/html/search/variables_f.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['q_397',['q',['../structQOCOProblemData.html#a9585eed3044567a25b6a3d8608a298bc',1,'QOCOProblemData']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /docs/html/splitbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/splitbar.png -------------------------------------------------------------------------------- /docs/html/structQOCOKKT__coll__graph.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/html/structQOCOKKT__coll__graph.md5: -------------------------------------------------------------------------------- 1 | 872d7502c519d54d5a84d62f8ee88c67 -------------------------------------------------------------------------------- /docs/html/structQOCOKKT__coll__graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/structQOCOKKT__coll__graph.png -------------------------------------------------------------------------------- /docs/html/structQOCOProblemData__coll__graph.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/html/structQOCOProblemData__coll__graph.md5: -------------------------------------------------------------------------------- 1 | fc73ca2b12a641e83ca0896ed87d8fe2 -------------------------------------------------------------------------------- /docs/html/structQOCOProblemData__coll__graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/structQOCOProblemData__coll__graph.png -------------------------------------------------------------------------------- /docs/html/structQOCOSolver__coll__graph.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/structQOCOSolver__coll__graph.md5: -------------------------------------------------------------------------------- 1 | 719543aaff2920b696ee1f6376cca519 -------------------------------------------------------------------------------- /docs/html/structQOCOSolver__coll__graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/structQOCOSolver__coll__graph.png -------------------------------------------------------------------------------- /docs/html/structQOCOWorkspace__coll__graph.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/html/structQOCOWorkspace__coll__graph.md5: -------------------------------------------------------------------------------- 1 | 4ca0bc6b6737b1c65cd9f83be3756f9f -------------------------------------------------------------------------------- /docs/html/structQOCOWorkspace__coll__graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/structQOCOWorkspace__coll__graph.png -------------------------------------------------------------------------------- /docs/html/structs_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 90626befa3e7fe34b3485586cf0a8b7d -------------------------------------------------------------------------------- /docs/html/structs_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/structs_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/structs_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/html/structs_8h__incl.md5: -------------------------------------------------------------------------------- 1 | d5750c99ff192c397d6e7853fca0f243 -------------------------------------------------------------------------------- /docs/html/structs_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/structs_8h__incl.png -------------------------------------------------------------------------------- /docs/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/sync_off.png -------------------------------------------------------------------------------- /docs/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/sync_on.png -------------------------------------------------------------------------------- /docs/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/tab_a.png -------------------------------------------------------------------------------- /docs/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/tab_b.png -------------------------------------------------------------------------------- /docs/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/tab_h.png -------------------------------------------------------------------------------- /docs/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/tab_s.png -------------------------------------------------------------------------------- /docs/html/timer_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/timer_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 172f7a6fec0f16455fae13af76fdd538 -------------------------------------------------------------------------------- /docs/html/timer_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/timer_8c__incl.png -------------------------------------------------------------------------------- /docs/html/timer_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 01e3b8751e01a1e1f9bfc24cea801f60 -------------------------------------------------------------------------------- /docs/html/timer_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/timer_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/timer_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/html/timer_8h__incl.md5: -------------------------------------------------------------------------------- 1 | ab7a6c0aac147bd8f92f3bceede3e5bd -------------------------------------------------------------------------------- /docs/html/timer_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/timer_8h__incl.png -------------------------------------------------------------------------------- /docs/html/timer__linux_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/html/timer__linux_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 821a88b84360052a41efd73dab9c3806 -------------------------------------------------------------------------------- /docs/html/timer__linux_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/timer__linux_8c__incl.png -------------------------------------------------------------------------------- /docs/html/timer__macos_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/html/timer__macos_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 12d2d27ecb216a0fd154e4b423dc9f25 -------------------------------------------------------------------------------- /docs/html/timer__macos_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/timer__macos_8c__incl.png -------------------------------------------------------------------------------- /docs/html/timer__windows_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/html/timer__windows_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 5747d65f8b567ffc0e42b6eb108ad727 -------------------------------------------------------------------------------- /docs/html/timer__windows_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/timer__windows_8c__incl.png -------------------------------------------------------------------------------- /docs/html/utils_8c__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/html/utils_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 4c3b13bd0fb58648be6defdbc3df9a27 -------------------------------------------------------------------------------- /docs/html/utils_8c__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/utils_8c__incl.png -------------------------------------------------------------------------------- /docs/html/utils_8h__dep__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/html/utils_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 56374c254a0447fd7a54566fa8d1c6d4 -------------------------------------------------------------------------------- /docs/html/utils_8h__dep__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/utils_8h__dep__incl.png -------------------------------------------------------------------------------- /docs/html/utils_8h__incl.map: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/html/utils_8h__incl.md5: -------------------------------------------------------------------------------- 1 | c4c7465b50f1538ef9a1306c7d6dade3 -------------------------------------------------------------------------------- /docs/html/utils_8h__incl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/html/utils_8h__incl.png -------------------------------------------------------------------------------- /docs/install/C.rst: -------------------------------------------------------------------------------- 1 | .. _c_installation: 2 | 3 | C/C++ 4 | ============== 5 | 6 | Build binaries 7 | ----------------- 8 | Building binaries from source requires installation of `cmake `_ and a C compiler such as `clang `_ or `gcc `_. 9 | 10 | Run the following to get the :code:`libqoco.so` shared object file. 11 | 12 | #. Clone the repository and change directory. 13 | .. code:: bash 14 | 15 | git clone https://github.com/qoco-org/qoco 16 | cd qoco 17 | 18 | #. Make build directory and change directory. 19 | .. code:: bash 20 | 21 | mkdir build 22 | cd build 23 | 24 | #. Compile sources. 25 | .. code:: bash 26 | 27 | cmake .. && make 28 | 29 | You should now see two binaries: :code:`libqoco.so` which is the qoco library, and :code:`qoco_demo` which solves a sample SOCP. To build unit tests, add :code:`-DENABLE_TESTING:BOOL=True` to the :code:`cmake` call. Note that when running unit tests, it is required to have :code:`cvxpy` installed. 30 | 31 | Use with CMake 32 | ----------------- 33 | To use in a CMake project add the following to your :code:`CMakeLists.txt` file 34 | 35 | .. code:: bash 36 | 37 | add_subdirectory(QOCO_DIRECTORY) 38 | target_link_libraries(yourExecutable qoco) 39 | 40 | Where :code:`QOCO_DIRECTORY` is the location where :code:`qoco` is cloned. -------------------------------------------------------------------------------- /docs/install/index.rst: -------------------------------------------------------------------------------- 1 | .. _install: 2 | 3 | Get Started 4 | =============== 5 | 6 | To install QOCO refer to the installation guides below for different languages. 7 | 8 | :ref:`C/C++ ` 9 | 10 | :ref:`Python ` 11 | 12 | :ref:`Matlab ` 13 | 14 | .. toctree:: 15 | :maxdepth: 2 16 | :hidden: 17 | 18 | C.rst 19 | python.rst 20 | matlab.rst -------------------------------------------------------------------------------- /docs/install/matlab.rst: -------------------------------------------------------------------------------- 1 | .. _matlab_installation: 2 | 3 | Matlab 4 | ============== 5 | 6 | Build from Source 7 | ----------------- 8 | 9 | The Matlab mex wrapper for QOCO can be built from source as follows. 10 | 11 | #. Clone the repository 12 | .. code:: bash 13 | 14 | git clone --recursive https://github.com/qoco-org/qoco-matlab 15 | 16 | #. Open up Matlab in the :code:`qoco-matlab` directory and run the following in the Matlab terminal 17 | .. code:: bash 18 | 19 | make_qoco 20 | 21 | #. Test your installation by running the following in the Matlab terminal 22 | .. code:: bash 23 | 24 | run_qoco_tests 25 | 26 | #. Add :code:`qoco-matlab` to your Matlab path by executing the following in the Matlab terminal 27 | .. code:: bash 28 | 29 | addpath('.') 30 | savepath 31 | -------------------------------------------------------------------------------- /docs/install/python.rst: -------------------------------------------------------------------------------- 1 | .. _python_installation: 2 | 3 | Python 4 | ============== 5 | 6 | Pip 7 | ---- 8 | QOCO is on PyPI and can be installed as follows 9 | 10 | .. code:: bash 11 | 12 | pip install qoco 13 | 14 | 15 | Build from Source 16 | ----------------- 17 | 18 | The Python wrapper for QOCO can also be built from source as follows 19 | 20 | .. code:: bash 21 | 22 | git clone https://github.com/qoco-org/qoco-python 23 | cd qoco-python 24 | pip install . -------------------------------------------------------------------------------- /docs/latex/Makefile: -------------------------------------------------------------------------------- 1 | LATEX_CMD=pdflatex 2 | 3 | all: refman.pdf 4 | 5 | pdf: refman.pdf 6 | 7 | refman.pdf: clean refman.tex 8 | $(LATEX_CMD) refman 9 | makeindex refman.idx 10 | $(LATEX_CMD) refman 11 | latex_count=8 ; \ 12 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ 13 | do \ 14 | echo "Rerunning latex...." ;\ 15 | $(LATEX_CMD) refman ;\ 16 | latex_count=`expr $$latex_count - 1` ;\ 17 | done 18 | makeindex refman.idx 19 | $(LATEX_CMD) refman 20 | 21 | 22 | clean: 23 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 24 | -------------------------------------------------------------------------------- /docs/latex/annotated.tex: -------------------------------------------------------------------------------- 1 | \doxysection{Class List} 2 | Here are the classes, structs, unions and interfaces with brief descriptions\+:\begin{DoxyCompactList} 3 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOCscMatrix}{QOCOCsc\+Matrix}} \\*Compressed sparse column format matrices }{\pageref{structQOCOCscMatrix}}{} 4 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOKKT}{QOCOKKT}} \\*Contains all data needed for constructing and modifying KKT matrix and performing predictor-\/corrector step }{\pageref{structQOCOKKT}}{} 5 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOProblemData}{QOCOProblem\+Data}} \\*SOCP problem data }{\pageref{structQOCOProblemData}}{} 6 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOSettings}{QOCOSettings}} \\*QOCO solver settings }{\pageref{structQOCOSettings}}{} 7 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOSolution}{QOCOSolution}} }{\pageref{structQOCOSolution}}{} 8 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOSolver}{QOCOSolver}} \\*QOCO Solver struct. Contains all information about the state of the solver }{\pageref{structQOCOSolver}}{} 9 | \item\contentsline{section}{\mbox{\hyperlink{structQOCOWorkspace}{QOCOWorkspace}} \\*QOCO Workspace }{\pageref{structQOCOWorkspace}}{} 10 | \end{DoxyCompactList} 11 | -------------------------------------------------------------------------------- /docs/latex/cone_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 7c319eeda52071cebedfe01228a60e5b -------------------------------------------------------------------------------- /docs/latex/cone_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/cone_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/cone_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | b91e3c7ba929216d54fccda957b9380a -------------------------------------------------------------------------------- /docs/latex/cone_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/cone_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/cone_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 39792bb7617cabcdb4982e02f9ca6c27 -------------------------------------------------------------------------------- /docs/latex/cone_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/cone_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/definitions_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 35d24517cc6be74aee430d6a06d5256a -------------------------------------------------------------------------------- /docs/latex/definitions_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/definitions_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/definitions_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 62f9b31b58c6434c2aa4b04e95fe30a6 -------------------------------------------------------------------------------- /docs/latex/definitions_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/definitions_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{dir_68267d1309a1af8e8297ef4c3efbcdba}{}\doxysection{/home/govind/\+Desktop/git/qoco/src Directory Reference} 2 | \label{dir_68267d1309a1af8e8297ef4c3efbcdba}\index{/home/govind/Desktop/git/qoco/src Directory Reference@{/home/govind/Desktop/git/qoco/src Directory Reference}} 3 | Directory dependency graph for src\+:\nopagebreak 4 | \begin{figure}[H] 5 | \begin{center} 6 | \leavevmode 7 | \includegraphics[width=134pt]{dir_68267d1309a1af8e8297ef4c3efbcdba_dep} 8 | \end{center} 9 | \end{figure} 10 | \doxysubsection*{Files} 11 | \begin{DoxyCompactItemize} 12 | \item 13 | file \mbox{\hyperlink{cone_8c}{cone.\+c}} 14 | \item 15 | file \mbox{\hyperlink{equilibration_8c}{equilibration.\+c}} 16 | \item 17 | file \mbox{\hyperlink{input__validation_8c}{input\+\_\+validation.\+c}} 18 | \item 19 | file \mbox{\hyperlink{kkt_8c}{kkt.\+c}} 20 | \item 21 | file \mbox{\hyperlink{linalg_8c}{linalg.\+c}} 22 | \item 23 | file \mbox{\hyperlink{qoco__api_8c}{qoco\+\_\+api.\+c}} 24 | \item 25 | file \mbox{\hyperlink{qoco__error_8c}{qoco\+\_\+error.\+c}} 26 | \item 27 | file \mbox{\hyperlink{timer__linux_8c}{timer\+\_\+linux.\+c}} 28 | \item 29 | file \mbox{\hyperlink{timer__macos_8c}{timer\+\_\+macos.\+c}} 30 | \item 31 | file \mbox{\hyperlink{utils_8c}{utils.\+c}} 32 | \end{DoxyCompactItemize} 33 | -------------------------------------------------------------------------------- /docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5: -------------------------------------------------------------------------------- 1 | 5851137f5502eae57e6c98e22f15a310 -------------------------------------------------------------------------------- /docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.pdf -------------------------------------------------------------------------------- /docs/latex/dir_d44c64559bbebec7f509842c48db8b23.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{dir_d44c64559bbebec7f509842c48db8b23}{}\doxysection{/home/govind/\+Desktop/git/qoco/include Directory Reference} 2 | \label{dir_d44c64559bbebec7f509842c48db8b23}\index{/home/govind/Desktop/git/qoco/include Directory Reference@{/home/govind/Desktop/git/qoco/include Directory Reference}} 3 | \doxysubsection*{Files} 4 | \begin{DoxyCompactItemize} 5 | \item 6 | file \mbox{\hyperlink{cone_8h}{cone.\+h}} 7 | \item 8 | file \mbox{\hyperlink{definitions_8h}{definitions.\+h}} 9 | \item 10 | file \mbox{\hyperlink{enums_8h}{enums.\+h}} 11 | \item 12 | file \mbox{\hyperlink{equilibration_8h}{equilibration.\+h}} 13 | \item 14 | file \mbox{\hyperlink{input__validation_8h}{input\+\_\+validation.\+h}} 15 | \item 16 | file \mbox{\hyperlink{kkt_8h}{kkt.\+h}} 17 | \item 18 | file \mbox{\hyperlink{linalg_8h}{linalg.\+h}} 19 | \item 20 | file \mbox{\hyperlink{qoco_8h}{qoco.\+h}} 21 | \item 22 | file \mbox{\hyperlink{qoco__api_8h}{qoco\+\_\+api.\+h}} 23 | \item 24 | file \mbox{\hyperlink{qoco__error_8h}{qoco\+\_\+error.\+h}} 25 | \item 26 | file \mbox{\hyperlink{structs_8h}{structs.\+h}} 27 | \item 28 | file \mbox{\hyperlink{timer_8h}{timer.\+h}} 29 | \item 30 | file \mbox{\hyperlink{utils_8h}{utils.\+h}} 31 | \end{DoxyCompactItemize} 32 | -------------------------------------------------------------------------------- /docs/latex/enums_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 0db20c38d6b91a4959e83798ecad4500 -------------------------------------------------------------------------------- /docs/latex/enums_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/enums_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/equilibration_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 48a8a2503b45c3ee0d5a13ccf522388e -------------------------------------------------------------------------------- /docs/latex/equilibration_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/equilibration_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/equilibration_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 8156e10e713c8ec0d2d0fbd95dc27cd7 -------------------------------------------------------------------------------- /docs/latex/equilibration_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/equilibration_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/equilibration_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 24cac2b75da56d89f67e74b4b247e0eb -------------------------------------------------------------------------------- /docs/latex/equilibration_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/equilibration_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/input__validation_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 3eb24d5100e9e657704eb21683679d09 -------------------------------------------------------------------------------- /docs/latex/input__validation_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/input__validation_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/input__validation_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | ad9149511b3485249efdfa88fb6e9f04 -------------------------------------------------------------------------------- /docs/latex/input__validation_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/input__validation_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/input__validation_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 0a40919b17b50918ba2a289eb4710b15 -------------------------------------------------------------------------------- /docs/latex/input__validation_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/input__validation_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/kkt_8c__incl.md5: -------------------------------------------------------------------------------- 1 | d4a39f35475b88f0c5d733fb0cb4cfdd -------------------------------------------------------------------------------- /docs/latex/kkt_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/kkt_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/kkt_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | ead8fb3dc5edb2cf587cc9a58e44e578 -------------------------------------------------------------------------------- /docs/latex/kkt_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/kkt_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/kkt_8h__incl.md5: -------------------------------------------------------------------------------- 1 | bd5193f0708d75984e1fd390b10e411e -------------------------------------------------------------------------------- /docs/latex/kkt_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/kkt_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/linalg_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 6af08f36600d1d5ec14054af85b7e949 -------------------------------------------------------------------------------- /docs/latex/linalg_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/linalg_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/linalg_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 6d56bc45244f820a7ecb2a80ed1b139c -------------------------------------------------------------------------------- /docs/latex/linalg_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/linalg_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/linalg_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 9c5ef1cd15d401f21c6d6c528427f8d4 -------------------------------------------------------------------------------- /docs/latex/linalg_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/linalg_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco_8h.tex: -------------------------------------------------------------------------------- 1 | \hypertarget{qoco_8h}{}\doxysection{/home/govind/\+Desktop/git/qoco/include/qoco.h File Reference} 2 | \label{qoco_8h}\index{/home/govind/Desktop/git/qoco/include/qoco.h@{/home/govind/Desktop/git/qoco/include/qoco.h}} 3 | {\ttfamily \#include \char`\"{}cone.\+h\char`\"{}}\newline 4 | {\ttfamily \#include \char`\"{}definitions.\+h\char`\"{}}\newline 5 | {\ttfamily \#include \char`\"{}qoco\+\_\+api.\+h\char`\"{}}\newline 6 | {\ttfamily \#include \char`\"{}structs.\+h\char`\"{}}\newline 7 | {\ttfamily \#include \char`\"{}utils.\+h\char`\"{}}\newline 8 | Include dependency graph for qoco.\+h\+:\nopagebreak 9 | \begin{figure}[H] 10 | \begin{center} 11 | \leavevmode 12 | \includegraphics[width=350pt]{qoco_8h__incl} 13 | \end{center} 14 | \end{figure} 15 | 16 | 17 | \doxysubsection{Detailed Description} 18 | \begin{DoxyAuthor}{Author} 19 | Govind M. Chari \href{mailto:govindchari1@gmail.com}{\texttt{ govindchari1@gmail.\+com}} 20 | \end{DoxyAuthor} 21 | \hypertarget{utils_8c_LICENSE}{}\doxysubsection{LICENSE}\label{utils_8c_LICENSE} 22 | Copyright (c) 2024, Govind M. Chari This source code is licensed under the BSD 3-\/Clause License\hypertarget{utils_8h_DESCRIPTION}{}\doxysubsection{DESCRIPTION}\label{utils_8h_DESCRIPTION} 23 | This is the file that should be included when using QOCO. -------------------------------------------------------------------------------- /docs/latex/qoco_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 116e0d37a6870175ebd5953e4af99c14 -------------------------------------------------------------------------------- /docs/latex/qoco_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco__api_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 382099f9ee6c68b3d1d09809e56047be -------------------------------------------------------------------------------- /docs/latex/qoco__api_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco__api_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco__api_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 816c04e8d4096c777cf624e5aed5ca7c -------------------------------------------------------------------------------- /docs/latex/qoco__api_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco__api_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco__api_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 14c6e166865da70122cf1b0626486173 -------------------------------------------------------------------------------- /docs/latex/qoco__api_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco__api_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco__error_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 19f2e76d25086048bc5898d354c06387 -------------------------------------------------------------------------------- /docs/latex/qoco__error_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco__error_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco__error_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 2859440b9d356cb69057abecd171683f -------------------------------------------------------------------------------- /docs/latex/qoco__error_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco__error_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/qoco__error_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 72b8ede1c280842b93a91de99fa51c24 -------------------------------------------------------------------------------- /docs/latex/qoco__error_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/qoco__error_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/refman.ilg: -------------------------------------------------------------------------------- 1 | This is makeindex, version 2.15 [TeX Live 2022/dev] (kpathsea + Thai support). 2 | Scanning input file refman.idx....done (600 entries accepted, 0 rejected). 3 | Sorting entries.......done (5764 comparisons). 4 | Generating output file refman.ind....done (911 lines written, 0 warnings). 5 | Output written in refman.ind. 6 | Transcript written in refman.ilg. 7 | -------------------------------------------------------------------------------- /docs/latex/refman.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/refman.pdf -------------------------------------------------------------------------------- /docs/latex/refman.synctex.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/refman.synctex.gz -------------------------------------------------------------------------------- /docs/latex/structQOCOKKT__coll__graph.md5: -------------------------------------------------------------------------------- 1 | bd8b9321099a3d2c00d9a032b11864f3 -------------------------------------------------------------------------------- /docs/latex/structQOCOKKT__coll__graph.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/structQOCOKKT__coll__graph.pdf -------------------------------------------------------------------------------- /docs/latex/structQOCOProblemData__coll__graph.md5: -------------------------------------------------------------------------------- 1 | 62ae04364be8b0942a2f176866726c02 -------------------------------------------------------------------------------- /docs/latex/structQOCOProblemData__coll__graph.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/structQOCOProblemData__coll__graph.pdf -------------------------------------------------------------------------------- /docs/latex/structQOCOSolver__coll__graph.md5: -------------------------------------------------------------------------------- 1 | 8f7efab858c63d5c53fcb487c27a8613 -------------------------------------------------------------------------------- /docs/latex/structQOCOSolver__coll__graph.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/structQOCOSolver__coll__graph.pdf -------------------------------------------------------------------------------- /docs/latex/structQOCOWorkspace__coll__graph.md5: -------------------------------------------------------------------------------- 1 | b833b4e1d2ebd6fd67e3630cc7e9bba5 -------------------------------------------------------------------------------- /docs/latex/structQOCOWorkspace__coll__graph.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/structQOCOWorkspace__coll__graph.pdf -------------------------------------------------------------------------------- /docs/latex/structs_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 0d01a5c579e062f3321a23c867cc3878 -------------------------------------------------------------------------------- /docs/latex/structs_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/structs_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/structs_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 778a8233fb815e3663658ba44054f13b -------------------------------------------------------------------------------- /docs/latex/structs_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/structs_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/timer_8c__incl.md5: -------------------------------------------------------------------------------- 1 | e74f03a4206225315d1c8f89229b49b8 -------------------------------------------------------------------------------- /docs/latex/timer_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/timer_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/timer_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 154c4084ec21be8e92d1259883bad2a1 -------------------------------------------------------------------------------- /docs/latex/timer_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/timer_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/timer_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 672d659fb69d9ff4f35b3c9603d9c9e7 -------------------------------------------------------------------------------- /docs/latex/timer_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/timer_8h__incl.pdf -------------------------------------------------------------------------------- /docs/latex/timer__linux_8c__incl.md5: -------------------------------------------------------------------------------- 1 | a4b6e5544259be77f00a4d3711c93412 -------------------------------------------------------------------------------- /docs/latex/timer__linux_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/timer__linux_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/timer__macos_8c__incl.md5: -------------------------------------------------------------------------------- 1 | cad4ef82b7a8d9f244b5b7f3f7417cc2 -------------------------------------------------------------------------------- /docs/latex/timer__macos_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/timer__macos_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/timer__windows_8c__incl.md5: -------------------------------------------------------------------------------- 1 | b29eab77d877e6564e4f803876674ced -------------------------------------------------------------------------------- /docs/latex/timer__windows_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/timer__windows_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/todo.tex: -------------------------------------------------------------------------------- 1 | 2 | \begin{DoxyRefList} 3 | \item[Member \mbox{\hyperlink{cone_8c_a89ae3d348aafeaea9d7792c984cd46ef}{exact\+\_\+linesearch}} (QOCOFloat $\ast$u, QOCOFloat $\ast$\+Du, QOCOFloat f, \mbox{\hyperlink{structQOCOSolver}{QOCOSolver}} $\ast$solver)]\label{todo__todo000001}% 4 | \Hypertarget{todo__todo000001}% 5 | get exact\+\_\+linesearch working for SOCs. 6 | \end{DoxyRefList} -------------------------------------------------------------------------------- /docs/latex/utils_8c__incl.md5: -------------------------------------------------------------------------------- 1 | 75b889dddb72b4826bb4b5c16608e5c3 -------------------------------------------------------------------------------- /docs/latex/utils_8c__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/utils_8c__incl.pdf -------------------------------------------------------------------------------- /docs/latex/utils_8h__dep__incl.md5: -------------------------------------------------------------------------------- 1 | 854b5e899b44e446a60b69175c1abec6 -------------------------------------------------------------------------------- /docs/latex/utils_8h__dep__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/utils_8h__dep__incl.pdf -------------------------------------------------------------------------------- /docs/latex/utils_8h__incl.md5: -------------------------------------------------------------------------------- 1 | 65674d036c8f4fac5d7d2ad7f1f08f5c -------------------------------------------------------------------------------- /docs/latex/utils_8h__incl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qoco-org/qoco/7526022691e75987aa7b7f1a6e897298011795ee/docs/latex/utils_8h__incl.pdf -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=. 11 | set BUILDDIR=_build 12 | 13 | %SPHINXBUILD% >NUL 2>NUL 14 | if errorlevel 9009 ( 15 | echo. 16 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 17 | echo.installed, then set the SPHINXBUILD environment variable to point 18 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 19 | echo.may add the Sphinx directory to PATH. 20 | echo. 21 | echo.If you don't have Sphinx installed, grab it from 22 | echo.https://www.sphinx-doc.org/ 23 | exit /b 1 24 | ) 25 | 26 | if "%1" == "" goto help 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /docs/parsers/cvxpy.rst: -------------------------------------------------------------------------------- 1 | CVXPY 2 | ===== 3 | 4 | QOCO can be called from `CVXPY `_ from version 1.6.4 onwards. 5 | 6 | After :ref:`installing QOCO ` and defining your problem in CVXPY, QOCO can be called as follows 7 | 8 | .. code:: python 9 | 10 | problem.solve(solver='QOCO', max_iters=100) 11 | 12 | 13 | where we set the :code:`max_iters` option to :code:`100`. For a full list of settings that can be changed, refer to :ref:`settings `. 14 | 15 | For some example problems that can be solved with CVXPY refer to `examples `_. To solve these problems with QOCO, add the keyword argument :code:`solver='QOCO'` to the :code:`problem.solve()` function. 16 | 17 | -------------------------------------------------------------------------------- /docs/parsers/cvxpygen.rst: -------------------------------------------------------------------------------- 1 | CVXPYgen 2 | ======== 3 | 4 | QOCOGEN can be called from `CVXPYgen `_ from version 0.5.0 onwards to generate a custom solver and then to call the custom solver from Python. 5 | 6 | After :ref:`installing QOCO ` and defining your problem in CVXPY, QOCOGEN can be called to generate a custom solver using CVXPYgen as follows 7 | 8 | .. code:: python 9 | 10 | from cvxpygen import cpg 11 | 12 | # problem is a CVXPY problem 13 | cpg.generate_code(problem, code_dir='solver_directory', solver='QOCO') 14 | 15 | 16 | To call the custom solver through CVXPYgen, run 17 | 18 | .. code:: python 19 | 20 | from solver_directory.cpg_solver import cpg_solve 21 | problem.register_solve('CPG', cpg_solve) 22 | problem.solve(method='CPG', max_iters=100) 23 | 24 | where we set the :code:`max_iters` option to :code:`100`. For a full list of settings that can be changed, refer to :ref:`settings `. 25 | 26 | For an example of setting up and solving a problem using QOCO through CVXPY and QOCOGEN through CVXPYgen, see :ref:`settings `. 27 | -------------------------------------------------------------------------------- /docs/parsers/index.rst: -------------------------------------------------------------------------------- 1 | Parsers 2 | ========== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :glob: 7 | 8 | cvxpy.rst 9 | cvxpygen.rst -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx 2 | sphinx-rtd-theme 3 | breathe -------------------------------------------------------------------------------- /docs/xml/combine.xslt: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/xml/dir_68267d1309a1af8e8297ef4c3efbcdba.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /home/govind/Desktop/git/qoco/src 5 | cone.c 6 | equilibration.c 7 | input_validation.c 8 | kkt.c 9 | linalg.c 10 | qoco_api.c 11 | qoco_error.c 12 | timer_linux.c 13 | timer_macos.c 14 | utils.c 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /docs/xml/dir_d44c64559bbebec7f509842c48db8b23.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /home/govind/Desktop/git/qoco/include 5 | cone.h 6 | definitions.h 7 | enums.h 8 | equilibration.h 9 | input_validation.h 10 | kkt.h 11 | linalg.h 12 | qoco.h 13 | qoco_api.h 14 | qoco_error.h 15 | structs.h 16 | timer.h 17 | utils.h 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /docs/xml/todo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | todo 5 | Todo List 6 | 7 | 8 | 9 | 10 | Member exact_linesearch (QOCOFloat *u, QOCOFloat *Du, QOCOFloat f, QOCOSolver *solver) 11 | get exact_linesearch working for SOCs. 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/xml/xml.xsd: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /include/enums.h: -------------------------------------------------------------------------------- 1 | #ifndef QOCO_ENUMS_H 2 | #define QOCO_ENUMS_H 3 | 4 | /** 5 | * @brief Enum for error codes. 6 | * 7 | */ 8 | enum qoco_error_code { 9 | QOCO_NO_ERROR = 0, 10 | 11 | // Error in problem data validation. 12 | QOCO_DATA_VALIDATION_ERROR, 13 | 14 | // Error in settings validation. 15 | QOCO_SETTINGS_VALIDATION_ERROR, 16 | 17 | // Error in setup. 18 | QOCO_SETUP_ERROR, 19 | 20 | // Error in performing amd ordering. 21 | QOCO_AMD_ERROR, 22 | 23 | // Memory allocation error. 24 | QOCO_MALLOC_ERROR 25 | }; 26 | 27 | /** 28 | * @brief Enum for solver status. 29 | * 30 | */ 31 | enum qoco_solve_status { 32 | // Unsolved (Solver needs to be called.) 33 | QOCO_UNSOLVED = 0, 34 | 35 | // Solved successfully. 36 | QOCO_SOLVED = 1, 37 | 38 | // Solved Inaccurately. 39 | QOCO_SOLVED_INACCURATE, 40 | 41 | // Numerical error (occurs when a = 0 and inaccurate stopping criteria not 42 | // met). 43 | QOCO_NUMERICAL_ERROR, 44 | 45 | // Maximum number of iterations reached. 46 | QOCO_MAX_ITER, 47 | }; 48 | 49 | #endif /* #ifndef QOCO_ENUMS_H */ -------------------------------------------------------------------------------- /include/equilibration.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file equilibration.h 3 | * @author Govind M. Chari 4 | * 5 | * @section LICENSE 6 | * 7 | * Copyright (c) 2024, Govind M. Chari 8 | * This source code is licensed under the BSD 3-Clause License 9 | * 10 | * @section DESCRIPTION 11 | * 12 | * Provides functions to equilibrate problem data and scale variables. 13 | */ 14 | 15 | #ifndef QOCO_EQUILIBRATION_H 16 | #define QOCO_EQUILIBRATION_H 17 | 18 | #include "qoco_linalg.h" 19 | #include "structs.h" 20 | 21 | /** 22 | * @brief Applies modified ruiz equilibration to scale data matrices. Computes 23 | D, E, F, and k as shown below to make the row and column infinity norms equal 24 | for the scaled KKT matrix. 25 | * 26 | * * clang-format off 27 | * 28 | * [ D ] [ kP A^T G^T ] [ D ] 29 | * | E | | A 0 0 | | E | 30 | * [ F ] [ G 0 0 ] [ F ] 31 | * 32 | * clang-format on 33 | 34 | * 35 | * @param solver Pointer to solver. 36 | */ 37 | void ruiz_equilibration(QOCOSolver* solver); 38 | 39 | /** 40 | * @brief Undo variable transformation induced by ruiz equilibration. 41 | * 42 | * @param work Pointer to workspace. 43 | */ 44 | void unscale_variables(QOCOWorkspace* work); 45 | 46 | #endif /* #ifndef QOCO_EQUILIBRATION_H */ -------------------------------------------------------------------------------- /include/qoco.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file qoco.h 3 | * @author Govind M. Chari 4 | * 5 | * @section LICENSE 6 | * 7 | * Copyright (c) 2024, Govind M. Chari 8 | * This source code is licensed under the BSD 3-Clause License 9 | * 10 | * @section DESCRIPTION 11 | * 12 | * This is the file that should be included when using QOCO. 13 | */ 14 | 15 | #ifndef QOCO_H 16 | #define QOCO_H 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | #include "cone.h" 23 | #include "definitions.h" 24 | #include "qoco_api.h" 25 | #include "qoco_utils.h" 26 | #include "structs.h" 27 | 28 | #ifdef __cplusplus 29 | } 30 | #endif 31 | 32 | #endif /* #ifndef QOCO_H */ -------------------------------------------------------------------------------- /include/qoco_status.h: -------------------------------------------------------------------------------- 1 | #ifndef QOCO_STATUS_H 2 | #define QOCO_STATUS_H 3 | 4 | #include "definitions.h" 5 | #include "enums.h" 6 | #include 7 | 8 | /** 9 | * @brief Function to print error messages. 10 | * 11 | * @param error_code 12 | * @return Error code as an QOCOInt. 13 | */ 14 | QOCOInt qoco_error(enum qoco_error_code error_code); 15 | 16 | extern const char* QOCO_ERROR_MESSAGE[]; 17 | extern const char* QOCO_SOLVE_STATUS_MESSAGE[]; 18 | 19 | #endif /* #ifndef QOCO_STATUS_H*/ -------------------------------------------------------------------------------- /lib/amd/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.18) 2 | 3 | set( 4 | amd_src 5 | amd_1.c 6 | amd_2.c 7 | amd_aat.c 8 | amd_control.c 9 | amd_defaults.c 10 | amd_dump.c 11 | amd_info.c 12 | amd_order.c 13 | amd_post_tree.c 14 | amd_postorder.c 15 | amd_preprocess.c 16 | amd_valid.c 17 | amd_version.c 18 | SuiteSparse_config.c 19 | ) 20 | 21 | set( 22 | amd_headers 23 | amd.h 24 | amd_internal.h 25 | SuiteSparse_config.h 26 | ) 27 | 28 | # Disable timer to build on Windows. 29 | add_compile_definitions(NTIMER) 30 | set(CMAKE_POSITION_INDEPENDENT_CODE ON) 31 | add_library (amd OBJECT ${amd_src} ${amd_headers}) 32 | target_include_directories(amd PRIVATE ${PROJECT_SOURCE_DIR}/include) 33 | -------------------------------------------------------------------------------- /lib/amd/amd_defaults.c: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // AMD/Source/amd_defaults: set defaults for AMD 3 | //------------------------------------------------------------------------------ 4 | 5 | // AMD, Copyright (c) 1996-2022, Timothy A. Davis, Patrick R. Amestoy, and 6 | // Iain S. Duff. All Rights Reserved. 7 | // SPDX-License-Identifier: BSD-3-clause 8 | 9 | //------------------------------------------------------------------------------ 10 | 11 | /* User-callable. Sets default control parameters for AMD. See amd.h 12 | * for details. 13 | */ 14 | 15 | #include "amd_internal.h" 16 | 17 | /* ========================================================================= */ 18 | /* === AMD defaults ======================================================== */ 19 | /* ========================================================================= */ 20 | 21 | void AMD_defaults(double Control[]) 22 | { 23 | Int i; 24 | 25 | if (Control != (double*)NULL) { 26 | for (i = 0; i < AMD_CONTROL; i++) { 27 | Control[i] = 0; 28 | } 29 | Control[AMD_DENSE] = AMD_DEFAULT_DENSE; 30 | Control[AMD_AGGRESSIVE] = AMD_DEFAULT_AGGRESSIVE; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/amd/amd_version.c: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // AMD/Source/amd_version: return AMD version 3 | //------------------------------------------------------------------------------ 4 | 5 | // AMD, Copyright (c) 1996-2023, Timothy A. Davis, Patrick R. Amestoy, and 6 | // Iain S. Duff. All Rights Reserved. 7 | // SPDX-License-Identifier: BSD-3-clause 8 | 9 | //------------------------------------------------------------------------------ 10 | 11 | #include "amd_internal.h" 12 | 13 | void amd_version(int version[3]) 14 | { 15 | version[0] = AMD_MAIN_VERSION; 16 | version[1] = AMD_SUB_VERSION; 17 | version[2] = AMD_SUBSUB_VERSION; 18 | } 19 | -------------------------------------------------------------------------------- /lib/qdldl/.editorconfig: -------------------------------------------------------------------------------- 1 | # https://editorconfig.org 2 | 3 | root = true 4 | 5 | [*.{c, h, cpp, hpp}] 6 | charset = utf-8 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | trim_trailing_whitespace = true 11 | -------------------------------------------------------------------------------- /lib/qdldl/.github/dependabot.yaml: -------------------------------------------------------------------------------- 1 | # Check the GitHub actions for updates 2 | version: 2 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | 9 | -------------------------------------------------------------------------------- /lib/qdldl/.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.a 22 | *.la 23 | *.lo 24 | 25 | # Shared objects (inc. Windows DLLs) 26 | *.dll 27 | *.so 28 | *.so.* 29 | *.dylib 30 | 31 | # Executables 32 | *.exe 33 | *.out 34 | *.app 35 | *.i*86 36 | *.x86_64 37 | *.hex 38 | 39 | # Debug files 40 | *.dSYM/ 41 | *.su 42 | *.idb 43 | *.pdb 44 | 45 | # Kernel Module Compile Results 46 | *.mod* 47 | *.cmd 48 | .tmp_versions/ 49 | modules.order 50 | Module.symvers 51 | Mkfile.old 52 | dkms.conf 53 | 54 | # OSX stuff 55 | .DS_Store 56 | 57 | # Ignore cmake build 58 | build/ 59 | 60 | # Editors 61 | .vscode/ 62 | -------------------------------------------------------------------------------- /lib/qdldl/configure/cmake/cmake_uninstall.cmake.in: -------------------------------------------------------------------------------- 1 | if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") 2 | message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt") 3 | endif(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt") 4 | 5 | file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) 6 | string(REGEX REPLACE "\n" ";" files "${files}") 7 | foreach(file ${files}) 8 | message(STATUS "Uninstalling $ENV{DESTDIR}${file}") 9 | if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 10 | exec_program( 11 | "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" 12 | OUTPUT_VARIABLE rm_out 13 | RETURN_VALUE rm_retval 14 | ) 15 | if(NOT "${rm_retval}" STREQUAL 0) 16 | message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") 17 | endif(NOT "${rm_retval}" STREQUAL 0) 18 | else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 19 | message(STATUS "File $ENV{DESTDIR}${file} does not exist.") 20 | endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") 21 | endforeach(file) 22 | -------------------------------------------------------------------------------- /lib/qdldl/configure/qdldl_types.h.in: -------------------------------------------------------------------------------- 1 | #ifndef QDLDL_TYPES_H 2 | # define QDLDL_TYPES_H 3 | 4 | # ifdef __cplusplus 5 | extern "C" { 6 | # endif /* ifdef __cplusplus */ 7 | 8 | #include //for the QDLDL_INT_TYPE_MAX 9 | 10 | // QDLDL integer and float types 11 | 12 | typedef @QDLDL_INT_TYPE@ QDLDL_int; /* for indices */ 13 | typedef @QDLDL_FLOAT_TYPE@ QDLDL_float; /* for numerical values */ 14 | typedef @QDLDL_BOOL_TYPE@ QDLDL_bool; /* for boolean values */ 15 | 16 | //Maximum value of the signed type QDLDL_int. 17 | #define QDLDL_INT_MAX @QDLDL_INT_TYPE_MAX@ 18 | 19 | /* 20 | * Configuration options 21 | */ 22 | 23 | /* When defined, QDLDL is using floats instead of doubles */ 24 | #cmakedefine QDLDL_FLOAT 25 | 26 | /* When defined, QDLDL is using long long instead of int types */ 27 | #cmakedefine QDLDL_LONG 28 | 29 | # ifdef __cplusplus 30 | } 31 | # endif /* ifdef __cplusplus */ 32 | 33 | #endif /* ifndef QDLDL_TYPES_H */ 34 | -------------------------------------------------------------------------------- /lib/qdldl/configure/qdldl_version.h.in: -------------------------------------------------------------------------------- 1 | #ifndef QDLDL_VERSION_H_ 2 | #define QDLDL_VERSION_H_ 3 | 4 | #define QDLDL_VERSION_MAJOR @QDLDL_VERSION_MAJOR@ 5 | #define QDLDL_VERSION_MINOR @QDLDL_VERSION_MINOR@ 6 | #define QDLDL_VERSION_PATCH @QDLDL_VERSION_PATCH@ 7 | 8 | #endif // #ifndef QDLDL_VERSION_H_ 9 | -------------------------------------------------------------------------------- /lib/qdldl/include/.gitignore: -------------------------------------------------------------------------------- 1 | qdldl_types.h 2 | qdldl_version.h 3 | -------------------------------------------------------------------------------- /lib/qdldl/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(test_headers 2 | ${CMAKE_CURRENT_SOURCE_DIR}/test_basic.h 3 | ${CMAKE_CURRENT_SOURCE_DIR}/test_identity.h 4 | ${CMAKE_CURRENT_SOURCE_DIR}/test_rank_deficient.h 5 | ${CMAKE_CURRENT_SOURCE_DIR}/test_singleton.h 6 | ${CMAKE_CURRENT_SOURCE_DIR}/test_sym_structure.h 7 | ${CMAKE_CURRENT_SOURCE_DIR}/test_tril_structure.h 8 | ${CMAKE_CURRENT_SOURCE_DIR}/test_two_by_two.h 9 | ${CMAKE_CURRENT_SOURCE_DIR}/test_zero_on_diag.h 10 | ${CMAKE_CURRENT_SOURCE_DIR}/test_osqp_kkt.h 11 | PARENT_SCOPE) 12 | 13 | # Include this directory for test headers 14 | include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 15 | -------------------------------------------------------------------------------- /lib/qdldl/tests/test_tril_structure.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of QDLDL, a library for performing the LDL^T factorization 3 | * of a symmetric indefinite matrix. 4 | * 5 | * QDLDL is part of the OSQP project, and is available at https://github.com/osqp/qdldl. 6 | * 7 | * Copyright 2018, Paul Goulart, The OSQP developers 8 | * 9 | * Licensed under the Apache License, Version 2.0 (the "License"); 10 | * you may not use this file except in compliance with the License. 11 | * You may obtain a copy of the License at 12 | * 13 | * http://www.apache.org/licenses/LICENSE-2.0 14 | * 15 | * Unless required by applicable law or agreed to in writing, software 16 | * distributed under the License is distributed on an "AS IS" BASIS, 17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | * See the License for the specific language governing permissions and 19 | * limitations under the License. 20 | * 21 | * SPDX-License-Identifier: Apache-2.0 22 | */ 23 | 24 | static char* test_tril_structure() 25 | { 26 | //A matrix data 27 | QDLDL_int Ap[] = {0, 2, 3}; 28 | QDLDL_int Ai[] = {0, 1, 1}; 29 | QDLDL_float Ax[] = {5.0,1.0,5.0}; 30 | QDLDL_int An = 2; 31 | 32 | // RHS for Ax = b 33 | QDLDL_float b[] = {1,1}; 34 | 35 | //x replaces b during solve 36 | int status = ldl_factor_solve(An,Ap,Ai,Ax,b); 37 | 38 | mu_assert("Tril input not detected", status < 0); 39 | 40 | return 0; 41 | } 42 | -------------------------------------------------------------------------------- /src/qoco_status.c: -------------------------------------------------------------------------------- 1 | #include "qoco_status.h" 2 | 3 | QOCOInt qoco_error(enum qoco_error_code error_code) 4 | { 5 | printf("ERROR: %s\n", QOCO_ERROR_MESSAGE[error_code]); 6 | return (QOCOInt)error_code; 7 | } 8 | 9 | // clang-format off 10 | const char *QOCO_ERROR_MESSAGE[] = { 11 | "", // Error codes start from 1. 12 | "data validation error", 13 | "settings validation error", 14 | "amd error", 15 | "memory allocation error" 16 | }; 17 | 18 | const char *QOCO_SOLVE_STATUS_MESSAGE[] = { 19 | "unsolved", // Solver not run. 20 | "solved", 21 | "solved inaccurately", 22 | "numerical error", 23 | "maximum iterations reached", 24 | }; 25 | // clang-format on 26 | -------------------------------------------------------------------------------- /src/timer_linux.c: -------------------------------------------------------------------------------- 1 | #include "timer.h" 2 | 3 | void start_timer(QOCOTimer* timer) 4 | { 5 | clock_gettime(CLOCK_MONOTONIC, &timer->tic); 6 | } 7 | 8 | void stop_timer(QOCOTimer* timer) 9 | { 10 | clock_gettime(CLOCK_MONOTONIC, &timer->toc); 11 | } 12 | 13 | QOCOFloat get_elapsed_time_sec(QOCOTimer* timer) 14 | { 15 | struct timespec temp; 16 | 17 | if ((timer->toc.tv_nsec - timer->tic.tv_nsec) < 0) { 18 | temp.tv_sec = timer->toc.tv_sec - timer->tic.tv_sec - 1; 19 | temp.tv_nsec = 1e9 + timer->toc.tv_nsec - timer->tic.tv_nsec; 20 | } 21 | else { 22 | temp.tv_sec = timer->toc.tv_sec - timer->tic.tv_sec; 23 | temp.tv_nsec = timer->toc.tv_nsec - timer->tic.tv_nsec; 24 | } 25 | return (QOCOFloat)temp.tv_sec + (QOCOFloat)temp.tv_nsec / 1e9; 26 | } -------------------------------------------------------------------------------- /src/timer_macos.c: -------------------------------------------------------------------------------- 1 | #include "timer.h" 2 | 3 | void start_timer(QOCOTimer* timer) { timer->tic = mach_absolute_time(); } 4 | 5 | void stop_timer(QOCOTimer* timer) { timer->toc = mach_absolute_time(); } 6 | 7 | QOCOFloat get_elapsed_time_sec(QOCOTimer* timer) 8 | { 9 | uint64_t duration; 10 | 11 | duration = timer->toc - timer->tic; 12 | 13 | mach_timebase_info(&(timer->tinfo)); 14 | duration *= timer->tinfo.numer; 15 | duration /= timer->tinfo.denom; 16 | 17 | return (QOCOFloat)duration / 1e9; 18 | } -------------------------------------------------------------------------------- /src/timer_windows.c: -------------------------------------------------------------------------------- 1 | #include "timer.h" 2 | 3 | void start_timer(QOCOTimer* timer) 4 | { 5 | QueryPerformanceFrequency(&timer->freq); 6 | QueryPerformanceCounter(&timer->tic); 7 | } 8 | 9 | void stop_timer(QOCOTimer* timer) { QueryPerformanceCounter(&timer->toc); } 10 | 11 | QOCOFloat get_elapsed_time_sec(QOCOTimer* timer) 12 | { 13 | return (timer->toc.QuadPart - timer->tic.QuadPart) / 14 | (QOCOFloat)timer->freq.QuadPart; 15 | } 16 | -------------------------------------------------------------------------------- /tests/generate_all_problem_data.py: -------------------------------------------------------------------------------- 1 | import ocp.generate_problem_data 2 | import portfolio.generate_problem_data 3 | -------------------------------------------------------------------------------- /tests/main.cpp: -------------------------------------------------------------------------------- 1 | #include "gtest/gtest.h" 2 | 3 | int main(int argc, char** argv) 4 | { 5 | ::testing::InitGoogleTest(&argc, argv); 6 | return RUN_ALL_TESTS(); 7 | } -------------------------------------------------------------------------------- /tests/portfolio/generate_problem_data.py: -------------------------------------------------------------------------------- 1 | import utils.codegen_functions as cgen 2 | import utils.cvxpy_to_qoco as c2q 3 | from scipy import sparse 4 | import numpy as np 5 | import cvxpy as cp 6 | 7 | # Handparsed markowitz test. 8 | 9 | 10 | def generate_markowitz(): 11 | 12 | # Seed rng. 13 | rng = np.random.default_rng(12345) 14 | 15 | # Number of factors. 16 | f = 50 17 | 18 | # Number of assets. 19 | n = 100 20 | 21 | # Factor loading matrix. 22 | F = sparse.random(f, n, density=0.25, random_state=rng) 23 | Pfull = F.T @ F + 0.1 * sparse.eye(n) 24 | P = sparse.triu(Pfull, format="csc") 25 | c = -rng.random(n) 26 | 27 | A = np.ones((1, n)) 28 | A = sparse.csc_matrix(A) 29 | b = np.array([1.0]) 30 | 31 | G = -sparse.eye(n) 32 | G = sparse.csc_matrix(G) 33 | h = np.zeros(n) 34 | 35 | l = n 36 | nsoc = 0 37 | q = None 38 | 39 | # Solve with cvxpy. 40 | xvar = cp.Variable(n) 41 | prob = cp.Problem( 42 | cp.Minimize((1 / 2) * cp.quad_form(xvar, Pfull) + c.T @ xvar), 43 | [G @ xvar <= h, A @ xvar == b], 44 | ) 45 | prob.solve(verbose=False) 46 | 47 | # Generate data file for unit test. 48 | cgen.generate_data( 49 | n, n, 1, P, c, A, b, G, h, l, nsoc, q, prob.value, "portfolio", "markowitz" 50 | ) 51 | cgen.generate_test("portfolio", "markowitz", 1e-4) 52 | 53 | 54 | generate_markowitz() 55 | -------------------------------------------------------------------------------- /tests/utils/cvxpy_to_qoco.py: -------------------------------------------------------------------------------- 1 | import cvxpy as cp 2 | from scipy import sparse 3 | 4 | 5 | def convert(prob): 6 | data, _, _ = prob.get_problem_data(cp.CLARABEL) 7 | p = data["dims"].zero 8 | l = data["dims"].nonneg 9 | q = data["dims"].soc 10 | m = l + sum(q) 11 | nsoc = len(q) 12 | 13 | c = data["c"] 14 | try: 15 | P = data["P"] 16 | P = sparse.triu(P, format="csc") 17 | except: 18 | P = None 19 | 20 | n = len(c) 21 | A = data["A"][0:p, :] 22 | b = data["b"][0:p] 23 | 24 | G = data["A"][p::, :] 25 | h = data["b"][p::] 26 | 27 | return n, m, p, P, c, A, b, G, h, l, nsoc, q 28 | -------------------------------------------------------------------------------- /tests/utils/test_utils.cpp: -------------------------------------------------------------------------------- 1 | #include "test_utils.h" 2 | 3 | void expect_eq_vectorf(QOCOFloat* x, QOCOFloat* y, QOCOInt n, QOCOFloat tol) 4 | { 5 | for (QOCOInt i = 0; i < n; ++i) { 6 | EXPECT_NEAR(x[i], y[i], tol); 7 | } 8 | } 9 | 10 | void expect_eq_csc(QOCOCscMatrix* A, QOCOCscMatrix* B, QOCOFloat tol) 11 | { 12 | EXPECT_EQ(A->m, B->m); 13 | EXPECT_EQ(A->n, B->n); 14 | EXPECT_EQ(A->nnz, B->nnz); 15 | 16 | for (QOCOInt i = 0; i < A->nnz; ++i) { 17 | EXPECT_EQ(A->i[i], B->i[i]); 18 | } 19 | 20 | for (QOCOInt i = 0; i < A->n + 1; ++i) { 21 | EXPECT_EQ(A->p[i], B->p[i]); 22 | } 23 | 24 | expect_eq_vectorf(A->x, B->x, A->nnz, tol); 25 | } 26 | 27 | void expect_rel_error(QOCOFloat x, QOCOFloat y, QOCOFloat tol) 28 | { 29 | QOCOFloat err = x - y; 30 | err = qoco_abs(err); 31 | QOCOFloat yabs = qoco_abs(y); 32 | err = err / yabs; 33 | EXPECT_LE(err, tol); 34 | } -------------------------------------------------------------------------------- /tests/utils/test_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef TEST_UTILS_H 2 | #define TEST_UTILS_H 3 | 4 | #include "qoco.h" 5 | #include "gtest/gtest.h" 6 | 7 | /** 8 | * @brief Utility function to extend EXPECT_NEAR to vectors. 9 | * Passes if ||x-y||_\infty < tol. 10 | * 11 | * @param x Input vector. 12 | * @param y Input vector. 13 | * @param n Length of vectors. 14 | * @param tol Tolerace. 15 | * 16 | */ 17 | void expect_eq_vectorf(QOCOFloat* x, QOCOFloat* y, QOCOInt n, QOCOFloat tol); 18 | 19 | /** 20 | * @brief Utility function to extend EXPECT_EQ to QOCOCscMatrix. 21 | * 22 | * @param A Input matrix. 23 | * @param B Input matrix. 24 | * @param tol Tolerace. 25 | */ 26 | void expect_eq_csc(QOCOCscMatrix* A, QOCOCscMatrix* B, QOCOFloat tol); 27 | 28 | /** 29 | * @brief Utility function to test if 30 | * |x-y|/|y| <= tol 31 | * 32 | * @param x Tested value. 33 | * @param y True value. 34 | * @param tol Tolerance. 35 | */ 36 | void expect_rel_error(QOCOFloat x, QOCOFloat y, QOCOFloat tol); 37 | 38 | #endif /* #ifndef TEST_UTILS_H */ --------------------------------------------------------------------------------