From 3f3fe92860004d1f79535d3f0f7c1df60eabc79f Mon Sep 17 00:00:00 2001 From: Yuval Tassa Date: Fri, 4 Oct 2024 10:44:39 -0700 Subject: [PATCH] Remove unused argument in `mju_sqrMatTDSparseInit` PiperOrigin-RevId: 682375566 Change-Id: If05f5d15a2f8925eee9dd0ebc5d485164d90d787 --- src/engine/engine_core_constraint.c | 2 +- src/engine/engine_util_sparse.c | 21 +++-- src/engine/engine_util_sparse.h | 10 +-- test/engine/engine_util_sparse_test.cc | 102 ++++++++++++------------- 4 files changed, 65 insertions(+), 70 deletions(-) diff --git a/src/engine/engine_core_constraint.c b/src/engine/engine_core_constraint.c index 27845307..66c30541 100644 --- a/src/engine/engine_core_constraint.c +++ b/src/engine/engine_core_constraint.c @@ -2145,7 +2145,7 @@ void mj_projectConstraint(const mjModel* m, mjData* d) { mju_superSparse(nefc, rowsuper, rownnz, rowadr, colind); // AR = JM2 * JM2' - mju_sqrMatTDSparseInit(d->efc_AR_rownnz, d->efc_AR_rowadr, nv, nefc, rownnzT, + mju_sqrMatTDSparseInit(d->efc_AR_rownnz, d->efc_AR_rowadr, nefc, rownnzT, rowadrT, colindT, rownnz, rowadr, colind, rowsuper, d); mju_sqrMatTDSparse(d->efc_AR, JM2T, JM2, NULL, nv, nefc, diff --git a/src/engine/engine_util_sparse.c b/src/engine/engine_util_sparse.c index c44c6cd3..bb5c9441 100644 --- a/src/engine/engine_util_sparse.c +++ b/src/engine/engine_util_sparse.c @@ -637,18 +637,16 @@ void mju_superSparse(int nr, int* rowsuper, // precount res_rownnz and precompute res_rowadr for mju_sqrMatTDSparse -void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, - int nr, int nc, const int* rownnz, - const int* rowadr, const int* colind, - const int* rownnzT, const int* rowadrT, - const int* colindT, const int* rowsuperT, - mjData* d) { +void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, int nr, + const int* rownnz, const int* rowadr, const int* colind, + const int* rownnzT, const int* rowadrT, const int* colindT, + const int* rowsuperT, mjData* d) { mj_markStack(d); - int* chain = mj_stackAllocInt(d, 2*nc); + int* chain = mj_stackAllocInt(d, 2*nr); int nchain = 0; int* res_colind = NULL; - for (int r=0; r < nc; r++) { + for (int r=0; r < nr; r++) { // supernode; copy everything to next row if (rowsuperT && r > 0 && rowsuperT[r-1] > 0) { res_rownnz[r] = res_rownnz[r - 1]; @@ -664,7 +662,7 @@ void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, res_rownnz[r]++; } } else { - int inew = 0, iold = nc; + int inew = 0, iold = nr; nchain = 0; for (int i=0; i < rownnzT[r]; i++) { @@ -679,8 +677,7 @@ void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, int end = rowadr[c] + rownnz[c]; for (int adr1=rowadr[c]; adr1 < end; adr1++) { int col_mat = colind[adr1]; - while (adr < nchain && chain[iold + adr] < col_mat && - chain[iold + adr] <= r) { + while (adr < nchain && chain[iold + adr] < col_mat && chain[iold + adr] <= r) { chain[inew + nnewchain++] = chain[iold + adr++]; } @@ -720,7 +717,7 @@ void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, } res_rowadr[0] = 0; - for (int r = 1; r < nc; r++) { + for (int r = 1; r < nr; r++) { res_rowadr[r] = res_rowadr[r-1] + res_rownnz[r-1]; } diff --git a/src/engine/engine_util_sparse.h b/src/engine/engine_util_sparse.h index 239385c6..5d70de9f 100644 --- a/src/engine/engine_util_sparse.h +++ b/src/engine/engine_util_sparse.h @@ -97,12 +97,10 @@ MJAPI void mju_sqrMatTDSparse(mjtNum* res, const mjtNum* mat, const mjtNum* matT mjData* d); // precount res_rownnz and precompute res_rowadr for mju_sqrMatTDSparse -MJAPI void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, - int nr, int nc, const int* rownnz, - const int* rowadr, const int* colind, - const int* rownnzT, const int* rowadrT, - const int* colindT, const int* rowsuperT, - mjData* d); +MJAPI void mju_sqrMatTDSparseInit(int* res_rownnz, int* res_rowadr, int nr, + const int* rownnz, const int* rowadr, const int* colind, + const int* rownnzT, const int* rowadrT, const int* colindT, + const int* rowsuperT, mjData* d); // precompute res_rowadr for mju_sqrMatTDSparse using uncompressed memory MJAPI void mju_sqrMatTDUncompressedInit(int* res_rowadr, int nc); diff --git a/test/engine/engine_util_sparse_test.cc b/test/engine/engine_util_sparse_test.cc index 06260c29..d46e437d 100644 --- a/test/engine/engine_util_sparse_test.cc +++ b/test/engine/engine_util_sparse_test.cc @@ -325,17 +325,17 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse1) { int rowadrH[] = {0, 0, 0}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(3, 3, 3)); EXPECT_THAT(rowadrH, ElementsAre(0, 3, 6)); // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); - mju_sqrMatTDSparse(matH, mat, matT, NULL, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + mju_sqrMatTDSparse(matH, mat, matT, nullptr, 3, 3, rownnzH, rowadrH, colindH, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(0, 0, 0, 0, 0, 0, 0, 0, 0)); EXPECT_THAT(colindH, ElementsAre(0, 1, 2, 0, 1, 2, 0, 1, 2)); @@ -370,8 +370,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse2) { int rowadrH[] = {0, 0, 0}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(3, 3, 3)); EXPECT_THAT(rowadrH, ElementsAre(0, 3, 6)); @@ -379,9 +379,9 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse2) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); - mju_sqrMatTDSparse(matH, mat, matT, NULL, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + mju_sqrMatTDSparse(matH, mat, matT, nullptr, 3, 3, rownnzH, rowadrH, colindH, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(12, 0, 12, 0, 6, 3, 12, 3, 14)); EXPECT_THAT(colindH, ElementsAre(0, 1, 2, 0, 1, 2, 0, 1, 2)); @@ -418,8 +418,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse3) { mjtNum diag[] = {2, 3, 4}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(2, 2, 0)); EXPECT_THAT(rowadrH, ElementsAre(0, 2, 4)); @@ -427,8 +427,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse3) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(66, 4, 0, 4, 35, 0, 0, 0, 0)); EXPECT_THAT(colindH, ElementsAre(0, 1, 0, 0, 1, 0, 0, 0, 0)); @@ -466,8 +466,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse4) { // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(2, 0, 2)); EXPECT_THAT(rowadrH, ElementsAre(0, 2, 2)); @@ -475,8 +475,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse4) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(66, 4, 0, 0, 0, 0, 4, 35, 0)); EXPECT_THAT(colindH, ElementsAre(0, 2, 0, 0, 0, 0, 0, 2, 0)); @@ -512,17 +512,17 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse5) { // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(3, 2, 2)); EXPECT_THAT(rowadrH, ElementsAre(0, 3, 5)); // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); - mju_sqrMatTDSparse(matH, mat, matT, NULL, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + mju_sqrMatTDSparse(matH, mat, matT, nullptr, 3, 3, rownnzH, rowadrH, colindH, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(5, 6, 4, 6, 9, 0, 4, 16, 0)); EXPECT_THAT(colindH, ElementsAre(0, 1, 2, 0, 1, 0, 0, 2, 0)); @@ -557,17 +557,17 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse6) { int rowadrH[] = {0, 0, 0}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(2, 1, 2)); EXPECT_THAT(rowadrH, ElementsAre(0, 2, 3)); // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); - mju_sqrMatTDSparse(matH, mat, matT, NULL, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + mju_sqrMatTDSparse(matH, mat, matT, nullptr, 3, 3, rownnzH, rowadrH, colindH, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(1, 2, 0, 4, 0, 0, 2, 13, 0)); EXPECT_THAT(colindH, ElementsAre(0, 2, 0, 1, 0, 0, 0, 2, 0)); @@ -604,8 +604,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse7) { mjtNum diag[] = {2, 3, 4}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 2, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 2, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(2, 2)); EXPECT_THAT(rowadrH, ElementsAre(0, 2)); @@ -613,8 +613,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse7) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 2); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 2, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(66, 4, 4, 35)); EXPECT_THAT(colindH, ElementsAre(0, 1, 0, 1)); @@ -650,8 +650,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse8) { mjtNum diag[] = {2, 3}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 2, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(3, 2, 2)); EXPECT_THAT(rowadrH, ElementsAre(0, 3, 5)); @@ -659,8 +659,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse8) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); mju_sqrMatTDSparse(matH, mat, matT, diag, 2, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(14, 18, 8, 18, 27, 0, 8, 32, 0)); EXPECT_THAT(colindH, ElementsAre(0, 1, 2, 0, 1, 0, 0, 2, 0)); @@ -697,8 +697,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse9) { mjtNum diag[] = {2, 3, 4}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, - rownnzT, rowadrT, colindT, NULL, data); + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, + rownnzT, rowadrT, colindT, nullptr, data); EXPECT_THAT(rownnzH, ElementsAre(3, 3, 3)); EXPECT_THAT(rowadrH, ElementsAre(0, 3, 6)); @@ -706,8 +706,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse9) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, - NULL, data); + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, + nullptr, data); EXPECT_THAT(matH, ElementsAre(69, 77, 80, 77, 99, 108, 80, 108, 120)); EXPECT_THAT(colindH, ElementsAre(0, 1, 2, 0, 1, 2, 0, 1, 2)); @@ -745,7 +745,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse10) { mjtNum diag[] = {1, 1, 1}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(rownnzH, ElementsAre(3, 3, 3)); @@ -754,7 +754,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse10) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(matH, ElementsAre(14, 14, 14, 14, 14, 14, 14, 14, 14)); @@ -793,7 +793,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse11) { mjtNum diag[] = {1, 1, 1}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 3, rownnz, rowadr, colind, + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, rownnz, rowadr, colind, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(rownnzH, ElementsAre(3, 3, 3)); @@ -802,7 +802,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse11) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 3); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 3, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(matH, ElementsAre(1, 1, 1, 1, 10, 10, 1, 10, 10)); @@ -841,7 +841,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse12) { mjtNum diag[] = {1, 1, 1}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 4, rownnz, rowadr, colind, + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 4, rownnz, rowadr, colind, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(rownnzH, ElementsAre(4, 4, 4, 4)); @@ -850,7 +850,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse12) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 4); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 4, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(matH, @@ -893,7 +893,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse13) { mjtNum diag[] = {1, 1, 1}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 3, 5, rownnz, rowadr, colind, + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 5, rownnz, rowadr, colind, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(rownnzH, ElementsAre(2, 2, 0, 0, 0)); @@ -902,7 +902,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse13) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 5); mju_sqrMatTDSparse(matH, mat, matT, diag, 3, 5, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(matH, ElementsAre(3, 3, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -943,7 +943,7 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse14) { int rowadrH[] = {0, 0, 0, 0, 0, 0, 0}; // test precount - mju_sqrMatTDSparseInit(rownnzH, rowadrH, 1, 7, rownnz, rowadr, colind, + mju_sqrMatTDSparseInit(rownnzH, rowadrH, 7, rownnz, rowadr, colind, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(rownnzH, ElementsAre(7, 7, 7, 7, 7, 7, 7)); @@ -951,8 +951,8 @@ TEST_F(EngineUtilSparseTest, MjuSqrMatTDSparse14) { // test computation mju_sqrMatTDUncompressedInit(rowadrH, 7); - mju_sqrMatTDSparse(matH, mat, matT, NULL, 1, 7, rownnzH, rowadrH, colindH, - rownnz, rowadr, colind, NULL, rownnzT, rowadrT, colindT, + mju_sqrMatTDSparse(matH, mat, matT, nullptr, 1, 7, rownnzH, rowadrH, colindH, + rownnz, rowadr, colind, nullptr, rownnzT, rowadrT, colindT, rowsuperT, data); EXPECT_THAT(