Lines Matching refs:dim
38 static void Rotate(double **a, int dim, int i, int j, int k, int l, double s,
41 static double SumOffDiag(double **mat, int dim);
46 void Jacobi(double **matrix, int dim, double *egval, double **egvec)
49 // <mat> of size <dim>x<dim>. Fills in <egval> with the eigenvalues
64 b = (double *) CALLOC(dim, sizeof(double), "clib.jacobi.b");
65 d = (double *) CALLOC(dim, sizeof(double), "clib.jacobi.d");
66 z = (double *) CALLOC(dim, sizeof(double), "clib.jacobi.z");
67 a = (double **) CALLOC(dim, sizeof(double *), "clib.jacobi.input_jacobi");
68 v = (double **) CALLOC(dim, sizeof(double *), "clib.jacobi.input_jacobi");
69 for (i = 0; i < dim; i++)
71 a[i] = (double *) CALLOC(dim, sizeof(double), "clib.jacobi.input_jacobi[]");
72 v[i] = (double *) CALLOC(dim, sizeof(double), "clib.jacobi.input_jacobi[]");
73 for (j = 0; j < dim; j++)
78 for (i = 0; i < dim; i++)
89 sum = SumOffDiag(a, dim);
104 thresh = 20.0 * sum / (dim * dim); /* .. first 3 iterations only */
108 for (i = 0; i < dim - 1; i++)
110 for (j = i + 1; j < dim; j++)
144 for (k = 0 ; k < i; k++) Rotate(a, dim, k, i, k, j, s, tau);
145 for (k = i + 1; k < j; k++) Rotate(a, dim, i, k, k, j, s, tau);
146 for (k = j + 1; k < dim; k++) Rotate(a, dim, i, k, j, k, s, tau);
148 for (k = 0; k < dim; k++) Rotate(v, dim, k, i, k, j, s, tau);
155 for (i = 0; i < dim; i++) /* update d[] and re-initialize z[] */
166 for (i = 0; i < dim; i++)
169 for (j = 0; j < dim; j++) egvec[i][j] = v[j][i]; /* TODO: should this be egvec[j][i] */
181 for (i = 0; i < dim; i++)
193 static void Rotate(double **a, int dim, int i, int j, int k, int l, double s,
204 static double SumOffDiag(double **mat, int dim)
212 for (i = 0; i < dim - 1; i++)
213 for (j = i + 1; j < dim; j++)