Declare loop variables inside for loop declaration where possible.

PiperOrigin-RevId: 518846098
Change-Id: Icdb2e5894bd80110552e29270472eeb242e6cf2c
This commit is contained in:
Nimrod Gileadi
2023-03-23 06:48:32 -07:00
committed by Copybara-Service
parent ce6c9053e2
commit 145fe7f354
9 changed files with 111 additions and 107 deletions
+5 -5
View File
@@ -517,7 +517,7 @@ typedef struct _mjtPrism mjtPrism;
// ccd prism support function
static void prism_support(const void *obj, const ccd_vec3_t *dir, ccd_vec3_t *vec) {
int i, istart, ibest;
int istart, ibest;
mjtNum best, tmp;
const mjtPrism* p = (const mjtPrism*)obj;
@@ -525,7 +525,7 @@ static void prism_support(const void *obj, const ccd_vec3_t *dir, ccd_vec3_t *ve
istart = dir->v[2]<0 ? 0 : 3;
ibest = istart;
best = mju_dot3(p->v[istart], dir->v);
for (i=istart+1; i<istart+3; i++) {
for (int i=istart+1; i<istart+3; i++) {
if ((tmp = mju_dot3(p->v[i], dir->v)) > best) {
ibest = i;
best = tmp;
@@ -584,7 +584,7 @@ int mjc_ConvexHField(const mjModel* m, const mjData* d,
int hid = m->geom_dataid[g1];
int nrow = m->hfield_nrow[hid];
int ncol = m->hfield_ncol[hid];
int r, c, dr[2], cnt, rmin, rmax, cmin, cmax, nvert;
int dr[2], cnt, rmin, rmax, cmin, cmax, nvert;
const float* data = m->hfield_data + m->hfield_adr[hid];
mjtPrism prism;
@@ -710,9 +710,9 @@ int mjc_ConvexHField(const mjModel* m, const mjData* d,
// process all prisms in sub-grid
cnt = 0;
for (r=rmin; r<rmax; r++) {
for (int r=rmin; r<rmax; r++) {
nvert = 0;
for (c=cmin; c<=cmax; c++) {
for (int c=cmin; c<=cmax; c++) {
for (int i=0; i<2; i++) {
// send vertex to prism constructor
addVert(&nvert, &prism, dx*c-size1[0], dy*(r+dr[i])-size1[1],
+20 -21
View File
@@ -664,7 +664,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
// find center of non-world geoms; return if none
cnt = 0;
mju_zero3(cen);
for (i=0; i<ngeom; i++) {
for (int i=0; i<ngeom; i++) {
if (m->geom_bodyid[i]) {
mju_addTo3(cen, d->geom_xpos+3*i);
cnt++;
@@ -673,14 +673,14 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
if (cnt==0) {
return npair;
} else {
for (i=0; i<3; i++) {
for (int i=0; i<3; i++) {
cen[i] /= cnt;
}
}
// compute covariance
mju_zero(cov, 9);
for (i=0; i<ngeom; i++) {
for (int i=0; i<ngeom; i++) {
if (m->geom_bodyid[i]) {
mju_sub3(dif, d->geom_xpos+3*i, cen);
mjtNum D00 = dif[0]*dif[0];
@@ -700,7 +700,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
cov[8] += D22;
}
}
for (i=0; i<9; i++) {
for (int i=0; i<9; i++) {
cov[i] /= cnt;
}
@@ -713,7 +713,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
// construct body AABB for the aligned frame, count collidable
int bufcnt = 0;
for (i=1; i<nbody; i++) {
for (int i=1; i<nbody; i++) {
makeAABB(m, d, aabb+6*i, i, frame);
if (can_collide(m, i)) {
@@ -734,7 +734,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
// init sortbuf with axis0
j = 0;
for (i=1; i<nbody; i++) {
for (int i=1; i<nbody; i++) {
// cannot colide
if (!can_collide(m, i)) {
continue;
@@ -758,10 +758,10 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
// sweep and prune
cnt = 0; // size of active list
for (i=0; i<2*bufcnt; i++) {
for (int i=0; i<2*bufcnt; i++) {
// min value: collide with all in list, add
if (!(sortbuf[i].body_ismax & 0x10000)) {
for (j=0; j<cnt; j++) {
for (int j=0; j<cnt; j++) {
// get body ids: no need to mask ismax because activebuf entries never have the ismax bit,
// and sortbuf[i].body_ismax is tested above
b1 = activebuf[j].body_ismax;
@@ -797,7 +797,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) {
// max value: remove corresponding min value from list
else {
toremove = sortbuf[i].body_ismax & 0xFFFF;
for (j=0; j<cnt; j++) {
for (int j=0; j<cnt; j++) {
if (activebuf[j].body_ismax==toremove) {
if (j<cnt-1) {
memmove(activebuf+j, activebuf+j+1, sizeof(mjtBroadphase)*(cnt-1-j));
@@ -921,14 +921,13 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
// remove repeated contacts in box-box
if (type1==mjGEOM_BOX && type2==mjGEOM_BOX) {
// use dim field to mark: -1: bad, 0: good
for (i=0; i<num; i++) {
for (int i=0; i<num; i++) {
con[i].dim = 0;
}
// find bad
int j;
for (i=0; i<num-1; i++) {
for (j=i+1; j<num; j++) {
for (int i=0; i<num-1; i++) {
for (int j=i+1; j<num; j++) {
if (con[i].pos[0]==con[j].pos[0] &&
con[i].pos[1]==con[j].pos[1] &&
con[i].pos[2]==con[j].pos[2]) {
@@ -940,7 +939,7 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
// consolidate good
i = 0;
for (j=0; j<num; j++) {
for (int j=0; j<num; j++) {
if (con[j].dim==0) {
// different: copy
if (i<j) {
@@ -963,7 +962,7 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
int gp = (m->geom_priority[g1]>m->geom_priority[g2] ? g1 : g2);
// friction
for (i=0; i<3; i++) {
for (int i=0; i<3; i++) {
friction[2*i] = m->geom_friction[3*gp+i];
}
@@ -977,7 +976,7 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
// same priority
else {
// friction: max
for (i=0; i<3; i++) {
for (int i=0; i<3; i++) {
friction[2*i] = mju_max(m->geom_friction[3*g1+i], m->geom_friction[3*g2+i]);
}
@@ -994,14 +993,14 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
// reference standard: mix
if (m->geom_solref[mjNREF*g1]>0 && m->geom_solref[mjNREF*g2]>0) {
for (i=0; i<mjNREF; i++) {
for (int i=0; i<mjNREF; i++) {
solref[i] = mix*m->geom_solref[mjNREF*g1+i] + (1-mix)*m->geom_solref[mjNREF*g2+i];
}
}
// reference direct: min
else {
for (i=0; i<mjNREF; i++) {
for (int i=0; i<mjNREF; i++) {
solref[i] = mju_min(m->geom_solref[mjNREF*g1+i], m->geom_solref[mjNREF*g2+i]);
}
}
@@ -1019,7 +1018,7 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
// set friction, solref, solimp: pair
else {
// friction
for (i=0; i<5; i++) {
for (int i=0; i<5; i++) {
friction[i] = m->pair_friction[5*ipair+i];
}
@@ -1031,12 +1030,12 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user,
}
// clamp friction to mjMINMU
for (i=0; i<5; i++) {
for (int i=0; i<5; i++) {
friction[i] = mju_max(mjMINMU, friction[i]);
}
// add contact returned by collision detector
for (i=0; i<num; i++) {
for (int i=0; i<num; i++) {
// set contact data
if (condim > 6 || condim < 1) { // SHOULD NOT OCCUR
mju_error("Invalid condim value: %d", i);
+6 -4
View File
@@ -544,20 +544,22 @@ static void mj_advance(const mjModel* m, mjData* d,
// Euler integrator, semi-implicit in velocity, possibly skipping factorisation
void mj_EulerSkip(const mjModel* m, mjData* d, int skipfactor) {
int i, nv = m->nv, nM = m->nM;
int nv = m->nv, nM = m->nM;
mjMARKSTACK;
mjtNum* qfrc = mj_stackAlloc(d, nv);
mjtNum* qacc = mj_stackAlloc(d, nv);
// check for dof damping
for (i=0; i<nv; i++) {
int dof_damping = 0;
for (int i=0; i<nv; i++) {
if (m->dof_damping[i]>0) {
dof_damping = 1;
break;
}
}
// no damping: explicit velocity integration
if (i>=nv) {
if (!dof_damping) {
mju_copy(qacc, d->qacc, nv);
}
@@ -568,7 +570,7 @@ void mj_EulerSkip(const mjModel* m, mjData* d, int skipfactor) {
// MhB = M + h*diag(B)
mju_copy(MhB, d->qM, m->nM);
for (i=0; i<nv; i++) {
for (int i=0; i<nv; i++) {
MhB[m->dof_Madr[i]] += m->opt.timestep * m->dof_damping[i];
}
+3 -3
View File
@@ -622,7 +622,7 @@ void mj_saveModel(const mjModel* m, const char* filename, void* buffer, int buff
// load model from binary MJB file
// if vfs is not NULL, look up file in vfs before reading from disk
mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) {
int i, header[4] = {0};
int header[4] = {0};
int expected_header[4] = {ID, sizeof(mjtNum), getnint(), getnptr()};
int info[2000];
int ptrbuf = 0;
@@ -633,7 +633,7 @@ mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) {
const void* buffer = NULL;
int buffer_sz = 0;
if (vfs) {
i = mj_findFileVFS(vfs, filename);
int i = mj_findFileVFS(vfs, filename);
if (i>=0) {
buffer_sz = vfs->filesize[i];
buffer = vfs->filedata[i];
@@ -660,7 +660,7 @@ mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) {
}
// check header
for (i=0; i<4; i++) {
for (int i=0; i<4; i++) {
if (header[i]!=expected_header[i]) {
if (fp) {
fclose(fp);
+2 -1
View File
@@ -105,7 +105,7 @@ static void ARdiaginv(const mjModel* m, mjData* d, mjtNum* res, int flg_subR) {
// extract diagonal block from AR, clamp diag to 1e-10 if flg_subR
static void extractBlock(const mjModel* m, mjData* d, mjtNum* Ac,
int start, int n, int flg_subR) {
int k, nefc = d->nefc;
int nefc = d->nefc;
const mjtNum *AR = d->efc_AR;
const int *rownnz = d->efc_AR_rownnz, *rowadr = d->efc_AR_rowadr, *colind = d->efc_AR_colind;
@@ -123,6 +123,7 @@ static void extractBlock(const mjModel* m, mjData* d, mjtNum* Ac,
}
*/
// assume full sub-matrix, find starting k: same for all rows
int k;
for (k=0; k<rownnz[start]; k++) {
if (colind[rowadr[start]+k]==start) {
break;
+1 -1
View File
@@ -45,7 +45,7 @@ static void vfs_strippath(char* newname, const char* oldname) {
mju_strncpy(newname, oldname+i+1, mjMAXVFSNAME);
// make lowercase
for (i=strlen(newname)-1; i>=0; i--) {
for (int i=strlen(newname)-1; i>=0; i--) {
if (newname[i]>='A' && newname[i]<='Z') {
newname[i] = (char)(((int)newname[i]) +'a' - 'A');
}
+3 -3
View File
@@ -1059,9 +1059,9 @@ void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* vopt,
}
// get geom group and clamp
int j = mjMAX(0, mjMIN(mjNGROUP-1, m->geom_group[i]));
int geomgroup = mjMAX(0, mjMIN(mjNGROUP-1, m->geom_group[i]));
if (vopt->geomgroup[j]) {
if (vopt->geomgroup[geomgroup]) {
START
// construct geom
@@ -1116,7 +1116,7 @@ void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* vopt,
// re-center infinite plane
if (m->geom_size[3*i]<=0 || m->geom_size[3*i+1]<=0) {
// vec = headpos - geompos
for (j=0; j<3; j++) {
for (int j=0; j<3; j++) {
vec[j] = 0.5*(scn->camera[0].pos[j] + scn->camera[1].pos[j]) - d->geom_xpos[3*i+j];
}