34 lines
808 B
C
34 lines
808 B
C
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;
|
|
}
|
|
}
|
|
}
|
|
|