@@ -770,7 +770,7 @@ static void mj_advance(const mjModel* m, mjData* d,
770770// Euler integrator, semi-implicit in velocity, possibly skipping factorisation
771771void mj_EulerSkip (const mjModel * m , mjData * d , int skipfactor ) {
772772 TM_START ;
773- int nv = m -> nv , nC = m -> nC ;
773+ int nv = m -> nv , nM = m -> nM ;
774774 mj_markStack (d );
775775 mjtNum * qfrc = mjSTACKALLOC (d , nv , mjtNum );
776776 mjtNum * qacc = mjSTACKALLOC (d , nv , mjtNum );
@@ -795,22 +795,22 @@ void mj_EulerSkip(const mjModel* m, mjData* d, int skipfactor) {
795795 else {
796796 if (!skipfactor ) {
797797 // qH = M + h*diag(B)
798- for (int i = 0 ; i < nC ; i ++ ) {
799- d -> qH [i ] = d -> qM [d -> mapM2C [i ]];
798+ for (int i = 0 ; i < nM ; i ++ ) {
799+ d -> qH [i ] = d -> qM [d -> mapM2M [i ]];
800800 }
801801 for (int i = 0 ; i < nv ; i ++ ) {
802- d -> qH [d -> C_rowadr [i ] + d -> C_rownnz [i ] - 1 ] += m -> opt .timestep * m -> dof_damping [i ];
802+ d -> qH [d -> M_rowadr [i ] + d -> M_rownnz [i ] - 1 ] += m -> opt .timestep * m -> dof_damping [i ];
803803 }
804804
805805 // factorize in-place
806- mj_factorI (d -> qH , d -> qHDiagInv , nv , d -> C_rownnz , d -> C_rowadr , m -> dof_simplenum , d -> C_colind );
806+ mj_factorI (d -> qH , d -> qHDiagInv , nv , d -> M_rownnz , d -> M_rowadr , m -> dof_simplenum , d -> M_colind );
807807 }
808808
809809 // solve
810810 mju_add (qfrc , d -> qfrc_smooth , d -> qfrc_constraint , nv );
811811 mju_copy (qacc , qfrc , m -> nv );
812812 mj_solveLD (qacc , d -> qH , d -> qHDiagInv , nv , 1 ,
813- d -> C_rownnz , d -> C_rowadr , m -> dof_simplenum , d -> C_colind );
813+ d -> M_rownnz , d -> M_rowadr , m -> dof_simplenum , d -> M_colind );
814814 }
815815
816816 // advance state and time
@@ -939,7 +939,7 @@ void mj_RungeKutta(const mjModel* m, mjData* d, int N) {
939939// fully implicit in velocity, possibly skipping factorization
940940void mj_implicitSkip (const mjModel * m , mjData * d , int skipfactor ) {
941941 TM_START ;
942- int nv = m -> nv , nM = m -> nM , nD = m -> nD , nC = m -> nC ;
942+ int nv = m -> nv , nM = m -> nM , nD = m -> nD ;
943943
944944 mj_markStack (d );
945945 mjtNum * qfrc = mjSTACKALLOC (d , nv , mjtNum );
@@ -987,18 +987,18 @@ void mj_implicitSkip(const mjModel* m, mjData* d, int skipfactor) {
987987 mju_addScl (MhB , d -> qM , MhB , - m -> opt .timestep , nM );
988988
989989 // copy into qH
990- for (int i = 0 ; i < nC ; i ++ ) {
991- d -> qH [i ] = MhB [d -> mapM2C [i ]];
990+ for (int i = 0 ; i < nM ; i ++ ) {
991+ d -> qH [i ] = MhB [d -> mapM2M [i ]];
992992 }
993993
994994 // factorize in-place
995- mj_factorI (d -> qH , d -> qHDiagInv , nv , d -> C_rownnz , d -> C_rowadr , m -> dof_simplenum , d -> C_colind );
995+ mj_factorI (d -> qH , d -> qHDiagInv , nv , d -> M_rownnz , d -> M_rowadr , m -> dof_simplenum , d -> M_colind );
996996 }
997997
998998 // solve for qacc: (qM - dt*qDeriv) * qacc = qfrc
999999 mju_copy (qacc , qfrc , nv );
10001000 mj_solveLD (qacc , d -> qH , d -> qHDiagInv , nv , 1 ,
1001- d -> C_rownnz , d -> C_rowadr , m -> dof_simplenum , d -> C_colind );
1001+ d -> M_rownnz , d -> M_rowadr , m -> dof_simplenum , d -> M_colind );
10021002
10031003 } else {
10041004 mjERROR ("integrator must be implicit or implicitfast" );
0 commit comments