Skip to content

Commit b5df2c1

Browse files
yuvaltassacopybara-github
authored andcommitted
Remove mjData.C_diag, no longer required as C is now lower triangular.
PiperOrigin-RevId: 712514204 Change-Id: I8293f65ebc09c6a8fed76b0e59d2e2a667e01a43
1 parent ac11e5f commit b5df2c1

File tree

9 files changed

+13
-26
lines changed

9 files changed

+13
-26
lines changed

doc/includes/references.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@ struct mjData_ {
313313
int* B_colind; // body-dof: column indices of non-zeros (nB x 1)
314314
int* C_rownnz; // reduced dof-dof: non-zeros in each row (nv x 1)
315315
int* C_rowadr; // reduced dof-dof: address of each row in C_colind (nv x 1)
316-
int* C_diag; // reduced dof-dof: index of diagonal element (nv x 1)
317316
int* C_colind; // reduced dof-dof: column indices of non-zeros (nC x 1)
318317
int* mapM2C; // index mapping from M to C (nC x 1)
319318
int* D_rownnz; // dof-dof: non-zeros in each row (nv x 1)

include/mujoco/mjdata.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,6 @@ struct mjData_ {
341341
int* B_colind; // body-dof: column indices of non-zeros (nB x 1)
342342
int* C_rownnz; // reduced dof-dof: non-zeros in each row (nv x 1)
343343
int* C_rowadr; // reduced dof-dof: address of each row in C_colind (nv x 1)
344-
int* C_diag; // reduced dof-dof: index of diagonal element (nv x 1)
345344
int* C_colind; // reduced dof-dof: column indices of non-zeros (nC x 1)
346345
int* mapM2C; // index mapping from M to C (nC x 1)
347346
int* D_rownnz; // dof-dof: non-zeros in each row (nv x 1)

include/mujoco/mjxmacro.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,6 @@
654654
X ( int, B_colind, nB, 1 ) \
655655
X ( int, C_rownnz, nv, 1 ) \
656656
X ( int, C_rowadr, nv, 1 ) \
657-
X ( int, C_diag, nv, 1 ) \
658657
X ( int, C_colind, nC, 1 ) \
659658
X ( int, mapM2C, nC, 1 ) \
660659
X ( int, D_rownnz, nv, 1 ) \

introspect/structs.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5388,14 +5388,6 @@
53885388
),
53895389
doc='reduced dof-dof: address of each row in C_colind (nv x 1)', # pylint: disable=line-too-long
53905390
),
5391-
StructFieldDecl(
5392-
name='C_diag',
5393-
type=PointerType(
5394-
inner_type=ValueType(name='int'),
5395-
),
5396-
doc='reduced dof-dof: index of diagonal element',
5397-
array_extent=('nv',),
5398-
),
53995391
StructFieldDecl(
54005392
name='C_colind',
54015393
type=PointerType(

mjx/mujoco/mjx/_src/io.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,6 @@ def make_data(
332332
'B_colind': (m.nB, jp.int32),
333333
'C_rownnz': (m.nv, jp.int32),
334334
'C_rowadr': (m.nv, jp.int32),
335-
'C_diag': (m.nv, jp.int32),
336335
'C_colind': (m.nC, jp.int32),
337336
'mapM2C': (m.nC, jp.int32),
338337
'D_rownnz': (m.nv, jp.int32),

mjx/mujoco/mjx/_src/types.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,7 +1296,6 @@ class Data(PyTreeNode):
12961296
B_colind: body-dof: column indices of non-zeros (nB,)
12971297
C_rownnz: reduced dof-dof: non-zeros in each row (nv,)
12981298
C_rowadr: reduced dof-dof: address of each row in C_colind (nv,)
1299-
C_diag: reduced dof-dof: index of diagonal element (nv,)
13001299
C_colind: reduced dof-dof: column indices of non-zeros (nC,)
13011300
mapM2C: index mapping from M to C (nC,)
13021301
D_rownnz: dof-dof: non-zeros in each row (nv,)
@@ -1426,7 +1425,6 @@ class Data(PyTreeNode):
14261425
B_colind: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name
14271426
C_rownnz: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name
14281427
C_rowadr: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name
1429-
C_diag: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name
14301428
C_colind: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name
14311429
mapM2C: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name
14321430
D_rownnz: jax.Array = _restricted_to('mujoco') # pylint:disable=invalid-name

src/engine/engine_io.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -994,16 +994,18 @@ static void makeDofDofSparse(const mjModel* m, mjData* d,
994994
}
995995

996996
// find diagonal indices
997-
for (int i = 0; i < nv; i++) {
998-
int adr = rowadr[i];
999-
int j = 0;
1000-
while (colind[adr + j] < i && j < rownnz[i]) {
1001-
j++;
1002-
}
1003-
if (colind[adr + j] != i) {
1004-
mjERROR("diagonal index not found");
997+
if (diag) {
998+
for (int i = 0; i < nv; i++) {
999+
int adr = rowadr[i];
1000+
int j = 0;
1001+
while (colind[adr + j] < i && j < rownnz[i]) {
1002+
j++;
1003+
}
1004+
if (colind[adr + j] != i) {
1005+
mjERROR("diagonal index not found");
1006+
}
1007+
diag[i] = j;
10051008
}
1006-
diag[i] = j;
10071009
}
10081010

10091011
mj_freeStack(d);
@@ -1963,7 +1965,7 @@ static void _resetData(const mjModel* m, mjData* d, unsigned char debug_value) {
19631965
checkDBSparse(m, d);
19641966

19651967
// make C
1966-
makeDofDofSparse(m, d, d->C_rownnz, d->C_rowadr, d->C_diag, d->C_colind, /*reduced=*/1);
1968+
makeDofDofSparse(m, d, d->C_rownnz, d->C_rowadr, NULL, d->C_colind, /*reduced=*/1);
19671969
makeDofDofmap(m, d);
19681970
}
19691971

src/engine/engine_print.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,7 @@ void mj_printFormattedData(const mjModel* m, mjData* d, const char* filename,
11351135
fprintf(fp, "\n\n");
11361136

11371137
// C sparse structure
1138-
mj_printSparsity("C: reduced dof-dof matrix", m->nv, m->nv, d->C_rowadr, d->C_diag, d->C_rownnz,
1138+
mj_printSparsity("C: reduced dof-dof matrix", m->nv, m->nv, d->C_rowadr, NULL, d->C_rownnz,
11391139
NULL, d->C_colind, fp);
11401140

11411141
fprintf(fp, NAME_FORMAT, "C_rownnz");

unity/Runtime/Bindings/MjBindings.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4939,7 +4939,6 @@ public unsafe struct mjData_ {
49394939
public int* B_colind;
49404940
public int* C_rownnz;
49414941
public int* C_rowadr;
4942-
public int* C_diag;
49434942
public int* C_colind;
49444943
public int* mapM2C;
49454944
public int* D_rownnz;

0 commit comments

Comments
 (0)