static void Main(string[] args)
        {
            int n;

            double[,] A, B, C;
            StreamWriter SW = new StreamWriter("Problem_41_Rezults.txt");

            CLM.Read_Matrix_A("Pr_4.2__Matrix_A__v04.bin", out A, out n);
            CLM.Read_Matrix_A("Pr_4.2__Matrix_B__v04.bin", out B, out n);


            SW.WriteLine(CLM.Print_A(A, true, 1, 2, "A"));
            SW.WriteLine(CLM.Print_A(B, true, 1, 2, "B"));

            double alpha = 2.5, betta = -0.8;

            Matrix_C(alpha, betta, A, B, out C);
            SW.WriteLine(CLM.Print_A(C, true, 2, 4, "Matrix C"));

            double C_max = 0.0, C_min = 0.0;
            int    i_min = -1, j_min = -1, i_max = -1, j_max = -1;

            CLM.Matrix_Max_Min(C, ref C_max, ref i_max, ref j_max,
                               ref C_min, ref i_min, ref j_min);
            SW.WriteLine("C_min=C[{0},{1}]={2:F4}", i_min, j_min, C_min);
            SW.WriteLine("C_max=C[{0},{1}]={2:F4}", i_max, j_max, C_max);
        }
        static void Test_Cofactor(string file, int I, int J)
        {
            string       txt; double det_A;
            StreamWriter SW = new StreamWriter("Problem_43_Rezults.txt");

            double[,] A; int i, j, n;
            CLM.Read_Matrix_A(file, out A, out n);

            for (j = 0; j < n; j++)
            {
                txt  = string.Format("  A[{0},{1}]=", I + 1, j + 1);
                txt += string.Format("  {0}", CLM.Cofactor(A, I, j)).PadLeft(9);
                SW.WriteLine(txt);
            }
            det_A = CLM.Determinant(A, I, true);
            SW.WriteLine("   Determimant(A,  {0}, true)= {1}\r\n", I, det_A);

            for (i = 0; i < n; i++)
            {
                txt  = string.Format("  A[{0},{1}]=", i + 1, J + 1);
                txt += string.Format("  {0}", CLM.Cofactor(A, i, J)).PadLeft(9);
                SW.WriteLine(txt);
            }
            det_A = CLM.Determinant(A, J, false);
            SW.WriteLine("   Determimant(A,  {0}, false)= {1}\r\n", J, det_A);
            SW.Close();
        }
        static void Matrix_C(double al, double bt, double[,] A, double[,] B, out double[,] C)
        {
            int n = A.GetLength(0);

            double[,] M1 = new double[n, n];
            double[,] M2 = new double[n, n];
            double[,] H1 = new double[n, n];
            double[,] H2 = new double[n, n];
            CLM.Matrix_Multiply(A, bt, out H1);
            CLM.Matrix_Summ(H1, B, out M1);
            CLM.Matrix_Rotation(M1, out M2, false);

            CLM.Transpose_Matrix(B, out H2);
            CLM.Matrix_Multiply(H2, al, out H1);
            CLM.Matrix_Subtract(H1, A, out H2);

            CLM.Matrix_Rotation(H2, out M1, true);
            CLM.Matrix_Rotation(M1, out H1, true);
            CLM.Matrix_Multiply(M2, H1, out C);
        }
        static void Main(string[] args)
        {
            int    n;
            double det_A;

            double[,] A, L, U;
            StreamWriter SW = new StreamWriter("Problem_42_Rezults.txt");

            CLM.Read_Matrix_A("LU__Matrix_A__v04.bin", out A, out n);

            CLM.LU_Factorization(A, out L, out U, out det_A);

            SW.WriteLine(CLM.Print_A(L, true, 1, 2, "matrix L"));
            SW.WriteLine(CLM.Print_A(U, true, 1, 2, "matrix U"));
            SW.WriteLine(" det_a=  {0:F3}", det_A);

            SW.WriteLine(CLM.Print_A(A, true, 1, 2, "matrix A"));
            CLM.Matrix_Multiply(L, U, out A);
            SW.WriteLine(CLM.Print_A(A, true, 1, 2, "matrix L*U"));
        }