296 int i, j, k, iq, ip, numPos;
297 Real tresh, theta, tau, t, sm, s, h, g, c, tmp;
298 Real bspace[4], zspace[4];
309 for (ip = 0; ip < n; ip++) {
310 for (iq = 0; iq < n; iq++) {
315 for (ip = 0; ip < n; ip++) {
316 b[ip] = w[ip] = a(ip, ip);
321 for (i = 0; i < VTK_MAX_ROTATIONS; i++) {
323 for (ip = 0; ip < n - 1; ip++) {
324 for (iq = ip + 1; iq < n; iq++) {
325 sm += fabs(a(ip, iq));
328 if (sm == 0.0) {
break; }
331 tresh = 0.2 * sm / (n * n);
336 for (ip = 0; ip < n - 1; ip++) {
337 for (iq = ip + 1; iq < n; iq++) {
338 g = 100.0 * fabs(a(ip, iq));
341 if (i > 3 && (fabs(w[ip]) + g) == fabs(w[ip]) &&
342 (fabs(w[iq]) + g) == fabs(w[iq])) {
344 }
else if (fabs(a(ip, iq)) > tresh) {
346 if ((fabs(h) + g) == fabs(h)) {
349 theta = 0.5 * h / (a(ip, iq));
350 t = 1.0 / (fabs(theta) + sqrt(1.0 + theta * theta));
351 if (theta < 0.0) { t = -t; }
353 c = 1.0 / sqrt(1 + t * t);
364 for (j = 0; j <= ip - 1; j++) {
365 VTK_ROTATE(a, j, ip, j, iq);
368 for (j = ip + 1; j <= iq - 1; j++) {
369 VTK_ROTATE(a, ip, j, j, iq);
372 for (j = iq + 1; j < n; j++) {
373 VTK_ROTATE(a, ip, j, iq, j);
375 for (j = 0; j < n; j++) {
376 VTK_ROTATE(v, j, ip, j, iq);
382 for (ip = 0; ip < n; ip++) {
390 if (i >= VTK_MAX_ROTATIONS) {
391 std::cout <<
"vtkMath::Jacobi: Error extracting eigenfunctions"
401 for (j = 0; j < n - 1; j++) {
404 for (i = j + 1; i < n; i++) {
413 for (i = 0; i < n; i++) {
424 int ceil_half_n = (n >> 1) + (n & 1);
425 for (j = 0; j < n; j++) {
426 for (numPos = 0, i = 0; i < n; i++) {
427 if (v(i, j) >= 0.0) { numPos++; }
430 if (numPos < ceil_half_n) {
431 for (i = 0; i < n; i++) {