/// <summary> /// /// </summary> /// <param name="wym">dimensions</param> /// <param name="s1">basevector, used for rotation</param> /// <param name="a">current orthogonal vectors</param> public static void Minim(int wym, double[] s1, double[][] a) { double c1; double[][] b = MatrixKniaz.New(wym, wym); int i, j, k; for (i = 0; i < wym; i++) { for (j = 0; j < wym; j++) { c1 = 0; for (k = i; k < wym; k++) { c1 += s1[k] * a[k][j]; } b[i][j] = c1; } } for (i = 0; i < wym; i++) { for (j = 0; j < wym; j++) { a[i][j] = b[i][j]; } } }