Skip to content

added: stochastic state defects as linear equality constraints for all CollocationMethods#335

Merged
franckgaga merged 19 commits intomainfrom
colloc_lin_defect
Mar 11, 2026
Merged

added: stochastic state defects as linear equality constraints for all CollocationMethods#335
franckgaga merged 19 commits intomainfrom
colloc_lin_defect

Conversation

@franckgaga
Copy link
Member

@franckgaga franckgaga commented Mar 9, 2026

The defect of the stochastic state are now treated as linear equality constraint for all CollocationMethod, that is TrapezoidalCollocation and OrthogonalCollocation.

  1. It reduces the number of nonlinear equality constraints, so potential performance improvements.
  2. The methods for the nonlinear equality constraint function are now simpler. It also increases code re-use across the various methods.

Let's benchmark the differences. It it proves substantial, I can also implement the same thing for MultipleShooting and NonLinModel. Let's see.

@codecov-commenter
Copy link

codecov-commenter commented Mar 10, 2026

Codecov Report

❌ Patch coverage is 98.14815% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.49%. Comparing base (5396fbc) to head (c970f13).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
src/controller/transcription.jl 97.26% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #335      +/-   ##
==========================================
- Coverage   98.58%   98.49%   -0.10%     
==========================================
  Files          27       27              
  Lines        5176     5196      +20     
==========================================
+ Hits         5103     5118      +15     
- Misses         73       78       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Mar 10, 2026

Benchmark Results (Julia v1)

