Add mjData.L, sparse Cholesky factor of Newton solver Hessian.

PiperOrigin-RevId: 683669555
Change-Id: I18d7530b5d68d1d48cb95d4faa0150c434109638
This commit is contained in:
Yuval Tassa
2024-10-08 10:12:10 -07:00
committed by Copybara-Service
parent 39af655c1e
commit b66da3d369
9 changed files with 99 additions and 21 deletions
+2 -3
View File
@@ -71,11 +71,10 @@ static int arenaAllocEfc(const mjModel* m, mjData* d) {
return 0; \
}
MJDATA_ARENA_POINTERS_PRIMAL
MJDATA_ARENA_POINTERS_SOLVER
if (mj_isDual(m)) {
MJDATA_ARENA_POINTERS_DUAL
}
#undef X
#undef MJ_M
@@ -1918,7 +1917,7 @@ static int mj_nc(const mjModel* m, mjData* d, int* nnz) {
// driver: call all functions above
void mj_makeConstraint(const mjModel* m, mjData* d) {
// clear sizes
d->ne = d->nf = d->nl = d->nefc = d->nnzJ = 0;
d->ne = d->nf = d->nl = d->nefc = d->nnzJ = d->nnzL = 0;
// disabled or Jacobian not allocated: return
if (mjDISABLED(mjDSBL_CONSTRAINT)) {
+2 -1
View File
@@ -1768,12 +1768,13 @@ static void _resetData(const mjModel* m, mjData* d, unsigned char debug_value) {
mju_zero(d->solver_fwdinv, 2);
// clear variable sizes
d->ncon = 0;
d->ne = 0;
d->nf = 0;
d->nl = 0;
d->nefc = 0;
d->nnzJ = 0;
d->ncon = 0;
d->nnzL = 0;
d->nisland = 0;
// clear global properties