//求hession矩阵的特征值和特征向量
void CmCurveEx::compute_eigenvals(double dfdrr, double dfdrc, double dfdcc, double eigval[2], double eigvec[2][2])
{
double theta, t, c, s, e1, e2, n1, n2; /* , phi; */
/* Compute the eigenvalues and eigenvectors of the Hessian matrix. */
if (dfdrc != 0.0) {
theta = 0.5*(dfdcc-dfdrr)/dfdrc;
t = 1.0/(fabs(theta)+sqrt(theta*theta+1.0));
if (theta < 0.0) t = -t;
c = 1.0/sqrt(t*t+1.0);
s = t*c;
e1 = dfdrr-t*dfdrc;
e2 = dfdcc+t*dfdrc;
void CmCurveEx::compute_eigenvals(double dfdrr, double dfdrc, double dfdcc, double eigval[2], double eigvec[2][2])
{
double theta, t, c, s, e1, e2, n1, n2; /* , phi; */
/* Compute the eigenvalues and eigenvectors of the Hessian matrix. */
if (dfdrc != 0.0) {
theta = 0.5*(dfdcc-dfdrr)/dfdrc;
t = 1.0/(fabs(theta)+sqrt(theta*theta+1.0));
if (theta < 0.0) t = -t;
c = 1.0/sqrt(t*t+1.0);
s = t*c;
e1 = dfdrr-t*dfdrc;
e2 = dfdcc+t*dfdrc;