int _pullHestEnergyParse(void *ptr, char *str, char err[AIR_STRLEN_HUGE]) { pullEnergySpec **enspP; char me[]="_pullHestForceParse", *perr; if (!(ptr && str)) { sprintf(err, "%s: got NULL pointer", me); return 1; } enspP = (pullEnergySpec **)ptr; *enspP = pullEnergySpecNew(); if (pullEnergySpecParse(*enspP, str)) { perr = biffGetDone(PULL); strncpy(err, perr, AIR_STRLEN_HUGE-1); free(perr); return 1; } return 0; }
pullContext * pullContextNew(void) { pullContext *pctx; unsigned int ii; pctx = (pullContext *)calloc(1, sizeof(pullContext)); if (!pctx) { return NULL; } pctx->verbose = 0; pctx->pointNumInitial = 0; pctx->npos = NULL; for (ii=0; ii<PULL_VOLUME_MAXNUM; ii++) { pctx->vol[ii] = NULL; } pctx->volNum = 0; for (ii=0; ii<=PULL_INFO_MAX; ii++) { pctx->ispec[ii] = NULL; pctx->infoIdx[ii] = UINT_MAX; } pctx->stepInitial = 1; pctx->radiusSpace = 1; pctx->radiusScale = 1; pctx->neighborTrueProb = 1.0; pctx->probeProb = 1.0; pctx->opporStepScale = 1.0; pctx->stepScale = 0.5; pctx->energyImprovMin = 0.01; pctx->constraintStepMin = 0.0001; pctx->wall = 1; pctx->pointPerVoxel = 0; pctx->rngSeed = 42; pctx->threadNum = 1; pctx->iterMax = 0; pctx->constraintIterMax = 15; pctx->snap = 0; pctx->energySpec = pullEnergySpecNew(); pctx->alpha = 0.5; pctx->beta = 1.0; pctx->jitter = 1.0; pctx->radiusSingle = AIR_TRUE; pctx->binSingle = AIR_FALSE; pctx->binIncr = 32; ELL_4V_SET(pctx->bboxMin, AIR_NAN, AIR_NAN, AIR_NAN, AIR_NAN); ELL_4V_SET(pctx->bboxMax, AIR_NAN, AIR_NAN, AIR_NAN, AIR_NAN); pctx->infoTotalLen = 0; /* will be set later */ pctx->idtagNext = 0; pctx->haveScale = AIR_FALSE; pctx->constraint = 0; pctx->finished = AIR_FALSE; pctx->maxDist = AIR_NAN; pctx->constraintVoxelSize = AIR_NAN; pctx->bin = NULL; ELL_3V_SET(pctx->binsEdge, 0, 0, 0); pctx->binNum = 0; pctx->binNextIdx = 0; pctx->pointPerm = NULL; pctx->pointBuff = NULL; pctx->binMutex = NULL; pctx->task = NULL; pctx->iterBarrierA = NULL; pctx->iterBarrierB = NULL; pctx->timeIteration = 0; pctx->timeRun = 0; pctx->stuckNum = 0; pctx->iter = 0; pctx->energy = AIR_NAN; pctx->noutPos = nrrdNew(); return pctx; }