Bullet Collision Detection & Physics Library
Public Member Functions | Public Attributes | List of all members
GivensRotation Class Reference

Class for givens rotation. More...

#include <btImplicitQRSVD.h>

Public Member Functions

 GivensRotation (int rowi_in, int rowk_in)
 
 GivensRotation (btScalar a, btScalar b, int rowi_in, int rowk_in)
 
 ~GivensRotation ()
 
void transposeInPlace ()
 
void compute (const btScalar a, const btScalar b)
 Compute c and s from a and b so that ( c -s ) ( a ) = ( * ) s c b ( 0 ) More...
 
void computeUnconventional (const btScalar a, const btScalar b)
 This function computes c and s so that ( c -s ) ( a ) = ( 0 ) s c b ( * ) More...
 
void fill (const btMatrix3x3 &R) const
 Fill the R with the entries of this rotation. More...
 
void fill (const btMatrix2x2 &R) const
 
void rowRotation (btMatrix3x3 &A) const
 This function does something like c -s 0 ( s c 0 ) A -> A 0 0 1 It only affects row i and row k of A. More...
 
void rowRotation (btMatrix2x2 &A) const
 
void columnRotation (btMatrix3x3 &A) const
 This function does something like c s 0 A ( -s c 0 ) -> A 0 0 1 It only affects column i and column k of A. More...
 
void columnRotation (btMatrix2x2 &A) const
 
void operator*= (const GivensRotation &A)
 Multiply givens must be for same row and column. More...
 
GivensRotation operator* (const GivensRotation &A) const
 Multiply givens must be for same row and column. More...
 

Public Attributes

int rowi
 
int rowk
 
btScalar c
 
btScalar s
 

Detailed Description

Class for givens rotation.

Row rotation G*A corresponds to something like c -s 0 ( s c 0 ) A 0 0 1 Column rotation A G' corresponds to something like c -s 0 A ( s c 0 ) 0 0 1

c and s are always computed so that ( c -s ) ( a ) = ( * ) s c b ( 0 )

Assume rowi<rowk.

Definition at line 114 of file btImplicitQRSVD.h.

Constructor & Destructor Documentation

◆ GivensRotation() [1/2]

GivensRotation::GivensRotation ( int  rowi_in,
int  rowk_in 
)
inline

Definition at line 121 of file btImplicitQRSVD.h.

◆ GivensRotation() [2/2]

GivensRotation::GivensRotation ( btScalar  a,
btScalar  b,
int  rowi_in,
int  rowk_in 
)
inline

Definition at line 129 of file btImplicitQRSVD.h.

◆ ~GivensRotation()

GivensRotation::~GivensRotation ( )
inline

Definition at line 136 of file btImplicitQRSVD.h.

Member Function Documentation

◆ columnRotation() [1/2]

void GivensRotation::columnRotation ( btMatrix2x2 A) const
inline

Definition at line 244 of file btImplicitQRSVD.h.

◆ columnRotation() [2/2]

void GivensRotation::columnRotation ( btMatrix3x3 A) const
inline

This function does something like c s 0 A ( -s c 0 ) -> A 0 0 1 It only affects column i and column k of A.

Definition at line 235 of file btImplicitQRSVD.h.

◆ compute()

void GivensRotation::compute ( const btScalar  a,
const btScalar  b 
)
inline

Compute c and s from a and b so that ( c -s ) ( a ) = ( * ) s c b ( 0 )

Definition at line 148 of file btImplicitQRSVD.h.

◆ computeUnconventional()

void GivensRotation::computeUnconventional ( const btScalar  a,
const btScalar  b 
)
inline

This function computes c and s so that ( c -s ) ( a ) = ( 0 ) s c b ( * )

Definition at line 169 of file btImplicitQRSVD.h.

◆ fill() [1/2]

void GivensRotation::fill ( const btMatrix2x2 R) const
inline

Definition at line 193 of file btImplicitQRSVD.h.

◆ fill() [2/2]

void GivensRotation::fill ( const btMatrix3x3 R) const
inline

Fill the R with the entries of this rotation.

Definition at line 183 of file btImplicitQRSVD.h.

◆ operator*()

GivensRotation GivensRotation::operator* ( const GivensRotation A) const
inline

Multiply givens must be for same row and column.

Definition at line 268 of file btImplicitQRSVD.h.

◆ operator*=()

void GivensRotation::operator*= ( const GivensRotation A)
inline

Multiply givens must be for same row and column.

Definition at line 257 of file btImplicitQRSVD.h.

◆ rowRotation() [1/2]

void GivensRotation::rowRotation ( btMatrix2x2 A) const
inline

Definition at line 218 of file btImplicitQRSVD.h.

◆ rowRotation() [2/2]

void GivensRotation::rowRotation ( btMatrix3x3 A) const
inline

This function does something like c -s 0 ( s c 0 ) A -> A 0 0 1 It only affects row i and row k of A.

Definition at line 209 of file btImplicitQRSVD.h.

◆ transposeInPlace()

void GivensRotation::transposeInPlace ( )
inline

Definition at line 138 of file btImplicitQRSVD.h.

Member Data Documentation

◆ c

btScalar GivensRotation::c

Definition at line 118 of file btImplicitQRSVD.h.

◆ rowi

int GivensRotation::rowi

Definition at line 116 of file btImplicitQRSVD.h.

◆ rowk

int GivensRotation::rowk

Definition at line 117 of file btImplicitQRSVD.h.

◆ s

btScalar GivensRotation::s

Definition at line 119 of file btImplicitQRSVD.h.


The documentation for this class was generated from the following file: