UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Chaos::GivensRotation< T > Class Template Reference

#include <ImplicitQRSVD.h>

Public Member Functions

 GivensRotation ()
 
 GivensRotation (int rowi_in, int rowk_in)
 
 GivensRotation (T a, T b, int rowi_in, int rowk_in)
 
 ~GivensRotation ()
 
void TransposeInPlace ()
 
void Compute (const T a, const T b)
 
void ComputeUnconventional (const T a, const T b)
 
void Fill (const PMatrix< T, 2, 2 > &R) const
 
void RowRotation (PMatrix< T, 2, 2 > &A) const
 
void RowRotation (PMatrix< T, 3, 3 > &A) const
 
void ColumnRotation (PMatrix< T, 2, 2 > &A) const
 
void ColumnRotation (PMatrix< T, 3, 3 > &A) const
 
void operator*= (const GivensRotation< T > &A)
 
GivensRotation< T > operator* (const GivensRotation< T > &A) const
 

Public Attributes

int rowi
 
int rowk
 
c
 
s
 

Detailed Description

template<class T>
class Chaos::GivensRotation< T >

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.

Constructor & Destructor Documentation

◆ GivensRotation() [1/3]

template<class T >
Chaos::GivensRotation< T >::GivensRotation ( )
inline

◆ GivensRotation() [2/3]

template<class T >
Chaos::GivensRotation< T >::GivensRotation ( int  rowi_in,
int  rowk_in 
)
inline

◆ GivensRotation() [3/3]

template<class T >
Chaos::GivensRotation< T >::GivensRotation ( a,
b,
int  rowi_in,
int  rowk_in 
)
inline

◆ ~GivensRotation()

template<class T >
Chaos::GivensRotation< T >::~GivensRotation ( )
inline

Member Function Documentation

◆ ColumnRotation() [1/2]

template<class T >
void Chaos::GivensRotation< T >::ColumnRotation ( PMatrix< T, 2, 2 > &  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.

◆ ColumnRotation() [2/2]

template<class T >
void Chaos::GivensRotation< T >::ColumnRotation ( PMatrix< T, 3, 3 > &  A) const
inline

◆ Compute()

template<class T >
void Chaos::GivensRotation< T >::Compute ( const T  a,
const T  b 
)
inline

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

◆ ComputeUnconventional()

template<class T >
void Chaos::GivensRotation< T >::ComputeUnconventional ( const T  a,
const T  b 
)
inline

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

◆ Fill()

template<class T >
void Chaos::GivensRotation< T >::Fill ( const PMatrix< T, 2, 2 > &  R) const
inline

Fill the R with the entries of this rotation

◆ operator*()

template<class T >
GivensRotation< T > Chaos::GivensRotation< T >::operator* ( const GivensRotation< T > &  A) const
inline

Multiply givens must be for same row and column

◆ operator*=()

template<class T >
void Chaos::GivensRotation< T >::operator*= ( const GivensRotation< T > &  A)
inline

Multiply givens must be for same row and column

◆ RowRotation() [1/2]

template<class T >
void Chaos::GivensRotation< T >::RowRotation ( PMatrix< T, 2, 2 > &  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.

◆ RowRotation() [2/2]

template<class T >
void Chaos::GivensRotation< T >::RowRotation ( PMatrix< T, 3, 3 > &  A) const
inline

◆ TransposeInPlace()

template<class T >
void Chaos::GivensRotation< T >::TransposeInPlace ( )
inline

Member Data Documentation

◆ c

template<class T >
T Chaos::GivensRotation< T >::c

◆ rowi

template<class T >
int Chaos::GivensRotation< T >::rowi

◆ rowk

template<class T >
int Chaos::GivensRotation< T >::rowk

◆ s

template<class T >
T Chaos::GivensRotation< T >::s

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