2900             const T cosphi = 0.5 * (
R(1, 1) + 
R(2, 2) + 
R(3, 3) - 1.);
 
 2903                 unit(1) = 0.5*(
R(3, 2) - 
R(2, 3));
 
 2904                 unit(2) = 0.5*(
R(1, 3) - 
R(3, 1));
 
 2905                 unit(3) = 0.5*(
R(2, 1) - 
R(1, 2));
 
 2907                 const T sinphi2 = 
Dot(unit, unit);
 
 2911                     sinphi = 
sqrt(sinphi2);
 
 2916                 const T phi = 
atan2(sinphi, cosphi);
 
 2923                 eet(1, 1) -= cosphi;
 
 2924                 eet(2, 2) -= cosphi;
 
 2925                 eet(3, 3) -= cosphi;
 
 2928                 if (eet(2, 2) > eet(1, 1)) {
 
 2931                 if (eet(3, 3) > eet(maxcol, maxcol)) {
 
 2934                 unit = (eet.GetCol(maxcol)/
sqrt(eet(maxcol, maxcol)*(1. - cosphi)));
 
 2937                     sinphi -= 
Cross(unit, 
R.GetCol(i))(i) * 0.5;
 
 2940                 unit *= 
atan2(sinphi, cosphi);
 
MatrixExpression< TransposedMatrix< MatrixDirectExpr< Matrix< T, N_rows, N_cols > > >, N_cols, N_rows > Transpose(const Matrix< T, N_rows, N_cols > &A)
const MatrixExpression< MatrixExpr, 3, 3 > R
static void RotCo(const T &phi, T &cf)
DotTraits< VectorExprLhs, VectorExprRhs, N_rows, N_rows >::ExpressionType Dot(const VectorExpression< VectorExprLhs, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
GradientExpression< UnaryExpr< FuncSqrt, Expr > > sqrt(const GradientExpression< Expr > &u)
VectorExpression< VectorCrossExpr< VectorLhsExpr, VectorRhsExpr >, 3 > Cross(const VectorExpression< VectorLhsExpr, 3 > &u, const VectorExpression< VectorRhsExpr, 3 > &v)
static const doublereal a
GradientExpression< BinaryExpr< FuncAtan2, LhsExpr, RhsExpr > > atan2(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)