|
From: <kin...@us...> - 2004-02-19 11:24:31
|
Update of /cvsroot/teem/teem/src/ten In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32668 Modified Files: enumsTen.c ten.h tenGage.c Log Message: added some parent items Index: enumsTen.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/enumsTen.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** enumsTen.c 13 Feb 2004 23:00:08 -0000 1.14 --- enumsTen.c 19 Feb 2004 11:14:09 -0000 1.15 *************** *** 67,73 **** --- 67,75 ---- "trace", "frob", + "eigenvalues", "eigenvalue0", "eigenvalue1", "eigenvalue2", + "eigenvectors", "eigenvector0", "eigenvector1", *************** *** 91,97 **** --- 93,101 ---- "tensor trace", "frob(tensor)", + "3 tensor eigenvalues", "tensor eigenvalue 0", "tensor eigenvalue 1", "tensor eigenvalue 2", + "3 tensor eigenvectors", "tensor eigenvector 0", "tensor eigenvector 1", *************** *** 115,121 **** --- 119,127 ---- tenGageTrace, tenGageFrobTensor, + tenGageEval, tenGageEval0, tenGageEval1, tenGageEval2, + tenGageEvec, tenGageEvec0, tenGageEvec1, *************** *** 136,142 **** --- 142,150 ---- #define TG_TR tenGageTrace #define TG_FT tenGageFrobTensor + #define TG_AL tenGageEval #define TG_AL0 tenGageEval0 #define TG_AL1 tenGageEval1 #define TG_AL2 tenGageEval2 + #define TG_EC tenGageEvec #define TG_EC0 tenGageEvec0 #define TG_EC1 tenGageEvec1 *************** *** 158,164 **** --- 166,174 ---- "tr", "trace", "frt", "fro", "frob", "frobt", + "eval", "eigenvalue", "eval0", "eigenvalue0", "eval1", "eigenvalue1", "eval2", "eigenvalue2", + "evec", "eigenvector", "evec0", "eigenvector0", "evec1", "eigenvector1", *************** *** 182,188 **** --- 192,200 ---- TG_TR, TG_TR, TG_FT, TG_FT, TG_FT, TG_FT, + TG_AL, TG_AL, TG_AL0, TG_AL0, TG_AL1, TG_AL1, TG_AL2, TG_AL2, + TG_EC, TG_EC, TG_EC0, TG_EC0, TG_EC1, TG_EC1, Index: ten.h =================================================================== RCS file: /cvsroot/teem/teem/src/ten/ten.h,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -d -r1.72 -r1.73 *** ten.h 19 Feb 2004 03:44:06 -0000 1.72 --- ten.h 19 Feb 2004 11:14:09 -0000 1.73 *************** *** 145,175 **** tenGageUnknown = -1, /* -1: nobody knows */ tenGageTensor, /* 0: "t", the reconstructed tensor: GT[7] */ ! tenGageTrace, /* 1: "tr", trace of tensor: *GT */ ! tenGageFrobTensor, /* 2: "fro", frobenius norm of tensor: *GT */ ! tenGageEval0, /* 3: "eval0", major eigenvalue of tensor : *GT */ ! tenGageEval1, /* 4: "eval1", medium eigenvalue of tensor : *GT */ ! tenGageEval2, /* 5: "eval2", minor eigenvalue of tensor : *GT */ ! tenGageEvec0, /* 6: "evec0", major eigenvectors of tensor: GT[3] */ ! tenGageEvec1, /* 7: "evec1", medium eigenvectors of tensor: GT[3] */ ! tenGageEvec2, /* 8: "evec2", minor eigenvectors of tensor: GT[3] */ ! tenGageTensorGrad, /* 9: "tg", all tensor component gradients, starting with the confidence value gradient: GT[21] */ ! tenGageQ, /* 10: "q", Q anisotropy (or 9 times it): *GT */ ! tenGageQGradVec, /* 11: "qv", gradient of Q anisotropy: GT[3] */ ! tenGageQGradMag, /* 12: "qg", grad mag of Q anisotropy: *GT */ ! tenGageQNormal, /* 13: "qn", normalized gradient of Q ! anisotropy: GT[3] */ ! tenGageMultiGrad, /* 14: "mg", sum of outer products of gradients of tensor elements, correctly counting the off-diagonal entries twice, but not counting the confidence value: GT[9] */ ! tenGageFrobMG, /* 15: "frmg", frobenius norm of multi gradient: *GT */ ! tenGageMGEval, /* 16: "mgeval", eigenvalues of multi gradient: GT[3]*/ ! tenGageMGEvec, /* 17: "mgevec", eigenvectors of multi gradient: GT[9] */ ! tenGageAniso, /* 18: "an", all anisotropies: GT[TEN_ANISO_MAX+1] */ tenGageLast }; ! #define TEN_GAGE_ITEM_MAX 18 /* --- 145,176 ---- tenGageUnknown = -1, /* -1: nobody knows */ tenGageTensor, /* 0: "t", the reconstructed tensor: GT[7] */ ! tenGageTrace, /* 1: "tr", trace of tensor: GT[1] */ ! tenGageFrobTensor, /* 2: "fro", frobenius norm of tensor: GT[1] */ ! tenGageEval, /* 3: "eval", all eigenvalues of tensor : GT[3] */ ! tenGageEval0, /* 4: "eval0", major eigenvalue of tensor : GT[1] */ ! tenGageEval1, /* 5: "eval1", medium eigenvalue of tensor : GT[1] */ ! tenGageEval2, /* 6: "eval2", minor eigenvalue of tensor : GT[1] */ ! tenGageEvec, /* 7: "evec", major eigenvectors of tensor: GT[9] */ ! tenGageEvec0, /* 8: "evec0", major eigenvectors of tensor: GT[3] */ ! tenGageEvec1, /* 9: "evec1", medium eigenvectors of tensor: GT[3] */ ! tenGageEvec2, /* 10: "evec2", minor eigenvectors of tensor: GT[3] */ ! tenGageTensorGrad, /* 11: "tg", all tensor component gradients, starting with the confidence value gradient: GT[21] */ ! tenGageQ, /* 12: "q", Q anisotropy (or 9 times it): GT[1] */ ! tenGageQGradVec, /* 13: "qv", gradient vector of Q: GT[3] */ ! tenGageQGradMag, /* 14: "qg", gradient magnitude of Q: GT[1] */ ! tenGageQNormal, /* 15: "qn", normalized gradient of Q GT[3] */ ! tenGageMultiGrad, /* 16: "mg", sum of outer products of gradients of tensor elements, correctly counting the off-diagonal entries twice, but not counting the confidence value: GT[9] */ ! tenGageFrobMG, /* 17: "frmg", frob. norm of multi gradient: GT[1] */ ! tenGageMGEval, /* 18: "mgeval", eigenvalues of multi gradient: GT[3]*/ ! tenGageMGEvec, /* 19: "mgevec", eigenvectors of multi gradient: GT[9] */ ! tenGageAniso, /* 20: "an", all anisotropies: GT[TEN_ANISO_MAX+1] */ tenGageLast }; ! #define TEN_GAGE_ITEM_MAX 20 /* Index: tenGage.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/tenGage.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tenGage.c 13 Feb 2004 23:16:04 -0000 1.12 --- tenGage.c 19 Feb 2004 11:14:09 -0000 1.13 *************** *** 23,37 **** gageItemEntry ! _tenGageTable[GAGE_SCL_ITEM_MAX+1] = { /* enum value len,deriv, prereqs, parent item, index*/ {tenGageTensor, 7, 0, {-1, -1, -1, -1, -1}, -1, -1}, {tenGageTrace, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, {tenGageFrobTensor, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEval0, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEval1, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEval2, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEvec0, 3, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEvec1, 3, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEvec2, 3, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, {tenGageTensorGrad, 21, 1, {-1, -1, -1, -1, -1}, -1, -1}, {tenGageQ, 1, 0, {-1, -1, -1, -1, -1}, -1, -1}, --- 23,39 ---- gageItemEntry ! _tenGageTable[TEN_GAGE_ITEM_MAX+1] = { /* enum value len,deriv, prereqs, parent item, index*/ {tenGageTensor, 7, 0, {-1, -1, -1, -1, -1}, -1, -1}, {tenGageTrace, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, {tenGageFrobTensor, 1, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEval, 3, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEval0, 1, 0, {tenGageEval, -1, -1, -1, -1}, tenGageEval, 0}, ! {tenGageEval1, 1, 0, {tenGageEval, -1, -1, -1, -1}, tenGageEval, 1}, ! {tenGageEval2, 1, 0, {tenGageEval, -1, -1, -1, -1}, tenGageEval, 2}, ! {tenGageEvec, 9, 0, {tenGageTensor, -1, -1, -1, -1}, -1, -1}, ! {tenGageEvec0, 3, 0, {tenGageEvec, -1, -1, -1, -1}, tenGageEvec, 0}, ! {tenGageEvec1, 3, 0, {tenGageEvec, -1, -1, -1, -1}, tenGageEvec, 3}, ! {tenGageEvec2, 3, 0, {tenGageEvec, -1, -1, -1, -1}, tenGageEvec, 6}, {tenGageTensorGrad, 21, 1, {-1, -1, -1, -1, -1}, -1, -1}, {tenGageQ, 1, 0, {-1, -1, -1, -1, -1}, -1, -1}, *************** *** 109,113 **** gage_t *tenAns, *tgradAns, *QgradAns, *evalAns, *evecAns, tmptmp=0, dtA=0, dtB=0, dtC=0, dtD=0, dtE=0, dtF=0, cbA, cbB; - int wantEvals, wantEvecs; #if !GAGE_TYPE_FLOAT --- 111,114 ---- *************** *** 119,124 **** tgradAns = pvl->directAnswer[tenGageTensorGrad]; QgradAns = pvl->directAnswer[tenGageQGradVec]; ! evalAns = pvl->directAnswer[tenGageEval0]; ! evecAns = pvl->directAnswer[tenGageEvec0]; if (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageTensor)) { /* done if doV */ --- 120,125 ---- tgradAns = pvl->directAnswer[tenGageTensorGrad]; QgradAns = pvl->directAnswer[tenGageQGradVec]; ! evalAns = pvl->directAnswer[tenGageEval]; ! evecAns = pvl->directAnswer[tenGageEvec]; if (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageTensor)) { /* done if doV */ *************** *** 142,152 **** + 2*dtE*dtE + dtF*dtF); } ! wantEvals = ((GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEval0)) || ! (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEval1)) || ! (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEval2))); ! wantEvecs = ((GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEvec0)) || ! (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEvec1)) || ! (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEvec2))); ! if (wantEvecs) { /* we do the longer process to get eigenvectors, and in the process we always find the eigenvalues, whether or not they were asked for */ --- 143,147 ---- + 2*dtE*dtE + dtF*dtF); } ! if (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEvec)) { /* we do the longer process to get eigenvectors, and in the process we always find the eigenvalues, whether or not they were asked for */ *************** *** 159,163 **** ELL_3M_COPY(evecAns, evecAnsF); #endif ! } else if (wantEvals) { /* else eigenvectors are NOT needed, but eigenvalues ARE needed */ #if GAGE_TYPE_FLOAT --- 154,158 ---- ELL_3M_COPY(evecAns, evecAnsF); #endif ! } else if (GAGE_QUERY_ITEM_TEST(pvl->query, tenGageEval)) { /* else eigenvectors are NOT needed, but eigenvalues ARE needed */ #if GAGE_TYPE_FLOAT |