Class xlifepp::JacobiRotation#
-
template<typename Scalar>
class JacobiRotation#
-
Collaboration diagram for xlifepp::JacobiRotation:
Rotation given by a cosine-sine pair.
This class represents a Jacobi or Givens rotation. This is a 2D rotation in the plane
Jof angle defined by its cosinecand sinesas follow:You can apply the respective counter-clockwise rotation to a column vector
vby applying its adjoint on the left: that translates to the following code:v.applyOnTheLeft(J.adjoint());
Public Functions
-
inline JacobiRotation()#
-
Default constructor without any initialization.
-
inline JacobiRotation(const Scalar &c, const Scalar &s)#
-
Construct a planar rotation from a cosine-sine pair (c,
s).
-
inline JacobiRotation adjoint() const#
-
Returns the adjoint transformation.
-
void makeGivens(const Scalar &p, const Scalar &q, Scalar *z = 0)#
-
computes Givens rotation
Makes
*thisas a Givens rotationGsuch that applying to the left of the vector yields: .The value of z is returned if z is not null (the default is null). Also note that G is built such that the cosine is always real.
This function implements the continuous Givens rotation generation algorithm found in Anderson (2000), Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem. LAPACK Working Note 150, University of Tennessee, UT-CS-00-454, December 4, 2000.
-
bool makeJacobi(RealScalar x, Scalar y, RealScalar z)#
-
computes Jacobi rotation
Makes
*thisas a Jacobi rotation J such that applying J on both the right and left sides of the selfadjoint 2x2 matrix yields a diagonal matrix .
-
inline JacobiRotation operator*(const JacobiRotation &other)#
-
Concatenates two planar rotation.
-
inline JacobiRotation transpose() const#
-
Returns the transposed transformation.
-
inline JacobiRotation()#