Matrix * Qu
Gradient of the action-value function with respect to the control. N vectors of size (m,...
Definition: riccati_solver.h:78
double * data
pointer to the beginning of the single block of memory allocated by the solver
Definition: riccati_solver.h:69
int ndlqr_PrintRiccatiSummary(RiccatiSolver *solver)
Prints a summary of the solve.
Definition: riccati_solver.c:155
Matrix * U
Control trajectory. N-1 vectors of size (m,)
Definition: riccati_solver.h:75
int ndlqr_FreeRiccatiSolver(RiccatiSolver *solver)
Free the memory for a Riccati solver.
Definition: riccati_solver.c:139
Matrix * X
State trajectory. N vectors of size (n,)
Definition: riccati_solver.h:74
Matrix ndlqr_GetRiccatiSolution(RiccatiSolver *solver)
Get the solution vector.
Definition: riccati_solver.c:167
int nstates
size of state vector (n)
Definition: riccati_solver.h:66
LQRProblem * prob
Problem data.
Definition: riccati_solver.h:64
int ndlqr_CopyRiccatiSolution(RiccatiSolver *solver, double *soln)
Copies the solution to a user-supplied array.
Definition: riccati_solver.c:181
Solver that uses Riccati recursion to solve an LQR problem.
Definition: riccati_solver.h:62
Defines the LQRProblem type.
double t_solve_ms
Total solve time in milliseconds.
Definition: riccati_solver.h:82
Matrix type and basic operations.
double t_backward_pass_ms
Time spent in the backward pass in milliseconds.
Definition: riccati_solver.h:83
int nvars
total number of decision variables, including the dual variables
Definition: riccati_solver.h:68
Represents a matrix of double-precision data.
Definition: matrix.h:71
int ndlqr_GetRiccatiSolveTimes(RiccatiSolver *solver, double *t_solve, double *t_bp, double *t_fp)
Get the Riccati solve times.
Definition: riccati_solver.c:187
Matrix * Qux
Cross-term Hessian of the action-value function. N vectors of size (m,n).
Definition: riccati_solver.h:80
int ninputs
number of control inputs (m)
Definition: riccati_solver.h:67
Matrix * Y
Lagrange multipliers. N vectors of size (n,)
Definition: riccati_solver.h:76
Matrix * Qxx
Hessian of the action-value function with respect to the state. N vectors of size (n,...
Definition: riccati_solver.h:79
Matrix * Quu
Hessian of the action-value function with respect to the control. N vectors of size (m,...
Definition: riccati_solver.h:81
Matrix * Qx
Gradient of the action-value function with respect to the state. N vectors of size (n,...
Definition: riccati_solver.h:77
double t_forward_pass_ms
Time spent in the forward pass in milliseconds.
Definition: riccati_solver.h:84
Matrix * d
N-1 feedforward gains of size (m,)
Definition: riccati_solver.h:71
int nhorizon
length of the time horizon
Definition: riccati_solver.h:65
Matrix * p
N cost-to-go gradients of size (n,)
Definition: riccati_solver.h:73
Matrix * K
N-1 feedback gain matrices of size (m,n)
Definition: riccati_solver.h:70
Matrix * P
N cost-to-go Hessians of size (n,n)
Definition: riccati_solver.h:72
Describes an LQR problem with affine terms.
Definition: lqr_problem.h:31
RiccatiSolver * ndlqr_NewRiccatiSolver(LQRProblem *lqrprob)
Initialize a new Riccati solver.
Definition: riccati_solver.c:7