rsLQR  0.1
nested_dissection.h
Go to the documentation of this file.
1 
13 #pragma once
14 
15 #include <stdlib.h>
16 
17 #include "solver.h"
18 
39 int ndlqr_SolveLeaf(NdLqrSolver* solver, int index);
40 
41 int ndlqr_SolveLeaves(NdLqrSolver* solver);
42 
68 int ndlqr_FactorInnerProduct(NdData* data, NdData* fact, int index, int data_level,
69  int fact_level);
70 
99 int ndlqr_SolveCholeskyFactor(NdData* fact, CholeskyInfo* cholinfo, int index, int level,
100  int upper_level);
101 
114 bool ndlqr_ShouldCalcLambda(OrderedBinaryTree* tree, int index, int i);
115 
144 int ndlqr_UpdateShurFactor(NdData* fact, NdData* soln, int index, int i, int level,
145  int upper_level, bool calc_lambda);
146 
147 int ndlqr_ComputeShurCompliment(NdLqrSolver* solver, int index, int level, int upper_level);
148 
CholeskyInfo
Stores info about a Cholesky decomposition.
Definition: linalg.h:53
ndlqr_UpdateShurFactor
int ndlqr_UpdateShurFactor(NdData *fact, NdData *soln, int index, int i, int level, int upper_level, bool calc_lambda)
Calculates and to complete the factorization at the current level.
Definition: nested_dissection.c:154
solver.h
High-level methods for the nsLQR solver.
ndlqr_FactorInnerProduct
int ndlqr_FactorInnerProduct(NdData *data, NdData *fact, int index, int data_level, int fact_level)
Calculates one of the inner products needed at level data_level.
Definition: nested_dissection.c:114
OrderedBinaryTree
The binary tree for the rsLQR solver.
Definition: binary_tree.h:64
NdLqrSolver
Main solver for rsLQR.
Definition: solver.h:114
ndlqr_SolveCholeskyFactor
int ndlqr_SolveCholeskyFactor(NdData *fact, CholeskyInfo *cholinfo, int index, int level, int upper_level)
Use the precomputed Cholesky factorization to solve for y at each parent level.
Definition: nested_dissection.c:136
NdData
Core storage container for the rsLQR solver.
Definition: nddata.h:83
ndlqr_ShouldCalcLambda
bool ndlqr_ShouldCalcLambda(OrderedBinaryTree *tree, int index, int i)
Determines if the should be updated during ndlqr_UpdateSchurFactor()
Definition: nested_dissection.c:173
ndlqr_SolveLeaf
int ndlqr_SolveLeaf(NdLqrSolver *solver, int index)
Solve all the equations for the lowest-level diagonal blocks, by timestep.
Definition: nested_dissection.c:10