Skip to content
Snippets Groups Projects
Commit 7a707489 authored by Lorenzo Moneta's avatar Lorenzo Moneta
Browse files

fix bug 15126. Make correct product A.Transpose() * A

git-svn-id: http://root.cern.ch/svn/root/trunk@14112 27541ba8-7e3a-0410-8455-c3a389f83636
parent 53469726
No related branches found
No related tags found
No related merge requests found
// @(#)root/mathcore:$Name: $:$Id: LinkDef_Rotation.h,v 1.2 2005/12/01 17:17:54 moneta Exp $
// @(#)root/mathcore:$Name: $:$Id: LinkDef_Rotation.h,v 1.3 2005/12/05 10:33:32 moneta Exp $
// Authors: W. Brown, M. Fischler, L. Moneta 2005
// rotation functions
// rot 3D
#pragma link C++ function ROOT::Math::Rotation3D::Rotation3D (double *, double*);
#pragma link C++ function ROOT::Math::Rotation3D::Rotation3D (ROOT::Math::XYZVector &, ROOT::Math::XYZVector &,ROOT::Math::XYZVector &);
#pragma link C++ function ROOT::Math::Rotation3D::SetComponents (ROOT::Math::XYZVector &, ROOT::Math::XYZVector &,ROOT::Math::XYZVector &);
#pragma link C++ function ROOT::Math::Rotation3D::SetComponents (double *, double *);
#pragma link C++ function ROOT::Math::Rotation3D::GetComponents (double *, double *);
#pragma link C++ function ROOT::Math::Rotation3D::operator() (const ROOT::Math::XYZTVector &);
......
// @(#)root/mathcore:$Name: $:$Id: Rotation3D.cxx,v 1.4 2005/11/09 13:56:00 moneta Exp $
// @(#)root/mathcore:$Name: $:$Id: Rotation3D.cxx,v 1.5 2006/02/26 15:23:32 moneta Exp $
// Authors: W. Brown, M. Fischler, L. Moneta 2005
/**********************************************************************
......@@ -44,12 +44,12 @@ Rotation3D::Rectify()
// Step 1 -- form symmetric M = A.transpose * A
double M11 = fM[XX]*fM[XX] + fM[XY]*fM[YX] + fM[XZ]*fM[ZX];
double M12 = fM[XX]*fM[XY] + fM[XY]*fM[YY] + fM[XZ]*fM[ZY];
double M13 = fM[XX]*fM[XZ] + fM[XY]*fM[YZ] + fM[XZ]*fM[ZZ];
double M22 = fM[YX]*fM[XY] + fM[YY]*fM[YY] + fM[YZ]*fM[ZY];
double M23 = fM[YX]*fM[XZ] + fM[YY]*fM[YZ] + fM[YZ]*fM[ZZ];
double M33 = fM[ZX]*fM[XZ] + fM[ZY]*fM[YZ] + fM[ZZ]*fM[ZZ];
double M11 = fM[XX]*fM[XX] + fM[YX]*fM[YX] + fM[ZX]*fM[ZX];
double M12 = fM[XX]*fM[XY] + fM[YX]*fM[YY] + fM[ZX]*fM[ZY];
double M13 = fM[XX]*fM[XZ] + fM[YX]*fM[YZ] + fM[ZX]*fM[ZZ];
double M22 = fM[XY]*fM[XY] + fM[YY]*fM[YY] + fM[ZY]*fM[ZY];
double M23 = fM[XY]*fM[XZ] + fM[YY]*fM[YZ] + fM[ZY]*fM[ZZ];
double M33 = fM[XZ]*fM[XZ] + fM[YZ]*fM[YZ] + fM[ZZ]*fM[ZZ];
// Step 2 -- find lower-triangular L such that L * L.transpose = M
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment