#include #include #include #include "nrutil.h" #include "structs.h" int istrunc (char *objtype); struct fitpars *newobject (char *objtype) { int i; struct fitpars *new; new = (struct fitpars *) malloc ((size_t)(sizeof (struct fitpars))); /* "Classical, traditional" parameters, or coord rotation functions */ new->npars = 10; new->a = (float *) malloc ((size_t)(sizeof (float) * (new->npars+1))); new->ia = (int *) malloc ((size_t)(sizeof (int) * (new->npars+1))); new->sig = (float *) malloc ((size_t)(sizeof (float) * (new->npars+1))); new->compnum = 0; for (i=0; i <= new->npars; i++) { new->a[i] = 0.; new->sig[i] = 0.; new->ia[i] = 0; }; if (!istrunc (objtype)) new->a[9] = 1.; /* set default axis ratio */ else { new->ia[1] = -1; new->ia[2] = -1; new->ia[9] = -1; new->ia[10] = -1; new->a[9] = 1.; new->a[10] = 0.; }; new->outtype = 0; new->tr_num = 0; new->inner = NULL; new->outer = NULL; new->dp = NULL; new->high = NULL; new->next = NULL; sprintf (new->objtype, "%s ", objtype); new->normtype = 0; return (new); } /**************************************************************************/ void init_first (struct fitpars *fpar, char *objtype) { int i; /* "Classical" or "traditional" parameters */ fpar->npars = 10; fpar->a = (float *) malloc ((size_t)(sizeof (float) * (fpar->npars+1))); fpar->ia = (int *) malloc ((size_t)(sizeof (int) * (fpar->npars+1))); fpar->sig = (float *) malloc ((size_t)(sizeof (float) * (fpar->npars+1))); for (i=0; i <= 10; i++) { fpar->a[i] = 0.; fpar->ia[i] = 0; fpar->sig[i] = 0.; }; if (istrunc (objtype)) { fpar->ia[1] = -1; fpar->ia[2] = -1; fpar->ia[3] = -1; fpar->ia[8] = -1; fpar->ia[9] = -1; fpar->ia[10] = -1; }; fpar->a[9] = 1.; /* set default axis ratio */ fpar->outtype = 0; fpar->tr_num = 0; fpar->inner = NULL; fpar->outer = NULL; fpar->dp = NULL; fpar->high = NULL; fpar->next = NULL; sprintf (fpar->objtype, "%s ", objtype); fpar->normtype = 0; }