Calculate the eigenval/vecs Parameter: ts The vectors. Parameter: idx The indexes of the vectors to use
55 std::vector<FeatureVector>
a;
56 int n = ts.dimension();
67 for (
int k = 0;
k <
n;
k++)
72 for (std::vector<unsigned>::const_iterator
i = idx.begin();
i != idx.end();
i++)
74 if (finite(ts.itemAt(*
i)[
k]))
76 sum += ts.itemAt(*
i)[
k];
80 mean.push_back(sum / l);
89 for (
int i = 0;
i <
n;
i++)
91 for (
int j = 0;
j <=
i;
j++)
95 for (std::vector<unsigned>::const_iterator it = idx.begin();it != idx.end();it++)
99 if (finite(d1) && finite(d2))
106 a[
i][
j] = a[
j][
i] = sum / l;
108 a[
i][
j] = a[
j][
i] = 0;
129 std::vector<FeatureVector> &v =
eigenvec;
131 for (
int i = 0;
i <
n;
i++)
135 b[
i] = d[
i] = a[
i][
i];
146 for (
int it = 1;it <= 50;it++)
148 if ((verbosity == 1) && (it == 1))
153 for (
int ip = 0; ip < n - 1; ip++)
155 for (
int iq = ip + 1; iq <
n; iq++)
156 sm += fabs(a[iq][ip]);
160 for (
int i = 0;
i < n - 1;
i++)
165 for (
int j =
i + 1;
j <
n;
j++)
184 tresh = 0.2 * sm / (n *
n);
188 for (
int ip = 0; ip < n - 1; ip++)
190 for (
int iq = ip + 1; iq <
n; iq++)
195 && fabs(d[ip]) + g == fabs(d[ip])
196 && fabs(d[iq]) + g == fabs(d[iq]))
198 else if (fabs(a[iq][ip]) > tresh)
205 if (fabs(h) + g == fabs(h))
210 t = 1.0 / (fabs(theta) +
sqrt(1.0 + theta * theta));
214 c = 1.0 /
sqrt(1 + t * t);
224 #define rotate(a,i,j,k,l) \ 227 a[i][j] = g - s *(h + g*tau); \ 228 a[k][l] = h + s*(g - h*tau); 231 for (j = 0; j < ip; j++)
235 for (j = ip + 1; j < iq; j++)
239 for (j = iq + 1; j <
n; j++)
243 for (j = 0; j <
n; j++)
252 for (
int ip = 0; ip <
n; ip++)
void set_Dimension(int _D)
#define REPORT_ERROR(nerr, ErrormMsg)
void sqrt(Image< double > &op)
virtual void OnReportOperation(const std::string &_rsOp)=0
virtual void OnInitOperation(unsigned long _est_it)=0
virtual const unsigned & getVerbosity() const
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
#define rotate(a, i, j, k, l)
Error related to numerical calculation.
virtual void OnProgress(unsigned long _it)=0
std::vector< floatFeature > FeatureVector
std::vector< FeatureVector > eigenvec