From: <kin...@us...> - 2009-02-12 04:25:02
|
Revision: 4081 http://teem.svn.sourceforge.net/teem/?rev=4081&view=rev Author: kindlmann Date: 2009-02-12 04:25:00 +0000 (Thu, 12 Feb 2009) Log Message: ----------- fixing memory leak Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2009-02-12 03:53:39 UTC (rev 4080) +++ teem/trunk/src/gage/ctx.c 2009-02-12 04:25:00 UTC (rev 4081) @@ -161,6 +161,7 @@ gagePerVolumeNix(ctx->pvl[pvlIdx]); /* no point in doing a detach, the whole context is going bye-bye */ } + airArrayNuke(ctx->pvlArr); ctx->shape = gageShapeNix(ctx->shape); ctx->fw = (double *)airFree(ctx->fw); ctx->fsl = (double *)airFree(ctx->fsl); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2010-07-09 07:37:28
|
Revision: 4651 http://teem.svn.sourceforge.net/teem/?rev=4651&view=rev Author: kindlmann Date: 2010-07-09 07:37:22 +0000 (Fri, 09 Jul 2010) Log Message: ----------- change in verbosity thresholds Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2010-07-09 02:46:34 UTC (rev 4650) +++ teem/trunk/src/gage/ctx.c 2010-07-09 07:37:22 UTC (rev 4651) @@ -600,7 +600,7 @@ || (AIR_CAST(int, xx) != _xx)); dataIdx = xx + sx*(yy + sy*zz); here = data + dataIdx*pvl->kind->valLen*nrrdTypeSize[pvl->nin->type]; - if (ctx->verbose > 1) { + if (ctx->verbose > 2) { fprintf(stderr, "%s: (%d,%d,%d) --clamp--> (%u,%u,%u)\n", me, _xx, _yy, _zz, xx, yy, zz); fprintf(stderr, " --> dataIdx = %d; data = %p -> here = %p\n", @@ -608,7 +608,7 @@ } for (tup=0; tup<pvl->kind->valLen; tup++) { pvl->iv3[cacheIdx + fddd*tup] = pvl->lup(here, tup); - if (ctx->verbose > 2) { + if (ctx->verbose > 3) { fprintf(stderr, "%s: iv3[%u + %u*%u=%u] = %g\n", me, cacheIdx, fddd, tup, cacheIdx + fddd*tup, pvl->iv3[cacheIdx + fddd*tup]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2011-02-26 22:37:34
|
Revision: 4738 http://teem.svn.sourceforge.net/teem/?rev=4738&view=rev Author: kindlmann Date: 2011-02-26 22:37:28 +0000 (Sat, 26 Feb 2011) Log Message: ----------- improved error message for kernel checks Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2011-02-26 22:35:20 UTC (rev 4737) +++ teem/trunk/src/gage/ctx.c 2011-02-26 22:37:28 UTC (rev 4738) @@ -239,9 +239,11 @@ } else { /* its a derivative, so integral must be near zero */ if (!( AIR_ABS(integral) <= ctx->parm.kernelIntegralNearZero )) { - biffAddf(GAGE, "%s: derivative kernel's integral (%g) not within " - "%g of 0.0", - me, integral, ctx->parm.kernelIntegralNearZero); + char str[AIR_STRLEN_LARGE]=""; + nrrdKernelSprint(str, k, kparm); + biffAddf(GAGE, "%s: derivative %s kernel (%s) integral %g not within " + "%g of 0.0", me, airEnumStr(gageKernel, which), str, + integral, ctx->parm.kernelIntegralNearZero); return 1; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2012-04-03 20:19:14
|
Revision: 5223 http://teem.svn.sourceforge.net/teem/?rev=5223&view=rev Author: kindlmann Date: 2012-04-03 20:19:07 +0000 (Tue, 03 Apr 2012) Log Message: ----------- weird emacs-automatically-induced white-space changes Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2012-03-30 07:30:33 UTC (rev 5222) +++ teem/trunk/src/gage/ctx.c 2012-04-03 20:19:07 UTC (rev 5223) @@ -1,5 +1,5 @@ /* - Teem: Tools to process and visualize scientific data and images + Teem: Tools to process and visualize scientific data and images Copyright (C) 2008, 2007, 2006, 2005 Gordon Kindlmann Copyright (C) 2004, 2003, 2002, 2001, 2000, 1999, 1998 University of Utah @@ -32,7 +32,7 @@ gageContextNew() { gageContext *ctx; int i; - + ctx = (gageContext*)calloc(1, sizeof(gageContext)); if (ctx) { ctx->verbose = gageDefVerbose; @@ -154,7 +154,7 @@ /* ******** gageContextNix() ** -** responsible for freeing and clearing up everything hanging off a +** responsible for freeing and clearing up everything hanging off a ** context so that things can be returned to the way they were prior ** to gageContextNew(). ** @@ -195,7 +195,7 @@ ** Does use biff. */ int -gageKernelSet(gageContext *ctx, +gageKernelSet(gageContext *ctx, int which, const NrrdKernel *k, const double *kparm) { static const char me[]="gageKernelSet"; int numParm; @@ -289,7 +289,7 @@ gageParmSet(gageContext *ctx, int which, double val) { static const char me[]="gageParmSet"; unsigned int pvlIdx; - + switch (which) { case gageParmVerbose: ctx->verbose = AIR_CAST(int, val); @@ -300,7 +300,7 @@ for (pvlIdx=0; pvlIdx<ctx->pvlNum; pvlIdx++) { ctx->pvl[pvlIdx]->verbose = AIR_CAST(int, val); if (ctx->pvl[pvlIdx]->verbose > 3) { - fprintf(stderr, "%s: ctx->pvl[%u]->verbose now %d\n", me, pvlIdx, + fprintf(stderr, "%s: ctx->pvl[%u]->verbose now %d\n", me, pvlIdx, ctx->pvl[pvlIdx]->verbose); } } @@ -335,7 +335,7 @@ break; case gageParmDefaultCenter: ctx->parm.defaultCenter = AIR_CAST(int, val); - /* no flag to set, I guess, although the value here effects the + /* no flag to set, I guess, although the value here effects the action of _gageShapeSet when called by gagePerVolumeAttach . . . */ break; case gageParmStackUse: @@ -387,7 +387,7 @@ /* ******** gagePerVolumeAttach() ** -** attaches a pervolume to a context, which actually involves +** attaches a pervolume to a context, which actually involves ** very little work */ int @@ -406,11 +406,11 @@ } if (0 == ctx->pvlNum) { - /* the volume "shape" is context state that we set now, because unlike + /* the volume "shape" is context state that we set now, because unlike everything else (handled by gageUpdate()), it does not effect the kind or amount of padding done */ if (_gageShapeSet(ctx, ctx->shape, pvl->nin, pvl->kind->baseDim)) { - biffAddf(GAGE, "%s: trouble", me); + biffAddf(GAGE, "%s: trouble", me); return 1; } ctx->flag[gageCtxFlagShape] = AIR_TRUE; @@ -420,14 +420,14 @@ should match each other */ shape = gageShapeNew(); if (_gageShapeSet(ctx, shape, pvl->nin, pvl->kind->baseDim)) { - biffAddf(GAGE, "%s: trouble", me); + biffAddf(GAGE, "%s: trouble", me); return 1; } if (!gageShapeEqual(ctx->shape, "existing context", shape, "new volume")) { biffAddf(GAGE, "%s: trouble", me); gageShapeNix(shape); return 1; } - gageShapeNix(shape); + gageShapeNix(shape); } /* here we go */ newidx = airArrayLenIncr(ctx->pvlArr, 1); @@ -496,7 +496,7 @@ gageIv3Fill(gageContext *ctx, gagePerVolume *pvl) { static const char me[]="gageIv3Fill"; int lx, ly, lz, hx, hy, hz, _xx, _yy, _zz; - unsigned int xx, yy, zz, + unsigned int xx, yy, zz, fr, cacheIdx, dataIdx, fddd; unsigned int sx, sy, sz; char *data, *here; @@ -507,7 +507,7 @@ sz = ctx->shape->size[2]; fr = ctx->radius; /* idx[0]-1: see Thu Jan 14 comment in filter.c */ - lx = ctx->point.idx[0]-1 - (fr - 1); + lx = ctx->point.idx[0]-1 - (fr - 1); ly = ctx->point.idx[1]-1 - (fr - 1); lz = ctx->point.idx[2]-1 - (fr - 1); hx = lx + 2*fr - 1; @@ -523,7 +523,7 @@ lx, ly, lz, hx, hy, hz, fddd); } data = (char*)pvl->nin->data; - if (lx >= 0 && ly >= 0 && lz >= 0 + if (lx >= 0 && ly >= 0 && lz >= 0 && hx < AIR_CAST(int, sx) && hy < AIR_CAST(int, sy) && hz < AIR_CAST(int, sz)) { @@ -578,7 +578,7 @@ default: for (cacheIdx=0; cacheIdx<fddd; cacheIdx++) { for (tup=0; tup<pvl->kind->valLen; tup++) { - pvl->iv3[cacheIdx + fddd*tup] = + pvl->iv3[cacheIdx + fddd*tup] = pvl->lup(here, tup + pvl->kind->valLen*ctx->off[cacheIdx]); } } @@ -587,7 +587,7 @@ ctx->edgeFrac = 0; } else { unsigned int edgeNum; - /* the query requires samples which don't actually lie + /* the query requires samples which don't actually lie within the volume- more care has to be taken */ cacheIdx = 0; edgeNum = 0; @@ -597,8 +597,8 @@ yy = AIR_CLAMP(0, _yy, AIR_CAST(int, sy-1)); for (_xx=lx; _xx<=hx; _xx++) { xx = AIR_CLAMP(0, _xx, AIR_CAST(int, sx-1)); - edgeNum += ((AIR_CAST(int, zz) != _zz) - || (AIR_CAST(int, yy) != _yy) + edgeNum += ((AIR_CAST(int, zz) != _zz) + || (AIR_CAST(int, yy) != _yy) || (AIR_CAST(int, xx) != _xx)); dataIdx = xx + sx*(yy + sy*zz); here = data + dataIdx*pvl->kind->valLen*nrrdTypeSize[pvl->nin->type]; @@ -657,7 +657,7 @@ as they have just been set by _gageLocationSet() */ return 1; } - + /* if necessary, refill the iv3 cache */ idxChanged = (oldIdx[0] != ctx->point.idx[0] || oldIdx[1] != ctx->point.idx[1] @@ -678,7 +678,7 @@ if (ctx->verbose > 2) { fprintf(stderr, "%s: oldIdx %u %u %u %u, point.idx %u %u %u %u --> %d\n", me, oldIdx[0], oldIdx[1], oldIdx[2], oldIdx[3], - ctx->point.idx[0], ctx->point.idx[1], + ctx->point.idx[0], ctx->point.idx[1], ctx->point.idx[2], ctx->point.idx[3], idxChanged); } if (idxChanged) { @@ -695,13 +695,13 @@ the stack recon */ if (ctx->stackFw[pvlIdx]) { if (ctx->verbose > 2) { - fprintf(stderr, "%s: stackFw[%u] == %g -> iv3fill needed\n", me, + fprintf(stderr, "%s: stackFw[%u] == %g -> iv3fill needed\n", me, pvlIdx, ctx->stackFw[pvlIdx]); } gageIv3Fill(ctx, ctx->pvl[pvlIdx]); } else { if (ctx->verbose > 2) { - fprintf(stderr, "%s: stackFw[%u] == %g -> NO iv3fill\n", me, + fprintf(stderr, "%s: stackFw[%u] == %g -> NO iv3fill\n", me, pvlIdx, ctx->stackFw[pvlIdx]); } } @@ -722,7 +722,7 @@ _gageStackBaseIv3Fill(ctx); if (ctx->verbose > 1) { fprintf(stderr, "%s: (stack) base pvl's value cache at " - "coords = %u,%u,%u:\n", me, + "coords = %u,%u,%u:\n", me, ctx->point.idx[0], ctx->point.idx[1], ctx->point.idx[2]); ctx->pvl[baseIdx]->kind->iv3Print(stderr, ctx, ctx->pvl[baseIdx]); } @@ -740,7 +740,7 @@ ctx->pvl[pvlIdx]->kind->answer(ctx, ctx->pvl[pvlIdx]); } } - + return 0; } @@ -765,7 +765,7 @@ if (ctx->verbose > 3) { fprintf(stderr, "%s: hi; pos=(%g,%g,%g,%g) in %s space %s clamping\n", me, - xx, yy, zz, ss, indexSpace ? "index" : "world", + xx, yy, zz, ss, indexSpace ? "index" : "world", clamp ? "WITH" : "w/out"); } size = ctx->shape->size; @@ -792,7 +792,7 @@ unsigned int sidx; /* HEY: this is a stupid linear search! */ if (ss < ctx->stackPos[0]) { - /* we'll extrapolate from stackPos[0] and [1]. um, actually the + /* we'll extrapolate from stackPos[0] and [1]. um, actually the extrapolation is overkill because we're either going to clamp out-of-range scale index positions, or they'll cause a gageErrStackBounds error downstream */ @@ -849,6 +849,6 @@ int gageProbeSpace(gageContext *ctx, double xx, double yy, double zz, int indexSpace, int clamp) { - + return _gageProbeSpace(ctx, xx, yy, zz, AIR_NAN, indexSpace, clamp); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2012-04-12 20:53:26
|
Revision: 5227 http://teem.svn.sourceforge.net/teem/?rev=5227&view=rev Author: kindlmann Date: 2012-04-12 20:53:19 +0000 (Thu, 12 Apr 2012) Log Message: ----------- dealing with more aliasing warnigns Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2012-04-03 20:28:59 UTC (rev 5226) +++ teem/trunk/src/gage/ctx.c 2012-04-12 20:53:19 UTC (rev 5227) @@ -23,6 +23,12 @@ #include "gage.h" #include "privateGage.h" +typedef union { + void **vd; + gagePerVolume ***pvl; +} perVolumeUnion; + + /* ******** gageContextNew() ** @@ -31,6 +37,7 @@ gageContext * gageContextNew() { gageContext *ctx; + perVolumeUnion pvu; int i; ctx = (gageContext*)calloc(1, sizeof(gageContext)); @@ -42,7 +49,8 @@ } ctx->pvl = NULL; ctx->pvlNum = 0; - ctx->pvlArr = airArrayNew(AIR_CAST(void **, &(ctx->pvl)), &(ctx->pvlNum), + pvu.pvl = &(ctx->pvl); + ctx->pvlArr = airArrayNew(pvu.vd, &(ctx->pvlNum), sizeof(gagePerVolume*), GAGE_PERVOLUME_ARR_INCR); gageKernelReset(ctx); /* placed here for logic of kernel flag */ @@ -84,6 +92,7 @@ static const char me[]="gageContextCopy"; gageContext *ntx; unsigned int fd, pvlIdx; + perVolumeUnion pvu; int ki; ntx = (gageContext*)calloc(1, sizeof(gageContext)); @@ -98,7 +107,8 @@ for (ki=gageKernelUnknown+1; ki<gageKernelLast; ki++) { ntx->ksp[ki] = nrrdKernelSpecCopy(ctx->ksp[ki]); } - ntx->pvlArr = airArrayNew(AIR_CAST(void **, &(ntx->pvl)), &(ntx->pvlNum), + pvu.pvl = &(ntx->pvl); + ntx->pvlArr = airArrayNew(pvu.vd, &(ntx->pvlNum), sizeof(gagePerVolume*), GAGE_PERVOLUME_ARR_INCR); airArrayLenSet(ntx->pvlArr, ctx->pvlNum); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2012-08-26 20:16:31
|
Revision: 5386 http://teem.svn.sourceforge.net/teem/?rev=5386&view=rev Author: kindlmann Date: 2012-08-26 20:16:25 +0000 (Sun, 26 Aug 2012) Log Message: ----------- more use of AIR_CALLOC Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2012-08-26 20:04:56 UTC (rev 5385) +++ teem/trunk/src/gage/ctx.c 2012-08-26 20:16:25 UTC (rev 5386) @@ -40,7 +40,7 @@ perVolumeUnion pvu; int ii; - ctx = (gageContext*)calloc(1, sizeof(gageContext)); + ctx = AIR_CALLOC(1, gageContext); if (ctx) { ctx->verbose = gageDefVerbose; gageParmReset(&ctx->parm); @@ -86,7 +86,7 @@ ** padding to create a private copy of the volume, the gageContext is ** light-weight enough that there is no reason that this function can't ** return an independent and fully functioning copy of the context (whereas -** before you weren't allowed to do anything but gageProbe() on the on +** before you weren't allowed to do anything but gageProbe() on the ** copied context). */ gageContext * @@ -97,7 +97,7 @@ perVolumeUnion pvu; int ki; - ntx = (gageContext*)calloc(1, sizeof(gageContext)); + ntx = AIR_CALLOC(1, gageContext); if (!ntx) { biffAddf(GAGE, "%s: couldn't make a gageContext", me); return NULL; @@ -126,9 +126,9 @@ } } if (ctx->stackPos && ctx->stackFsl && ctx->stackFw) { - ntx->stackPos = calloc(ctx->pvlNum-1, sizeof(double)); - ntx->stackFsl = calloc(ctx->pvlNum-1, sizeof(double)); - ntx->stackFw = calloc(ctx->pvlNum-1, sizeof(double)); + ntx->stackPos = AIR_CALLOC(ctx->pvlNum-1, double); + ntx->stackFsl = AIR_CALLOC(ctx->pvlNum-1, double); + ntx->stackFw = AIR_CALLOC(ctx->pvlNum-1, double); if (!( ntx->stackPos && ntx->stackFsl && ntx->stackFw )) { biffAddf(GAGE, "%s: couldn't allocate stack Pos, Fsl, Fw", me); return NULL; @@ -145,9 +145,9 @@ } ntx->shape = gageShapeCopy(ctx->shape); fd = 2*ntx->radius; - ntx->fsl = (double *)calloc(fd*3, sizeof(double)); - ntx->fw = (double *)calloc(fd*3*(GAGE_KERNEL_MAX+1), sizeof(double)); - ntx->off = (unsigned int *)calloc(fd*fd*fd, sizeof(unsigned int)); + ntx->fsl = AIR_CALLOC(fd*3, double); + ntx->fw = AIR_CALLOC(fd*3*(GAGE_KERNEL_MAX+1), double); + ntx->off = AIR_CALLOC(fd*fd*fd, unsigned int); if (!( ntx->fsl && ntx->fw && ntx->off )) { biffAddf(GAGE, "%s: couldn't allocate new filter caches for fd=%d", me, fd); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2012-08-27 01:21:19
|
Revision: 5387 http://teem.svn.sourceforge.net/teem/?rev=5387&view=rev Author: kindlmann Date: 2012-08-27 01:21:12 +0000 (Mon, 27 Aug 2012) Log Message: ----------- more /*Teem annotation Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2012-08-26 20:16:25 UTC (rev 5386) +++ teem/trunk/src/gage/ctx.c 2012-08-27 01:21:12 UTC (rev 5387) @@ -89,7 +89,7 @@ ** before you weren't allowed to do anything but gageProbe() on the ** copied context). */ -gageContext * +gageContext * /*Teem: biff if (!ret) */ gageContextCopy(gageContext *ctx) { static const char me[]="gageContextCopy"; gageContext *ntx; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2012-12-20 09:12:04
|
Revision: 5890 http://teem.svn.sourceforge.net/teem/?rev=5890&view=rev Author: kindlmann Date: 2012-12-20 09:11:57 +0000 (Thu, 20 Dec 2012) Log Message: ----------- fiddling with verbose fprintfs Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2012-12-20 09:04:47 UTC (rev 5889) +++ teem/trunk/src/gage/ctx.c 2012-12-20 09:11:57 UTC (rev 5890) @@ -531,11 +531,11 @@ hz = lz + 2*fr - 1; fddd = 2*fr*2*fr*2*fr; if (ctx->verbose > 1) { - fprintf(stderr, "%s: hello; s %u %u %u; fr %u\n", me, + fprintf(stderr, "%s: ___ hello; s %u %u %u; fr %u\n", me, sx, sy, sz, fr); - fprintf(stderr, "%s: point.idx %u %u %u\n", me, + fprintf(stderr, "%s: point.idx %u %u %u\n", me, ctx->point.idx[0], ctx->point.idx[1], ctx->point.idx[2]); - fprintf(stderr, "%s: l %d %d %d; h %d %d %d; fddd %u\n", me, + fprintf(stderr, "%s: l %d %d %d; h %d %d %d; fddd %u\n", me, lx, ly, lz, hx, hy, hz, fddd); } data = (char*)pvl->nin->data; @@ -546,18 +546,18 @@ /* all the samples we need are inside the existing volume */ dataIdx = lx + sx*(ly + sy*(lz)); if (ctx->verbose > 1) { - fprintf(stderr, "%s: hello, valLen = %d, pvl->nin = %p, data = %p\n", + fprintf(stderr, "%s: hello, valLen = %d, pvl->nin = %p, data = %p\n", me, pvl->kind->valLen, AIR_CVOIDP(pvl->nin), pvl->nin->data); } here = data + dataIdx*pvl->kind->valLen*nrrdTypeSize[pvl->nin->type]; if (ctx->verbose > 1) { - fprintf(stderr, "%s: size = (%u,%u,%u);\n" - " fd = %d; coord = (%u,%u,%u) --> dataIdx = %d\n", - me, sx, sy, sz, 2*fr, + fprintf(stderr, "%s: size = (%u,%u,%u);\n" + "%s: fd = %d; coord = (%u,%u,%u) --> dataIdx = %d\n", + me, sx, sy, sz, me, 2*fr, ctx->point.idx[0], ctx->point.idx[1], ctx->point.idx[2], dataIdx); - fprintf(stderr, "%s: here = %p; iv3 = %p; off[0,1,2,3,4,5,6,7] = " + fprintf(stderr, "%s: here = %p; iv3 = %p; off[0,1,2,3,4,5,6,7] = " "%d,%d,%d,%d,%d,%d,%d,%d\n", me, here, AIR_CAST(void*, pvl->iv3), ctx->off[0], ctx->off[1], ctx->off[2], ctx->off[3], @@ -619,15 +619,15 @@ dataIdx = xx + sx*(yy + sy*zz); here = data + dataIdx*pvl->kind->valLen*nrrdTypeSize[pvl->nin->type]; if (ctx->verbose > 2) { - fprintf(stderr, "%s: (%d,%d,%d) --clamp--> (%u,%u,%u)\n", me, + fprintf(stderr, "%s: (%d,%d,%d) --clamp--> (%u,%u,%u)\n", me, _xx, _yy, _zz, xx, yy, zz); - fprintf(stderr, " --> dataIdx = %d; data = %p -> here = %p\n", + fprintf(stderr, " --> dataIdx = %d; data = %p -> here = %p\n", dataIdx, data, here); } for (tup=0; tup<pvl->kind->valLen; tup++) { pvl->iv3[cacheIdx + fddd*tup] = pvl->lup(here, tup); if (ctx->verbose > 3) { - fprintf(stderr, "%s: iv3[%u + %u*%u=%u] = %g\n", me, + fprintf(stderr, "%s: iv3[%u + %u*%u=%u] = %g\n", me, cacheIdx, fddd, tup, cacheIdx + fddd*tup, pvl->iv3[cacheIdx + fddd*tup]); } @@ -639,7 +639,7 @@ ctx->edgeFrac = AIR_CAST(double, edgeNum)/fddd; } if (ctx->verbose > 1) { - fprintf(stderr, "%s: bye\n", me); + fprintf(stderr, "%s: ^^^ bye\n", me); } return; } @@ -666,6 +666,10 @@ if (!ctx) { return 1; } + if (ctx->verbose > 3) { + fprintf(stderr, "%s: hello(%g,%g,%g,%g) _____________ \n", me, + _xi, _yi, _zi, _si); + } ELL_4V_COPY(oldIdx, ctx->point.idx); oldNnz = ctx->point.stackFwNonZeroNum; if (_gageLocationSet(ctx, _xi, _yi, _zi, _si)) { @@ -691,7 +695,7 @@ point.idx[3] AND changes in stackFwNonZeroNum */ idxChanged |= oldNnz != ctx->point.stackFwNonZeroNum; } - if (ctx->verbose > 2) { + if (ctx->verbose > 3) { fprintf(stderr, "%s: oldIdx %u %u %u %u, point.idx %u %u %u %u --> %d\n", me, oldIdx[0], oldIdx[1], oldIdx[2], oldIdx[3], ctx->point.idx[0], ctx->point.idx[1], @@ -700,6 +704,10 @@ if (idxChanged) { if (!ctx->parm.stackUse) { for (pvlIdx=0; pvlIdx<ctx->pvlNum; pvlIdx++) { + if (ctx->verbose > 3) { + fprintf(stderr, "%s: gageIv3Fill(pvl[%u/%u] %s): .......\n", me, + pvlIdx, ctx->pvlNum, ctx->pvl[pvlIdx]->kind->name); + } gageIv3Fill(ctx, ctx->pvl[pvlIdx]); } } else { @@ -710,13 +718,13 @@ scale, instead of refilling all of them in the support of the stack recon */ if (ctx->stackFw[pvlIdx]) { - if (ctx->verbose > 2) { + if (ctx->verbose > 3) { fprintf(stderr, "%s: stackFw[%u] == %g -> iv3fill needed\n", me, pvlIdx, ctx->stackFw[pvlIdx]); } gageIv3Fill(ctx, ctx->pvl[pvlIdx]); } else { - if (ctx->verbose > 2) { + if (ctx->verbose > 3) { fprintf(stderr, "%s: stackFw[%u] == %g -> NO iv3fill\n", me, pvlIdx, ctx->stackFw[pvlIdx]); } @@ -727,7 +735,7 @@ if (ctx->parm.stackUse) { unsigned int baseIdx, vi; baseIdx = ctx->pvlNum - 1; - if (ctx->verbose > 2) { + if (ctx->verbose > 3) { for (vi=0; vi<baseIdx; vi++) { fprintf(stderr, "%s: (stack) pvl[%u]'s value cache at " "coords = %u,%u,%u:\n", me, vi, @@ -736,7 +744,7 @@ } } _gageStackBaseIv3Fill(ctx); - if (ctx->verbose > 1) { + if (ctx->verbose > 3) { fprintf(stderr, "%s: (stack) base pvl's value cache at " "coords = %u,%u,%u:\n", me, ctx->point.idx[0], ctx->point.idx[1], ctx->point.idx[2]); @@ -746,9 +754,10 @@ ctx->pvl[baseIdx]->kind->answer(ctx, ctx->pvl[baseIdx]); } else { for (pvlIdx=0; pvlIdx<ctx->pvlNum; pvlIdx++) { - if (ctx->verbose > 1) { - fprintf(stderr, "%s: pvl[%u]'s value cache at " - "coords = %u,%u,%u:\n", me, pvlIdx, + if (ctx->verbose > 3) { + fprintf(stderr, "%s: pvl[%u/%u %s]'s value cache at " + "coords = %u,%u,%u:\n", me, pvlIdx, ctx->pvlNum, + ctx->pvl[pvlIdx]->kind->name, ctx->point.idx[0], ctx->point.idx[1], ctx->point.idx[2]); ctx->pvl[pvlIdx]->kind->iv3Print(stderr, ctx, ctx->pvl[pvlIdx]); } @@ -757,6 +766,9 @@ } } + if (ctx->verbose > 3) { + fprintf(stderr, "%s: bye ^^^^^^^^^^^^^ \n\n", me); + } return 0; } @@ -794,6 +806,10 @@ } else { si = 0; } + if (ctx->verbose > 3) { + fprintf(stderr, "%s: staying at ipos (%g,%g,%g)\n", me, + xi, yi, zi); + } } else { /* have to convert from world to index. NOTE: the [4]s here are for homogeneous coordinates, not for anything stack-related */ @@ -844,10 +860,10 @@ } else { si = 0; } - /* - fprintf(stderr, "%s: wpos (%g,%g,%g) --> ipos (%g,%g,%g)\n", me, - xx, yy, zz, xi, yi, zi); - */ + if (ctx->verbose > 3) { + fprintf(stderr, "%s: wpos (%g,%g,%g) --> ipos (%g,%g,%g)\n", me, + xx, yy, zz, xi, yi, zi); + } } if (clamp) { if (nrrdCenterNode == ctx->shape->center) { @@ -862,6 +878,10 @@ if (ctx->parm.stackUse) { si = AIR_CLAMP(0, si, ctx->pvlNum-2); } + if (ctx->verbose > 3) { + fprintf(stderr, "%s: with clamping --> ipos (%g,%g,%g)\n", me, + xi, yi, zi); + } } return _gageProbe(ctx, xi, yi, zi, si); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <kin...@us...> - 2016-05-25 18:00:52
|
Revision: 6282 http://sourceforge.net/p/teem/code/6282 Author: kindlmann Date: 2016-05-25 18:00:50 +0000 (Wed, 25 May 2016) Log Message: ----------- trying to be more useful in reporting edgeFrac in case of 1D and 2D arrays Modified Paths: -------------- teem/trunk/src/gage/ctx.c Modified: teem/trunk/src/gage/ctx.c =================================================================== --- teem/trunk/src/gage/ctx.c 2016-05-25 17:59:25 UTC (rev 6281) +++ teem/trunk/src/gage/ctx.c 2016-05-25 18:00:50 UTC (rev 6282) @@ -622,7 +622,7 @@ yy = AIR_CLAMP(0, _yy, AIR_CAST(int, sy-1)); for (_xx=lx; _xx<=hx; _xx++) { xx = AIR_CLAMP(0, _xx, AIR_CAST(int, sx-1)); - edgeNum += ((AIR_CAST(int, yy) != _yy) + edgeNum += ((1 != sy && (AIR_CAST(int, yy) != _yy)) || (AIR_CAST(int, xx) != _xx)); dataIdx = xx + sx*yy; here = data+dataIdx*dataStride; @@ -646,9 +646,12 @@ } } } - /* we would have been outside for all the other - z slices besides z=0 */ - edgeNum += (2*fr - 1)*2*fr*2*fr; + /* we would have been outside for all the other z slices besides + z=0, but don't report this if the whole point is to pretend + that we're working with 2D data */ + if (!(ctx->parm.twoDimZeroZ)) { + edgeNum += (2*fr - 1)*2*fr*2*fr; + } } else { /* sz > 1 */ for (_zz=lz; _zz<=hz; _zz++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |