40 #ifndef _LINEAR_ALGEBRA_H_ 41 #define _LINEAR_ALGEBRA_H_ 91 bool bAllowModifyA =
false,
bool bReturnUTransposed =
false,
bool bReturnVTransposed =
false);
135 bool bAllowModifyA =
false,
bool bReturnUTransposed =
false,
bool bReturnVTransposed =
false);
void SubtractFromMat(CFloatMatrix *pMatrix, const CFloatMatrix *pMatrixToSubtract)
bool DetermineHomography(const Vec2d *pSourcePoints, const Vec2d *pTargetPoints, int nPoints, Mat3d &A, bool bUseSVD=false)
Determines a homography based on a set of 2d-2d point correspondences.
void AddToMat(CFloatMatrix *pMatrix, const CFloatMatrix *pMatrixToAdd)
void SolveLinearLeastSquaresHomogeneousSVD(const CFloatMatrix *A, CFloatVector *x)
bool CalculatePseudoInverseSimple(const CFloatMatrix *pInputMatrix, CFloatMatrix *pResultMatrix)
void SolveLinearLeastSquaresSVD(const CFloatMatrix *A, const CFloatVector *b, CFloatVector *x)
Data structure for the representation of a vector of values of the data type double.
void PCA(const CFloatMatrix *pData, CFloatMatrix *pTransformationMatrix, CFloatMatrix *pTransformedData, int nTargetDimension)
void SubtractFromVec(CFloatVector *pVector, const CFloatVector *pVectorToSubtract)
void AddVecVec(const CFloatVector *pVector1, const CFloatVector *pVector2, CFloatVector *pResultVector)
void SVD(const CFloatMatrix *A, CFloatMatrix *W, CFloatMatrix *U=0, CFloatMatrix *V=0, bool bAllowModifyA=false, bool bReturnUTransposed=false, bool bReturnVTransposed=false)
bool DetermineAffineTransformation(const Vec2d *pSourcePoints, const Vec2d *pTargetPoints, int nPoints, Mat3d &A, bool bUseSVD=false)
Determines an affine transformation based on a set of 2d-2d point correspondences.
Data structure for the representation of a matrix of values of the data type float.
void SubtractMeanFromRows(const CFloatMatrix *pMatrix, CFloatMatrix *pResultMatrix)
void AddMatMat(const CFloatMatrix *pMatrix1, const CFloatMatrix *pMatrix2, CFloatMatrix *pResultMatrix)
void SubtractMeanFromColumns(const CFloatMatrix *pMatrix, CFloatMatrix *pResultMatrix)
void MulMatVec(const CFloatMatrix *pMatrix, const CFloatVector *pVector, CFloatVector *pResultVector)
Mathematic functions operating on the data types CFloatMatrix, CFloatVector, CDoubleMatrix, and CDoubleVector.
bool Invert(const CFloatMatrix *pInputMatrix, CFloatMatrix *pResultMatrix)
void MulMatMat(const CFloatMatrix *A, const CFloatMatrix *B, CFloatMatrix *pResultMatrix, bool bTransposeB=false)
void Zero(CFloatMatrix *pMatrix)
void CalculatePseudoInverseSVD(const CFloatMatrix *pInputMatrix, CFloatMatrix *pOutputMatrix)
Data structure for the representation of a vector of values of the data type float.
bool SolveLinearLeastSquaresSimple(const CFloatMatrix *A, const CFloatVector *b, CFloatVector *x)
Data structure for the representation of a 2D vector.
void SelfProduct(const CFloatMatrix *pMatrix, CFloatMatrix *pResultMatrix, bool AAT=false)
Data structure for the representation of a matrix of values of the data type double.
void Transpose(const CFloatMatrix *pMatrix, CFloatMatrix *pResultMatrix)
void SubtractMatMat(const CFloatMatrix *pMatrix1, const CFloatMatrix *pMatrix2, CFloatMatrix *pResultMatrix)
void AddToVec(CFloatVector *pVector, const CFloatVector *pVectorToAdd)
void SubtractVecVec(const CFloatVector *pVector1, const CFloatVector *pVector2, CFloatVector *pResultVector)
Data structure for the representation of a 3x3 matrix.