Time benchmarks
main c970f13... main / c970f13...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 5.32 ± 0.34 ms 4.81 ± 0.25 ms 1.11 ± 0.09
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/Ipopt/MultipleShooting 0.316 ± 0.0064 s 0.319 ± 0.0064 s 0.99 ± 0.028
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/Ipopt/SingleShooting 0.198 ± 0.012 s 0.197 ± 0.011 s 1.01 ± 0.086
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 9.49 ± 0.47 ms 8.87 ± 0.4 ms 1.07 ± 0.072
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 1.9 ± 0.081 ms 1.64 ± 0.047 ms 1.16 ± 0.06
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 5.24 ± 0.33 ms 4.71 ± 0.25 ms 1.11 ± 0.091
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/Ipopt/MultipleShooting 0.272 ± 0.0029 s 0.268 ± 0.0051 s 1.02 ± 0.022
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/Ipopt/SingleShooting 0.201 ± 0.0027 s 0.199 ± 0.0037 s 1.01 ± 0.023
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 6.53 ± 0.28 ms 6.11 ± 0.27 ms 1.07 ± 0.066
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 2.12 ± 0.05 ms 1.74 ± 0.047 ms 1.22 ± 0.044
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 11.5 ± 0.9 ms 10.4 ± 0.79 ms 1.11 ± 0.12
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/Ipopt/MultipleShooting 0.287 ± 0.1 s 0.293 ± 0.086 s 0.98 ± 0.45
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/Ipopt/SingleShooting 0.14 ± 0.00083 s 0.139 ± 0.00085 s 1.01 ± 0.0086
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 0.13 ± 0.034 s 0.129 ± 0.032 s 1 ± 0.36
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 14.2 ± 0.85 ms 13.5 ± 0.85 ms 1.05 ± 0.092
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.763 ± 0.0069 s 0.816 ± 0.007 s 0.935 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 0.729 ± 0.0059 s 0.748 ± 0.0094 s 0.975 ± 0.015
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 1.37 ± 0.0045 s 1.53 ± 0.0084 s 0.897 ± 0.0058
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 0.602 ± 0.0062 s 0.564 ± 0.0081 s 1.07 ± 0.019
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 0.6 ± 0.0065 s 0.557 ± 0.0079 s 1.08 ± 0.019
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.347 ± 0.0016 s 0.352 ± 0.0039 s 0.986 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.502 ± 0.005 s 0.515 ± 0.0042 s 0.975 ± 0.013
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 0.579 ± 0.006 s 0.583 ± 0.0064 s 0.994 ± 0.015
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 0.588 ± 0.009 s 0.564 ± 0.011 s 1.04 ± 0.025
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.455 ± 0.0024 s 0.45 ± 0.0024 s 1.01 ± 0.0076
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.166 ± 0.0023 s 0.169 ± 0.00097 s 0.983 ± 0.015
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.363 ± 0.0034 s 0.373 ± 0.0058 s 0.975 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.379 ± 0.0054 s 0.409 ± 0.0049 s 0.926 ± 0.017
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.0734 ± 0.00048 s 0.0733 ± 0.00039 s 1 ± 0.0084
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.188 ± 0.002 s 0.2 ± 0.0008 s 0.938 ± 0.011
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.339 ± 0.0022 s 0.338 ± 0.0015 s 1 ± 0.0079
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.431 ± 0.0043 s 0.426 ± 0.007 s 1.01 ± 0.019
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.371 ± 0.0073 s 0.365 ± 0.0043 s 1.02 ± 0.023
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 0.657 ± 0.0091 s 0.638 ± 0.0095 s 1.03 ± 0.021
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 2.02 ± 0.02 s 2.03 ± 0.012 s 0.995 ± 0.012
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.467 ± 0.0022 s 0.48 ± 0.0019 s 0.971 ± 0.006
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.168 ± 0.001 s 0.166 ± 0.0022 s 1.01 ± 0.015
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.373 ± 0.0057 s 0.355 ± 0.0029 s 1.05 ± 0.018
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.357 ± 0.0051 s 0.372 ± 0.0035 s 0.96 ± 0.016
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.403 ± 0.0042 s 0.384 ± 0.0039 s 1.05 ± 0.015
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.304 ± 0.0038 s 0.3 ± 0.003 s 1.01 ± 0.016
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.0737 ± 0.0019 s 0.0732 ± 0.00033 s 1.01 ± 0.026
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.162 ± 0.0011 s 0.175 ± 0.0013 s 0.922 ± 0.0093
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 0.678 ± 0.011 s 0.685 ± 0.0072 s 0.99 ± 0.019
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.0562 ± 0.014 s 0.0542 ± 0.011 s 1.04 ± 0.33
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.0362 ± 0.017 s 0.0401 ± 0.016 s 0.902 ± 0.56
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/Ipopt/Current form 0.183 ± 0.032 s 0.182 ± 0.052 s 1.01 ± 0.34
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/Ipopt/Prediction form 0.175 ± 0.021 s 0.174 ± 0.021 s 1.01 ± 0.17
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.0482 ± 0.0053 s 0.0451 ± 0.0035 s 1.07 ± 0.14
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.0402 ± 0.013 s 0.0384 ± 0.013 s 1.05 ± 0.48
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form 0.0915 ± 0.001 s 0.101 ± 0.00036 s 0.902 ± 0.011
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0901 ± 0.00033 s 0.1 ± 0.0003 s 0.899 ± 0.0042
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0648 ± 0.00029 s 0.0728 ± 0.00033 s 0.89 ± 0.0056
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0871 ± 0.00043 s 0.0977 ± 0.00041 s 0.892 ± 0.0057
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0574 ± 0.00039 s 0.0594 ± 0.00049 s 0.966 ± 0.01
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0552 ± 0.00043 s 0.0557 ± 0.00073 s 0.99 ± 0.015
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 4.08 ± 0.032 μs 4.02 ± 0.04 μs 1.01 ± 0.013
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.0885 ± 0.0026 ms 0.0881 ± 0.0029 ms 1 ± 0.044
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.0991 ± 0.0021 ms 0.0987 ± 0.0024 ms 1 ± 0.032
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 13.6 ± 0.3 μs 13.6 ± 0.25 μs 1 ± 0.029
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.214 ± 0.011 ms 0.213 ± 0.011 ms 1 ± 0.074
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.254 ± 0.014 ms 0.257 ± 0.014 ms 0.99 ± 0.076
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 2.46 ± 0.19 ms 2.43 ± 0.2 ms 1.01 ± 0.11
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 1.24 ± 0.056 ms 1.22 ± 0.038 ms 1.02 ± 0.056
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 2.7 ± 0.68 ms 2.65 ± 0.64 ms 1.02 ± 0.36
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 2.55 ± 0.21 ms 2.52 ± 0.2 ms 1.01 ± 0.12
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 2.13 ± 0.19 ms 2.14 ± 0.2 ms 0.997 ± 0.13
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 3.57 ± 0.3 ms 3.35 ± 0.2 ms 1.06 ± 0.11
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 1.25 ± 0.042 ms 1.24 ± 0.037 ms 1.01 ± 0.045
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 1.26 ± 0.041 ms 1.24 ± 0.036 ms 1.01 ± 0.044
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 1.64 ± 0.37 ms 1.62 ± 0.37 ms 1.01 ± 0.32
UNIT TESTS/SimModel/LinModel/evaloutput 0.142 ± 0.005 μs 0.135 ± 0.002 μs 1.05 ± 0.04
UNIT TESTS/SimModel/LinModel/updatestate! 0.21 ± 0.004 μs 0.212 ± 0.02 μs 0.991 ± 0.095
UNIT TESTS/SimModel/NonLinModel/evaloutput 0.299 ± 0.002 μs 0.303 ± 0.008 μs 0.987 ± 0.027
UNIT TESTS/SimModel/NonLinModel/linearize! 1.67 ± 0.029 μs 1.69 ± 0.026 μs 0.989 ± 0.023
UNIT TESTS/SimModel/NonLinModel/updatestate! 0.407 ± 0.03 μs 0.414 ± 0.021 μs 0.983 ± 0.088
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0.381 ± 0.016 μs 0.37 ± 0.018 μs 1.03 ± 0.066
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 1.41 ± 0.033 μs 1.43 ± 0.05 μs 0.984 ± 0.041
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0.19 ± 0.004 μs 0.188 ± 0.004 μs 1.01 ± 0.03
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 1.05 ± 0.016 μs 1.05 ± 0.019 μs 1 ± 0.024
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 3.34 ± 0.042 μs 3.36 ± 0.055 μs 0.995 ± 0.021
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 6.45 ± 0.054 μs 6.43 ± 0.046 μs 1 ± 0.011
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0.216 ± 0.016 μs 0.216 ± 0.001 μs 1 ± 0.074
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0.392 ± 0.013 μs 0.406 ± 0.007 μs 0.966 ± 0.036
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0.334 ± 0.006 μs 0.272 ± 0.015 μs 1.23 ± 0.071
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0.552 ± 0.016 μs 0.579 ± 0.019 μs 0.953 ± 0.042
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0.492 ± 0.014 μs 0.479 ± 0.018 μs 1.03 ± 0.048
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 1.11 ± 0.019 μs 1.1 ± 0.016 μs 1.01 ± 0.023
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0.229 ± 0.018 μs 0.214 ± 0.004 μs 1.07 ± 0.086
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0.102 ± 0.002 μs 0.094 ± 0.002 μs 1.09 ± 0.031
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 2.21 ± 0.032 μs 2.22 ± 0.04 μs 0.994 ± 0.023
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0.225 ± 0.015 μs 0.229 ± 0.002 μs 0.983 ± 0.066
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0.227 ± 0.02 μs 0.214 ± 0.006 μs 1.06 ± 0.098
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0.359 ± 0.018 μs 0.362 ± 0.016 μs 0.992 ± 0.066
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 0.183 ± 0.021 ms 0.178 ± 0.02 ms 1.03 ± 0.16
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 0.367 ± 0.015 ms 0.362 ± 0.014 ms 1.01 ± 0.057
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 4.7 ± 0.35 ms 4.41 ± 0.24 ms 1.07 ± 0.098
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Prediction form 0.305 ± 0.005 μs 0.302 ± 0.004 μs 1.01 ± 0.021
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.344 ± 0.014 ms 0.292 ± 0.013 ms 1.18 ± 0.072
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Prediction form 1.08 ± 0.013 μs 1.08 ± 0.014 μs 1.01 ± 0.018
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Current form 9.63 ± 3.1 μs 9.96 ± 3.2 μs 0.968 ± 0.44
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 4.05 ± 0.23 ms 3.83 ± 0.21 ms 1.06 ± 0.083
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Current form 19.5 ± 0.41 μs 18.4 ± 0.47 μs 1.06 ± 0.035
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.391 ± 0.014 ms 0.321 ± 0.012 ms 1.22 ± 0.063
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0.23 ± 0.013 μs 0.222 ± 0.004 μs 1.04 ± 0.061
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0.235 ± 0.008 μs 0.232 ± 0.003 μs 1.01 ± 0.037
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0.376 ± 0.017 μs 0.377 ± 0.016 μs 0.997 ± 0.062
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0.264 ± 0.012 μs 0.255 ± 0.014 μs 1.04 ± 0.074
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0.689 ± 0.013 μs 0.706 ± 0.02 μs 0.976 ± 0.033
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 3.52 ± 0.036 μs 3.43 ± 0.041 μs 1.03 ± 0.016
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 4.64 ± 0.043 μs 4.59 ± 0.048 μs 1.01 ± 0.014
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 3.66 ± 0.044 μs 3.52 ± 0.041 μs 1.04 ± 0.017
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 5.68 ± 0.058 μs 5.68 ± 0.066 μs 1 ± 0.015
time_to_load 6.28 ± 0.078 s 6.14 ± 0.045 s 1.02 ± 0.015
Memory benchmarks
main c970f13... main / c970f13...
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/DAQP/SingleShooting 0.0424 M allocs: 1.71 MB 0.0424 M allocs: 1.71 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/Ipopt/MultipleShooting 0.162 M allocs: 8.9 MB 0.162 M allocs: 8.9 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/Ipopt/SingleShooting 0.0536 M allocs: 2.38 MB 0.0536 M allocs: 2.38 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/MultipleShooting 0.0758 M allocs: 1.95 MB 0.0758 M allocs: 1.95 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/With feedforward/OSQP/SingleShooting 7.85 k allocs: 0.249 MB 7.85 k allocs: 0.249 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/DAQP/SingleShooting 0.0423 M allocs: 1.7 MB 0.0423 M allocs: 1.7 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/Ipopt/MultipleShooting 0.127 M allocs: 7.07 MB 0.127 M allocs: 7.07 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/Ipopt/SingleShooting 0.0553 M allocs: 2.42 MB 0.0553 M allocs: 2.42 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/MultipleShooting 0.0532 M allocs: 1.39 MB 0.0532 M allocs: 1.39 MB 1
CASE STUDIES/PredictiveController/CSTR/LinMPC/Without feedforward/OSQP/SingleShooting 7.7 k allocs: 0.243 MB 7.7 k allocs: 0.243 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/DAQP/SingleShooting 0.114 M allocs: 6.25 MB 0.115 M allocs: 6.25 MB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/Ipopt/MultipleShooting 4.65 M allocs: 0.251 GB 4.65 M allocs: 0.251 GB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/Ipopt/SingleShooting 0.115 M allocs: 6.67 MB 0.115 M allocs: 6.67 MB 0.999
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/MultipleShooting 4.69 M allocs: 0.255 GB 4.69 M allocs: 0.255 GB 1
CASE STUDIES/PredictiveController/Pendulum/LinMPC/Successive linearization/OSQP/SingleShooting 0.126 M allocs: 7.8 MB 0.126 M allocs: 7.8 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting 0.351 M allocs: 19.7 MB 0.351 M allocs: 19.7 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/MultipleShooting (Hessian) 0.862 M allocs: 0.0791 GB 0.862 M allocs: 0.0791 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/SingleShooting 0.25 M allocs: 11.6 MB 0.25 M allocs: 11.6 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation 1.18 M allocs: 0.079 GB 1.18 M allocs: 0.079 GB 0.999
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Custom constraints/Ipopt/TrapezoidalCollocation (Hessian) 1.18 M allocs: 0.079 GB 1.18 M allocs: 0.079 GB 0.999
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting 0.266 M allocs: 14.6 MB 0.266 M allocs: 14.6 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/MultipleShooting (Hessian) 0.656 M allocs: 0.063 GB 0.656 M allocs: 0.063 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation 1.46 M allocs: 0.122 GB 1.43 M allocs: 0.119 GB 1.02
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/OrthogonalCollocation (Hessian) 1.46 M allocs: 0.122 GB 1.43 M allocs: 0.119 GB 1.02
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting 0.0724 M allocs: 2.94 MB 0.0724 M allocs: 2.94 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/SingleShooting (Hessian) 0.0771 M allocs: 4.85 MB 0.0771 M allocs: 4.85 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation 0.37 M allocs: 19.3 MB 0.391 M allocs: 20.4 MB 0.943
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Ipopt/TrapezoidalCollocation (Hessian) 0.782 M allocs: 0.054 GB 0.866 M allocs: 0.0612 GB 0.882
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/MadNLP/SingleShooting (Hessian) 0.116 M allocs: 11.1 MB 0.116 M allocs: 11.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Economic/Uno/MultipleShooting (Hessian) 0.265 M allocs: 23.7 MB 0.265 M allocs: 23.7 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting 0.227 M allocs: 12.3 MB 0.227 M allocs: 12.3 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (Hessian) 0.589 M allocs: 0.0485 GB 0.589 M allocs: 0.0485 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/MultipleShooting (threaded) 0.246 M allocs: 21.2 MB 0.246 M allocs: 21 MB 1.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation 1.58 M allocs: 0.133 GB 1.58 M allocs: 0.133 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/OrthogonalCollocation (Hessian) 6.39 M allocs: 0.706 GB 6.39 M allocs: 0.706 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting 0.0744 M allocs: 3.02 MB 0.0744 M allocs: 3.02 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/SingleShooting (Hessian) 0.0771 M allocs: 4.83 MB 0.0771 M allocs: 4.83 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation 0.324 M allocs: 16.8 MB 0.322 M allocs: 16.7 MB 1.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (Hessian) 0.845 M allocs: 0.0521 GB 1.02 M allocs: 0.0648 GB 0.805
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Ipopt/TrapezoidalCollocation (threaded) 0.343 M allocs: 25.8 MB 0.341 M allocs: 25.6 MB 1.01
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/MultipleShooting (Hessian) 0.539 M allocs: 0.0574 GB 0.539 M allocs: 0.0574 GB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/MadNLP/SingleShooting (Hessian) 0.115 M allocs: 11.1 MB 0.115 M allocs: 11.1 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/MultipleShooting (Hessian) 0.261 M allocs: 20.7 MB 0.261 M allocs: 20.7 MB 1
CASE STUDIES/PredictiveController/Pendulum/NonLinMPC/Noneconomic/Uno/OrthogonalCollocation (Hessian) 2.23 M allocs: 0.23 GB 2.24 M allocs: 0.23 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Current form 0.762 M allocs: 0.0802 GB 0.762 M allocs: 0.0802 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/DAQP/Prediction form 0.682 M allocs: 0.0585 GB 0.682 M allocs: 0.0585 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/Ipopt/Current form 0.646 M allocs: 0.0785 GB 0.646 M allocs: 0.0785 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/Ipopt/Prediction form 0.601 M allocs: 0.0562 GB 0.601 M allocs: 0.0562 GB 1
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Current form 0.631 M allocs: 0.0788 GB 0.63 M allocs: 0.0764 GB 1.03
CASE STUDIES/StateEstimator/CSTR/MovingHorizonEstimator/OSQP/Prediction form 0.585 M allocs: 0.0553 GB 0.585 M allocs: 0.0553 GB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form 0.0648 M allocs: 11.5 MB 0.0648 M allocs: 11.5 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Current form (Hessian) 0.0641 M allocs: 11.3 MB 0.0641 M allocs: 11.3 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form 0.0485 M allocs: 8.05 MB 0.0485 M allocs: 8.05 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/Ipopt/Prediction form (Hessian) 0.0642 M allocs: 11.3 MB 0.0642 M allocs: 11.3 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Current form (Hessian) 0.0986 M allocs: 15.5 MB 0.0986 M allocs: 15.5 MB 1
CASE STUDIES/StateEstimator/Pendulum/MovingHorizonEstimator/MadNLP/Prediction form (Hessian) 0.0929 M allocs: 14.5 MB 0.0929 M allocs: 14.5 MB 1
UNIT TESTS/PredictiveController/ExplicitMPC/moveinput! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/PredictiveController/LinMPC/getinfo! 0.323 k allocs: 15.6 kB 0.323 k allocs: 15.6 kB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/MultipleShooting 0.994 k allocs: 25.5 kB 0.994 k allocs: 25.5 kB 1
UNIT TESTS/PredictiveController/LinMPC/moveinput!/SingleShooting 0.088 k allocs: 2.23 kB 0.088 k allocs: 2.23 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/LinModel 0.563 k allocs: 0.0587 MB 0.563 k allocs: 0.0587 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/getinfo!/NonLinModel 0.606 k allocs: 0.076 MB 0.606 k allocs: 0.0759 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/MultipleShooting 1.95 k allocs: 0.0809 MB 1.95 k allocs: 0.0809 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/LinModel/SingleShooting 0.298 k allocs: 10.1 kB 0.298 k allocs: 10.1 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShooting 2.09 k allocs: 0.0932 MB 2.09 k allocs: 0.0932 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/MultipleShootingHessian 2.6 k allocs: 0.125 MB 2.6 k allocs: 0.125 MB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocation 3.87 k allocs: 0.196 MB 3.89 k allocs: 0.197 MB 0.997
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/OrthogonalCollocationHessian 7.79 k allocs: 0.54 MB 7.81 k allocs: 0.541 MB 0.999
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShooting 0.321 k allocs: 11.2 kB 0.321 k allocs: 11.2 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/SingleShootingHessian 0.321 k allocs: 11.2 kB 0.321 k allocs: 11.2 kB 1
UNIT TESTS/PredictiveController/NonLinMPC/moveinput!/NonLinModel/TrapezoidalCollocation 1.48 k allocs: 0.0609 MB 1.49 k allocs: 0.0618 MB 0.985
UNIT TESTS/SimModel/LinModel/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/LinModel/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/linearize! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/SimModel/NonLinModel/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/LinModel 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/ExtendedKalmanFilter/updatestate!/NonLinModel 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/InternalModel/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/updatestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/InternalModel/updatestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/KalmanFilter/updatestate! 4 allocs: 0.0938 kB 4 allocs: 0.0938 kB 1
UNIT TESTS/StateEstimator/Luenberger/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/Luenberger/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/Luenberger/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/LinModel 1.03 k allocs: 0.0393 MB 1.03 k allocs: 0.0393 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/getinfo!/NonLinModel 1.24 k allocs: 0.203 MB 1.24 k allocs: 0.203 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Current form 0.0754 M allocs: 14.6 MB 0.0754 M allocs: 14.6 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/LinModel/Prediction form 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Current form 0.972 k allocs: 25.4 kB 0.972 k allocs: 25.4 kB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/preparestate!/NonLinModel/Prediction form 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Current form 2 allocs: 0.0469 kB 2 allocs: 0.0469 kB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/LinModel/Prediction form 7.05 k allocs: 0.443 MB 7.05 k allocs: 0.443 MB 1
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Current form 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/MovingHorizonEstimator/updatestate!/NonLinModel/Prediction form 0.972 k allocs: 25.4 kB 0.972 k allocs: 25.4 kB 1
UNIT TESTS/StateEstimator/SteadyKalmanFilter/evaloutput 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/SteadyKalmanFilter/preparestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/SteadyKalmanFilter/updatestate! 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/evaloutput/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/preparestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/LinModel 0 allocs: 0 B 0 allocs: 0 B
UNIT TESTS/StateEstimator/UnscentedKalmanFilter/updatestate!/NonLinModel 0 allocs: 0 B 0 allocs: 0 B
time_to_load 0.149 k allocs: 11.2 kB 0.149 k allocs: 11.2 kB 1

@franckgaga franckgaga merged commit ef4868f into main Mar 11, 2026
5 checks passed
@franckgaga franckgaga deleted the colloc_lin_defect branch March 11, 2026 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants