You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iAlg/iAlgMath/zxAlgSVD.h

44 lines
776 B
C

#pragma once
#include "Defines.h"
#include "iAlgMath_global.h"
// SVD<56>㷨ͨ<E3B7A8><CDA8><EFBFBD><EFBFBD><E6BCB0><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>˼<EFBFBD><CBBC><EFBFBD>Jacobi<62><69><EFBFBD><EFBFBD>SVD<56><EFBFBD>Ŀ<EFBFBD><C4BF>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD>ڴ˻<DAB4><CBBB><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3A9>
// <20><>ע<EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>н<EFBFBD><D0BD><EFBFBD><EFBFBD>Ż<EFBFBD><C5BB>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ󣬱<CFB4><F3A3ACB1>һ<E0B2BB><D2BB><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD>
class I_ALGMATH_EXPORT zxAlgSVD
{
public:
zxAlgSVD();
~zxAlgSVD();
#ifdef QT_DEBUG
void test();
#endif
public:
// <20><><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VVecDouble pseudoInverse(VVecDouble& A);
private:
// svg
bool svd(VVecDouble& A);
// sqrt(a^2 + b^2) without under/overflow
double hypot(double a, double b);
private:
// <20><><EFBFBD><EFBFBD>
VVecDouble U;
VVecDouble V;
VecDouble s;
int m;
int n;
};