Switch mjData.{qH,qLD} from reduced ("C") to full ("M") inertia matrix structure. No performance impact of extra zeros because of existing "simple dof" skipping mechanism.
PiperOrigin-RevId: 733523931 Change-Id: Ic8d8a152dda5532331c239cb6b4ce7d8d09b7fff
This commit is contained in:
committed by
Copybara-Service
parent
51f6aa8b43
commit
0f563ecf31
@@ -52,9 +52,8 @@ static void BM_solveLD(benchmark::State& state, bool featherstone, bool coil) {
|
||||
|
||||
// make legacy matrix
|
||||
mjtNum* LDlegacy = mj_stackAllocNum(d, m->nM);
|
||||
mju_zero(LDlegacy, m->nM);
|
||||
for (int i=0; i < m->nC; i++) {
|
||||
LDlegacy[d->mapM2C[i]] = d->qLD[i];
|
||||
for (int i=0; i < m->nM; i++) {
|
||||
LDlegacy[d->mapM2M[i]] = d->qLD[i];
|
||||
}
|
||||
|
||||
// benchmark
|
||||
@@ -65,7 +64,7 @@ static void BM_solveLD(benchmark::State& state, bool featherstone, bool coil) {
|
||||
mj_solveLD_legacy(m, res, 1, LDlegacy, d->qLDiagInv);
|
||||
} else {
|
||||
mj_solveLD(res, d->qLD, d->qLDiagInv, m->nv, 1,
|
||||
d->C_rownnz, d->C_rowadr, m->dof_simplenum, d->C_colind);
|
||||
d->M_rownnz, d->M_rowadr, m->dof_simplenum, d->M_colind);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user