/Engine/Source/Runtime/Experimental/ChaosCore/Public/Chaos/ImplicitQRSVD.h
Whole matrix S is stored since its faster to calculate due to simd vectorization Polar guarantees negative sign is on the small magnitude singular value. S is guaranteed to be the closest one to identity. R is guaranteed to be the closest rotation to A.
namespace Chaos { template<class T> void Chaos::PolarDecomposition ( const [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 2, 2 > & A, [GivensRotation](API\Runtime\ChaosCore\Chaos\GivensRotation)< T > & R, [PMatrix](API\Runtime\Chaos\Chaos\PMatrix)< T, 2, 2 > & S_Sym ) }