@@ -1131,6 +1131,11 @@ void mj_printFormattedData(const mjModel* m, const mjData* d, const char* filena
11311131 d -> C_rowadr , d -> C_colind , fp , float_format );
11321132 printArray ("QLDIAGINV" , m -> nv , 1 , d -> qLDiagInv , fp , float_format );
11331133
1134+ if (!mju_isZero (d -> qHDiagInv , m -> nv )) {
1135+ printSparse ("QH" , d -> qH , m -> nv , d -> C_rownnz , d -> C_rowadr , d -> C_colind , fp , float_format );
1136+ printArray ("QHDIAGINV" , m -> nv , 1 , d -> qHDiagInv , fp , float_format );
1137+ }
1138+
11341139 // B sparse structure
11351140 mj_printSparsity ("B: body-dof matrix" , m -> nbody , m -> nv , d -> B_rowadr , NULL , d -> B_rownnz , NULL ,
11361141 d -> B_colind , fp );
@@ -1227,12 +1232,15 @@ void mj_printFormattedData(const mjModel* m, const mjData* d, const char* filena
12271232 fprintf (fp , "\n\n" );
12281233
12291234 // print qDeriv
1230- printSparse ("QDERIV" , d -> qDeriv , m -> nv , d -> D_rownnz , d -> D_rowadr , d -> D_colind ,
1231- fp , float_format );
1235+ if (!mju_isZero (d -> qDeriv , m -> nD )) {
1236+ printSparse ("QDERIV" , d -> qDeriv , m -> nv , d -> D_rownnz , d -> D_rowadr , d -> D_colind ,
1237+ fp , float_format );
1238+ }
12321239
12331240 // print qLU
1234- printSparse ("QLU" , d -> qLU , m -> nv , d -> D_rownnz , d -> D_rowadr , d -> D_colind ,
1235- fp , float_format );
1241+ if (!mju_isZero (d -> qLU , m -> nD )) {
1242+ printSparse ("QLU" , d -> qLU , m -> nv , d -> D_rownnz , d -> D_rowadr , d -> D_colind , fp , float_format );
1243+ }
12361244
12371245 // contact
12381246 fprintf (fp , "CONTACT\n" );
0 commit comments