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
+42 -2
View File
@@ -4296,6 +4296,11 @@ STRUCTS: Mapping[str, StructDecl] = dict([
),
doc='timer statistics',
),
StructFieldDecl(
name='ncon',
type=ValueType(name='int'),
doc='number of detected contacts',
),
StructFieldDecl(
name='ne',
type=ValueType(name='int'),
@@ -4322,9 +4327,9 @@ STRUCTS: Mapping[str, StructDecl] = dict([
doc='number of non-zeros in constraint Jacobian',
),
StructFieldDecl(
name='ncon',
name='nnzL',
type=ValueType(name='int'),
doc='number of detected contacts',
doc='number of non-zeros in Newton Cholesky factor',
),
StructFieldDecl(
name='nisland',
@@ -5282,6 +5287,41 @@ STRUCTS: Mapping[str, StructDecl] = dict([
),
doc="J*inv(M)*J' + R (nefc x nefc)", # pylint: disable=line-too-long
),
StructFieldDecl(
name='L_rownnz',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='number of non-zeros in Hessian factor L rows (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='L_rowadr',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='row start address in colind array (nv x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='L_colind',
type=PointerType(
inner_type=ValueType(name='int'),
),
doc='column indices in sparse AR (nnzL x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='L',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc="chol(M + J'*diag(efc_D)*J) (nnzL x 1)", # pylint: disable=line-too-long
),
StructFieldDecl(
name='Lcone',
type=PointerType(
inner_type=ValueType(name='mjtNum'),
),
doc='L with cone contributions (nnzL x 1)', # pylint: disable=line-too-long
),
StructFieldDecl(
name='efc_vel',
type=PointerType(