Remove transposed Jacobian fields from mjData
No longer computed unconditionally, only ad-hoc where required. PiperOrigin-RevId: 797753297 Change-Id: I2030fc342c98ff33575b0526dd72e2110c4fcb74
This commit is contained in:
committed by
Copybara-Service
parent
5fe4224ae7
commit
2f28473bc1
@@ -386,10 +386,10 @@ void mj_mulJacTVec(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum*
|
||||
}
|
||||
|
||||
// sparse Jacobian
|
||||
if (mj_isSparse(m))
|
||||
mju_mulMatVecSparse(res, d->efc_JT, vec, m->nv,
|
||||
d->efc_JT_rownnz, d->efc_JT_rowadr,
|
||||
d->efc_JT_colind, d->efc_JT_rowsuper);
|
||||
if (mj_isSparse(m)) {
|
||||
mju_mulMatTVecSparse(res, d->efc_J, vec, d->nefc, m->nv,
|
||||
d->efc_J_rownnz, d->efc_J_rowadr, d->efc_J_colind);
|
||||
}
|
||||
|
||||
// dense Jacobian
|
||||
else {
|
||||
@@ -1996,12 +1996,6 @@ void mj_makeConstraint(const mjModel* m, mjData* d) {
|
||||
|
||||
// transpose sparse Jacobian, make row supernodes
|
||||
if (mj_isSparse(m)) {
|
||||
// transpose
|
||||
mju_transposeSparse(d->efc_JT, d->efc_J, d->nefc, m->nv,
|
||||
d->efc_JT_rownnz, d->efc_JT_rowadr, d->efc_JT_colind, d->efc_JT_rowsuper,
|
||||
d->efc_J_rownnz, d->efc_J_rowadr, d->efc_J_colind);
|
||||
|
||||
|
||||
#ifdef mjUSEAVX
|
||||
// compute supernodes of J; used by mju_mulMatVecSparse_avx
|
||||
mju_superSparse(d->nefc, d->efc_J_rowsuper,
|
||||
|
||||
Reference in New Issue
Block a user