Move square root of Delassus matrix from stack to arena

PiperOrigin-RevId: 916852244
Change-Id: I4379553f808d0b238a1421606f806ea2d0a33d7c
This commit is contained in:
Yuval Tassa
2026-05-17 11:21:07 -07:00
committed by Copybara-Service
parent 2345663efb
commit 04042d8bf3
11 changed files with 294 additions and 188 deletions
+38 -1
View File
@@ -5492,6 +5492,11 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=ValueType(name='int'),
doc='number of non-zeros in constraint Jacobian',
),
StructFieldDecl(
name='nY',
type=ValueType(name='int'),
doc='number of non-zeros in constraint inverse inertia square root', # pylint: disable=line-too-long
),
StructFieldDecl(
name='nA',
type=ValueType(name='int'),
@@ -6726,6 +6731,38 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='inverse constraint mass',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_Y_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in Y row',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_Y_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in Y colind array',
array_extent=('nefc',),
),
StructFieldDecl(
name='efc_Y_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse Y',
array_extent=('nY',),
),
StructFieldDecl(
name='efc_Y',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='whitened Jacobian Y = J*M^(-1/2)',
array_extent=('nY',),
),
StructFieldDecl(
name='efc_AR_rownnz',
type=PointerType(
@@ -6739,7 +6776,7 @@ STRUCTS: Mapping[str, StructDecl] = dict([
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array',
doc='row start address in AR colind array',
array_extent=('nefc',),
),
StructFieldDecl(
+2
View File
@@ -812,6 +812,7 @@ void MjDataWrapper::Serialize(std::ostream& output) const {
X(ne);
X(nf);
X(nJ);
X(nY);
X(nA);
X(nefc);
X(nisland);
@@ -891,6 +892,7 @@ MjDataWrapper MjDataWrapper::Deserialize(std::istream& input) {
X(ne);
X(nf);
X(nJ);
X(nY);
X(nA);
X(nefc);
X(nisland);