Purpose of the parameter 'obj.opts_struct.qp_solver_ric_alg'

Hi,

could you please explain what the parameter obj.opts_struct.qp_solver_ric_alg can be used for? How does it influence the behavior of HPIPM and what are possible values?

BR
Martin

Hi Martin,

qp_solver_cond_ric_alg

Possible values: {0,1}

0: dont factorize hessian in the condensing;
1: factorize

From here:

Cheers,
Jonathan

Hi Jonathan,

I asked about qp_solver_ric_alg and not qp_solver_cond_ric_alg. The inline documentation says only “HPIPM specific”.

BR
Martin

Right, sorry.
I dont know then, hopefully @giaf can explain.

These options directly trigger HPIPM options.

Specifically, the qp_solver_ric_alg controls whether the IPM solver uses the classic (0) or square-root (1) Riccati recursion for factorization of the KKT system.
The former requires more flops, the latter requires the full Hessian to be positive definite.

Regarding qp_solver_cond_ric_alg, the default state condensing algorithm is based on an algorithm analogous to the Riccati recursion, and identical considerations apply.