|
From: <kin...@us...> - 2004-03-01 22:10:21
|
Update of /cvsroot/teem/teem/src/ten In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19188/ten Modified Files: glyph.c tensor.c Log Message: bug fixes relating to switch from column-major to row-major Index: glyph.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/glyph.c,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** glyph.c 27 Feb 2004 06:08:35 -0000 1.35 --- glyph.c 1 Mar 2004 21:59:03 -0000 1.36 *************** *** 165,169 **** airArray *mop; double pI[3], pW[3]; ! float cl, cp, *tdata, evec[9], eval[3], *cvec, aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16], R, G, B, qA, qB, glyphAniso, sliceGray; --- 165,169 ---- airArray *mop; double pI[3], pW[3]; ! float cl, cp, *tdata, evec[9], rotEvec[9], eval[3], *cvec, aniso[TEN_ANISO_MAX+1], sRot[16], mA[16], mB[16], R, G, B, qA, qB, glyphAniso, sliceGray; *************** *** 265,268 **** --- 265,269 ---- } tenEigensolve(eval, evec, tdata); + ELL_3M_TRANSPOSE(rotEvec, evec); tenAnisoCalc(aniso, eval); if (parm->doSlice *************** *** 355,359 **** ELL_4M_SCALE_SET(mB, eval[0], eval[1], eval[2]); ell_4m_post_mul_f(mA, mB); ! ELL_43M_INSET(mB, evec); /* rotate by evecs */ ell_4m_post_mul_f(mA, mB); ELL_4M_TRANSLATE_SET(mB, pW[0], pW[1], pW[2]); /* translate */ --- 356,360 ---- ELL_4M_SCALE_SET(mB, eval[0], eval[1], eval[2]); ell_4m_post_mul_f(mA, mB); ! ELL_43M_INSET(mB, rotEvec); /* rotate by evecs */ ell_4m_post_mul_f(mA, mB); ELL_4M_TRANSLATE_SET(mB, pW[0], pW[1], pW[2]); /* translate */ Index: tensor.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/tensor.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** tensor.c 23 Feb 2004 02:40:24 -0000 1.27 --- tensor.c 1 Mar 2004 21:59:03 -0000 1.28 *************** *** 186,189 **** --- 186,194 ---- ** return is same as ell_3m_eigensolve_d, which is same as ell_cubic ** + ** NOTE: Even in the post-teem-1.7 switch from column-major to + ** row-major- its still the case that the eigenvectors are at + ** evec+0, evec+3, evec+6: this means that they USED to be the + ** "columns" of the matrix, and NOW they're the rows. + ** ** This does NOT use biff */ *************** *** 290,295 **** ELL_3M_DIAG_SET(diag, eval[0], eval[1], eval[2]); ELL_3M_TRANSPOSE(evecT, evec); ! ELL_3M_MUL(tmpMat1, diag, evecT); ! ELL_3M_MUL(tmpMat2, evec, tmpMat1); ten[0] = conf; TEN_MAT2LIST(ten, tmpMat2); --- 295,300 ---- ELL_3M_DIAG_SET(diag, eval[0], eval[1], eval[2]); ELL_3M_TRANSPOSE(evecT, evec); ! ELL_3M_MUL(tmpMat1, diag, evec); ! ELL_3M_MUL(tmpMat2, evecT, tmpMat1); ten[0] = conf; TEN_MAT2LIST(ten, tmpMat2); |