|
From: <kin...@us...> - 2004-02-28 17:11:30
|
Update of /cvsroot/teem/teem/src/gage In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14156 Modified Files: gage.h scl.c sclanswer.c Log Message: added frobenious norm of hessian ("hf") to gageSclKind Index: gage.h =================================================================== RCS file: /cvsroot/teem/teem/src/gage/gage.h,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** gage.h 26 Feb 2004 06:19:28 -0000 1.61 --- gage.h 28 Feb 2004 17:01:53 -0000 1.62 *************** *** 242,269 **** gageSclHessian, /* 5: "h", Hessian: GT[9] (column-order) */ gageSclLaplacian, /* 6: "l", Laplacian: Dxx + Dyy + Dzz: GT[1] */ ! gageSclHessEval, /* 7: "heval", Hessian's eigenvalues: GT[3] */ ! gageSclHessEval0, /* 8: "heval0", Hessian's 1st eigenvalue: GT[1] */ ! gageSclHessEval1, /* 9: "heval1", Hessian's 2nd eigenvalue: GT[1] */ ! gageSclHessEval2, /* 10: "heval2", Hessian's 3rd eigenvalue: GT[1] */ ! gageSclHessEvec, /* 11: "hevec", Hessian's eigenvectors: GT[9] */ ! gageSclHessEvec0, /* 12: "hevec0", Hessian's 1st eigenvector: GT[3] */ ! gageSclHessEvec1, /* 13: "hevec1", Hessian's 2nd eigenvector: GT[3] */ ! gageSclHessEvec2, /* 14: "hevec2", Hessian's 3rd eigenvector: GT[3] */ ! gageScl2ndDD, /* 15: "2d", 2nd dir.deriv. along gradient: GT[1] */ ! gageSclGeomTens, /* 16: "gten", sym. matx w/ evals {0, K1, K2} and evecs {grad, cdir0, cdir1}: GT[9] */ ! gageSclK1, /* 17: "k1", 1st principle curvature: GT[1] */ ! gageSclK2, /* 18: "k2", 2nd principle curvature (k2 <= k1): GT[1] */ ! gageSclTotalCurv, /* 19: "tc", L2 norm(K1,K2) (not Koen.'s "C"): GT[1] */ ! gageSclShapeTrace, /* 20, "st", (K1+K2)/Curvedness: GT[1] */ ! gageSclShapeIndex, /* 21: "si", Koen.'s shape index, ("S"): GT[1] */ ! gageSclMeanCurv, /* 22: "mc", mean curvature (K1 + K2)/2: GT[1] */ ! gageSclGaussCurv, /* 23: "gc", gaussian curvature K1*K2: GT[1] */ ! gageSclCurvDir1, /* 24: "cdir1", 1st principle curv direction: GT[3] */ ! gageSclCurvDir2, /* 25: "cdir2", 2nd principle curv direction: GT[3] */ ! gageSclFlowlineCurv,/* 26: "fc", curvature of normal streamline: GT[1] */ gageSclLast }; ! #define GAGE_SCL_ITEM_MAX 26 /* --- 242,270 ---- gageSclHessian, /* 5: "h", Hessian: GT[9] (column-order) */ gageSclLaplacian, /* 6: "l", Laplacian: Dxx + Dyy + Dzz: GT[1] */ ! gageSclHessFrob, /* 7: "hf", Frobenius normal of Hessian: GT[1] */ ! gageSclHessEval, /* 8: "heval", Hessian's eigenvalues: GT[3] */ ! gageSclHessEval0, /* 9: "heval0", Hessian's 1st eigenvalue: GT[1] */ ! gageSclHessEval1, /* 10: "heval1", Hessian's 2nd eigenvalue: GT[1] */ ! gageSclHessEval2, /* 11: "heval2", Hessian's 3rd eigenvalue: GT[1] */ ! gageSclHessEvec, /* 12: "hevec", Hessian's eigenvectors: GT[9] */ ! gageSclHessEvec0, /* 13: "hevec0", Hessian's 1st eigenvector: GT[3] */ ! gageSclHessEvec1, /* 14: "hevec1", Hessian's 2nd eigenvector: GT[3] */ ! gageSclHessEvec2, /* 15: "hevec2", Hessian's 3rd eigenvector: GT[3] */ ! gageScl2ndDD, /* 16: "2d", 2nd dir.deriv. along gradient: GT[1] */ ! gageSclGeomTens, /* 17: "gten", sym. matx w/ evals {0, K1, K2} and evecs {grad, cdir0, cdir1}: GT[9] */ ! gageSclK1, /* 18: "k1", 1st principle curvature: GT[1] */ ! gageSclK2, /* 19: "k2", 2nd principle curvature (k2 <= k1): GT[1] */ ! gageSclTotalCurv, /* 20: "tc", L2 norm(K1,K2) (not Koen.'s "C"): GT[1] */ ! gageSclShapeTrace, /* 21, "st", (K1+K2)/Curvedness: GT[1] */ ! gageSclShapeIndex, /* 22: "si", Koen.'s shape index, ("S"): GT[1] */ ! gageSclMeanCurv, /* 23: "mc", mean curvature (K1 + K2)/2: GT[1] */ ! gageSclGaussCurv, /* 24: "gc", gaussian curvature K1*K2: GT[1] */ ! gageSclCurvDir1, /* 25: "cdir1", 1st principle curv direction: GT[3] */ ! gageSclCurvDir2, /* 26: "cdir2", 2nd principle curv direction: GT[3] */ ! gageSclFlowlineCurv,/* 27: "fc", curvature of normal streamline: GT[1] */ gageSclLast }; ! #define GAGE_SCL_ITEM_MAX 27 /* Index: scl.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/scl.c,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** scl.c 28 Feb 2004 15:24:01 -0000 1.35 --- scl.c 28 Feb 2004 17:01:53 -0000 1.36 *************** *** 42,45 **** --- 42,46 ---- {gageSclHessian, 9, 2, {gageSclHessian, -1, -1, -1, -1}, -1, -1}, {gageSclLaplacian, 1, 2, {gageSclHessian, -1, -1, -1, -1}, -1, -1}, + {gageSclHessFrob, 1, 2, {gageSclHessian, -1, -1, -1, -1}, -1, -1}, {gageSclHessEval, 3, 2, {gageSclHessian, -1, -1, -1, -1}, -1, -1}, {gageSclHessEval0, 1, 2, {gageSclHessEval, -1, -1, -1, -1}, gageSclHessEval, 0}, *************** *** 74,77 **** --- 75,79 ---- "Hessian", "Laplacian", + "Frob(Hessian)", "Hessian eigenvalues", "Hessian eigenvalue[0]", *************** *** 106,109 **** --- 108,112 ---- "3x3 Hessian matrix", "Laplacian", + "Frobenius norm of Hessian", "Hessian's eigenvalues", "Hessian's 1st eigenvalue", *************** *** 138,141 **** --- 141,145 ---- gageSclHessian, gageSclLaplacian, + gageSclHessFrob, gageSclHessEval, gageSclHessEval0, *************** *** 167,170 **** --- 171,175 ---- #define GS_H gageSclHessian #define GS_L gageSclLaplacian + #define GS_HF gageSclHessFrob #define GS_HA gageSclHessEval #define GS_HA0 gageSclHessEval0 *************** *** 198,201 **** --- 203,207 ---- "h", "hess", "hessian", "l", "lapl", "laplacian", + "hf", "heval", "h eval", "hessian eval", "hessian eigenvalues", "heval0", *************** *** 230,233 **** --- 236,240 ---- GS_H, GS_H, GS_H, GS_L, GS_L, GS_L, + GS_HF, GS_HA, GS_HA, GS_HA, GS_HA, GS_HA0, Index: sclanswer.c =================================================================== RCS file: /cvsroot/teem/teem/src/gage/sclanswer.c,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** sclanswer.c 19 Feb 2004 06:45:12 -0000 1.18 --- sclanswer.c 28 Feb 2004 17:01:53 -0000 1.19 *************** *** 95,98 **** --- 95,101 ---- } } + if (GAGE_QUERY_ITEM_TEST(pvl->query, gageSclHessFrob)) { + pvl->directAnswer[gageSclHessFrob][0] = ELL_3M_FROB(hess); + } if (GAGE_QUERY_ITEM_TEST(pvl->query, gageSclHessEval)) { ELL_3M_COPY(tmpMat, hess); |