Program Listing for File MathFunctions.h
↰ Return to documentation for file (PositionBasedDynamics/MathFunctions.h)
#ifndef MATH_FUNCTIONS_H
#define MATH_FUNCTIONS_H
#include "Common/Common.h"
// ------------------------------------------------------------------------------------
namespace PBD
{
class MathFunctions
{
private:
static void jacobiRotate(Matrix3r &A,
Matrix3r &R,
int p,
int q);
public:
static Real infNorm(const Matrix3r &A);
static Real oneNorm(const Matrix3r &A);
static void eigenDecomposition(const Matrix3r &A,
Matrix3r &eigenVecs,
Vector3r &eigenVals);
static void polarDecomposition(const Matrix3r &A,
Matrix3r &R,
Matrix3r &U,
Matrix3r &D);
static void polarDecompositionStable(const Matrix3r &M,
const Real tolerance,
Matrix3r &R);
static void svdWithInversionHandling(const Matrix3r &A,
Vector3r &sigma,
Matrix3r &U,
Matrix3r &VT);
static Real cotTheta(const Vector3r &v, const Vector3r &w);
static void crossProductMatrix(const Vector3r &v, Matrix3r &v_hat);
static void extractRotation(const Matrix3r &A, Quaternionr &q, const unsigned int maxIter);
};
}
#endif