Esempio n. 1
0
        public void GaussPartialPivotTimeTest(int numberOfAgents, int count)
        {
            MatrixGenerator mg = new MatrixGenerator(numberOfAgents);

            MyMatrix <double> macierz      = new MyMatrix <double>(mg.size, mg.size);
            MyMatrix <double> macierzKopia = new MyMatrix <double>(mg.size, mg.size);

            double[] wektor      = new double[mg.size];
            double[] wektorKopia = new double[mg.size];

            //przygotowanie macierzy i wektorów
            macierz      = mg.GenerateMatrix();
            macierzKopia = mg.GenerateMatrix();
            wektor       = GenerateVector(mg.size);
            wektorKopia  = GenerateVector(mg.size);

            //liczenie czasu
            double[] czasy   = new double[count];
            double   suma    = 0.0;
            double   srednia = 0.0;

            for (int i = 0; i < count; i++)
            {
                var watchDouble = Stopwatch.StartNew();
                macierz.GaussPartialPivot(wektor);
                watchDouble.Stop();
                var elapsedMsDouble = watchDouble.ElapsedMilliseconds;
                czasy[i] = elapsedMsDouble;

                for (var j = 0; j < macierz.Rows(); j++)
                {
                    for (var k = 0; k < macierz.Columns(); k++)
                    {
                        macierz[j, k] = macierzKopia[j, k];
                        wektor[j]     = wektorKopia[j];
                    }
                }
                suma += czasy[i];
            }

            srednia = suma / count;

            StreamWriter writer = new StreamWriter("CzasGaussPartialPivot.csv", append: true);

            if (writer != null)
            {
                writer.WriteLine(srednia);
            }
            writer.Close();

            Console.WriteLine("Średni czas GaussPartialPivot" +
                              ": " + srednia + "ms");
        }
Esempio n. 2
0
        public MyMatrix <double> GenerateMatrix()
        {
            MyMatrix <double> macierz = new MyMatrix <double>(size, size);

            for (int i = 0; i < macierz.Rows(); i++)
            {
                for (int j = 0; j < macierz.Columns(); j++)
                {
                    macierz[i, j] = GenerateValue(i, j); //generate value
                }
            }

            return(macierz);
        }