Add mju_gather and mju_scatter, private engine functions.
PiperOrigin-RevId: 750245294 Change-Id: I3a14ccdd55a324d3fe206e388fb2a513772f5f5e
This commit is contained in:
committed by
Copybara-Service
parent
99490163df
commit
c2ac0d724e
@@ -1646,11 +1646,11 @@ void mj_factorI_legacy(const mjModel* m, mjData* d, const mjtNum* M, mjtNum* qLD
|
||||
// sparse L'*D*L factorizaton of the inertia matrix M, assumed spd
|
||||
void mj_factorM(const mjModel* m, mjData* d) {
|
||||
TM_START;
|
||||
int nM = m->nM;
|
||||
for (int i=0; i < nM; i++) {
|
||||
d->qLD[i] = d->qM[d->mapM2M[i]];
|
||||
}
|
||||
|
||||
// gather LD <- M (legacy to CSR) and factorize in-place
|
||||
mju_gather(d->qLD, d->qM, d->mapM2M, m->nM);
|
||||
mj_factorI(d->qLD, d->qLDiagInv, m->nv, d->M_rownnz, d->M_rowadr, m->dof_simplenum, d->M_colind);
|
||||
|
||||
TM_ADD(mjTIMER_POS_INERTIA);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user