Skip to content

Set WtW block of KKT matrix to -I in initialize_ipm#46

Merged
govindchari merged 2 commits intomainfrom
gc/fix-resolve-issue
Mar 11, 2026
Merged

Set WtW block of KKT matrix to -I in initialize_ipm#46
govindchari merged 2 commits intomainfrom
gc/fix-resolve-issue

Conversation

@govindchari
Copy link
Member

When qoco currently solves a problem and then qoco_solve is called again, the KKT system contains the NT scaling from the final iteration of the first solve. Since the NT block of the KKT matrix is not reset, this leads to the behavior seen here: #45.

This fix sets the NT block to -I in initialize_ipm which fixes this issue.

@github-actions
Copy link

Download benchmark artifacts

Benchmark Summary

  • Baseline solved: 129 problems
  • Diff branch solved: 129 problems

Runtime regressions (> 5.0%)

  • AUG2DC: diff=0.0084s, baseline=0.0079s, Δ=+6.3%
  • DUAL2: diff=0.0021s, baseline=0.0018s, Δ=+16.1%
  • DUALC2: diff=0.0012s, baseline=0.0009s, Δ=+35.5%
  • GOULDQP3: diff=0.0019s, baseline=0.0015s, Δ=+30.0%
  • HS51: diff=0.0000s, baseline=0.0000s, Δ=+600.0%
  • HS76: diff=0.0000s, baseline=0.0000s, Δ=+7.1%
  • LASER: diff=0.0034s, baseline=0.0031s, Δ=+7.4%
  • LOTSCHD: diff=0.0001s, baseline=0.0000s, Δ=+10.2%
  • PRIMAL1: diff=0.0045s, baseline=0.0042s, Δ=+7.3%
  • PRIMALC8: diff=0.0040s, baseline=0.0038s, Δ=+6.4%
  • QGROW7: diff=0.0042s, baseline=0.0040s, Δ=+5.7%
  • QRECIPE: diff=0.0014s, baseline=0.0011s, Δ=+30.9%
  • QSCTAP1: diff=0.0027s, baseline=0.0022s, Δ=+23.3%

Runtime improvements (> 5.0%)

  • CONT-200: diff=4.6637s, baseline=4.9928s, Δ=-6.6%
  • CONT-300: diff=20.5352s, baseline=22.5014s, Δ=-8.7%
  • CVXQP1_M: diff=0.0581s, baseline=0.0634s, Δ=-8.4%
  • CVXQP1_S: diff=0.0005s, baseline=0.0006s, Δ=-18.5%
  • CVXQP2_M: diff=0.0410s, baseline=0.0510s, Δ=-19.7%
  • CVXQP2_S: diff=0.0004s, baseline=0.0005s, Δ=-25.9%
  • CVXQP3_M: diff=0.1138s, baseline=0.1265s, Δ=-10.0%
  • DUAL4: diff=0.0010s, baseline=0.0013s, Δ=-20.2%
  • DUALC1: diff=0.0012s, baseline=0.0013s, Δ=-7.6%
  • DUALC5: diff=0.0007s, baseline=0.0009s, Δ=-25.3%
  • DUALC8: diff=0.0015s, baseline=0.0016s, Δ=-7.3%
  • EXDATA: diff=6.1708s, baseline=7.1061s, Δ=-13.2%
  • HS118: diff=0.0001s, baseline=0.0001s, Δ=-41.5%
  • HS21: diff=0.0000s, baseline=0.0000s, Δ=-39.1%
  • HS35MOD: diff=0.0000s, baseline=0.0000s, Δ=-6.2%
  • HS53: diff=0.0000s, baseline=0.0000s, Δ=-11.1%
  • HUESTIS: diff=0.0156s, baseline=0.0168s, Δ=-7.3%
  • PRIMAL2: diff=0.0054s, baseline=0.0057s, Δ=-5.7%
  • PRIMALC1: diff=0.0022s, baseline=0.0028s, Δ=-22.4%
  • PRIMALC2: diff=0.0017s, baseline=0.0022s, Δ=-22.4%
  • Q25FV47: diff=0.2224s, baseline=0.2410s, Δ=-7.7%
  • QBEACONF: diff=0.0024s, baseline=0.0026s, Δ=-9.3%
  • QBORE3D: diff=0.0022s, baseline=0.0025s, Δ=-13.5%
  • QETAMACR: diff=0.0767s, baseline=0.0836s, Δ=-8.2%
  • QFFFFF80: diff=0.1114s, baseline=0.1191s, Δ=-6.4%
  • QPCBLEND: diff=0.0006s, baseline=0.0008s, Δ=-27.2%
  • QSCAGR7: diff=0.0005s, baseline=0.0009s, Δ=-40.6%
  • QSCFXM1: diff=0.0065s, baseline=0.0071s, Δ=-7.5%
  • QSCFXM3: diff=0.0259s, baseline=0.0274s, Δ=-5.2%
  • QSHARE2B: diff=0.0008s, baseline=0.0011s, Δ=-31.2%
  • QSHELL: diff=0.1178s, baseline=0.1306s, Δ=-9.8%
  • QSHIP08L: diff=0.1445s, baseline=0.1559s, Δ=-7.3%
  • QSHIP12L: diff=0.2843s, baseline=0.3084s, Δ=-7.8%
  • STCQP1: diff=0.0489s, baseline=0.0531s, Δ=-8.0%
  • STCQP2: diff=0.1118s, baseline=0.1240s, Δ=-9.8%
  • UBH1: diff=0.0293s, baseline=0.0317s, Δ=-7.5%
  • VALUES: diff=0.0016s, baseline=0.0019s, Δ=-16.8%

@govindchari govindchari merged commit 4dd7aab into main Mar 11, 2026
13 checks passed
@github-actions
Copy link

Download benchmark artifacts

Benchmark Summary

  • Baseline solved: 129 problems
  • Diff branch solved: 129 problems

Runtime regressions (> 5.0%)

  • DUALC5: diff=0.0007s, baseline=0.0006s, Δ=+10.0%
  • HS35MOD: diff=0.0000s, baseline=0.0000s, Δ=+6.3%
  • QBORE3D: diff=0.0024s, baseline=0.0022s, Δ=+6.6%
  • QPTEST: diff=0.0000s, baseline=0.0000s, Δ=+9.1%

Runtime improvements (> 5.0%)

  • GENHS28: diff=0.0000s, baseline=0.0000s, Δ=-16.7%
  • HS268: diff=0.0000s, baseline=0.0000s, Δ=-61.4%
  • HS53: diff=0.0000s, baseline=0.0000s, Δ=-5.6%
  • LOTSCHD: diff=0.0000s, baseline=0.0000s, Δ=-5.4%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant