typedef const int cint; typedef struct { } Bounds; int ndim_, ncomp_, selectedcomp_, nregions_; void *voidregion_; typedef struct { double diff, err, spread; } Errors; typedef const Errors cErrors; void Split(int iregion, int depth, int xregion) { typedef struct { double avg, err, spread, chisq; double xmin[ndim_], xmax[ndim_]; } Result; typedef struct region { Result result[ncomp_]; } Region; Errors errors[ncomp_]; int comp, ireg, xreg; for( ireg = iregion, xreg = xregion; ireg < nregions_; ireg = xreg++ ) { Result *result = ((Region *)voidregion_)[ireg].result; for( comp = 0; comp < ncomp_; ++comp ) { Result *r = &result[comp]; cErrors *e = &errors[comp]; double c = e->diff; if( r->err > 0 ) r->err = r->err*e->err + c; } } }