Esempio n. 1
0
        private static int Gcdforparams(Algorythm algorythm, bool allowNegative, params int[] a)
        {
            ValidateArray(a);

            if (Contains0Only(a))
            {
                throw new ArgumentOutOfRangeException("At least 1 number must be not 0");
            }

            if (!allowNegative)
            {
                if (!ContainsOnlyNonNegative(a))
                {
                    throw new ArgumentOutOfRangeException("Numbers must be nonnegative");
                }
            }

            int[] b = new int[a.Length];
            Array.Copy(a, b, a.Length);

            for (int i = b.Length - 2; i != -1; i--)
            {
                b[i] = algorythm(b[i], b[i + 1]);
            }

            return(b[0]);
        }
Esempio n. 2
0
        private static int GcdforparamsPlusTime(out double time, Algorythm algorythm, bool allowNegative, params int[] a)
        {
            ValidateArray(a);

            if (Contains0Only(a))
            {
                throw new ArgumentOutOfRangeException("At least 1 number must be not 0");
            }

            var sw = new Stopwatch();

            sw.Start();

            if (!allowNegative)
            {
                if (!ContainsOnlyNonNegative(a))
                {
                    throw new ArgumentOutOfRangeException("Numbers must be nonnegative");
                }
            }

            int[] b = new int[a.Length];
            Array.Copy(a, b, a.Length);

            for (int i = b.Length - 2; i != -1; i--)
            {
                b[i] = algorythm(b[i], b[i + 1]);
            }

            sw.Stop();
            time = sw.Elapsed.TotalMilliseconds;

            return(b[0]);
        }
Esempio n. 3
0
        private static int Gcdfor3intsPlusTime(int a, int b, int c, Algorythm algorythm, bool allowNegative, out double time)
        {
            if (a == 0 && b == 0 && c == 0)
            {
                throw new ArgumentOutOfRangeException("At least 1 number must be not 0");
            }

            var sw = new Stopwatch();

            sw.Start();

            if (!allowNegative)
            {
                if (a < 0 || b < 0 || c < 0)
                {
                    throw new ArgumentOutOfRangeException("Numbers must be nonnegative");
                }
            }
            int k = algorythm(a, algorythm(b, c));

            sw.Stop();
            time = sw.Elapsed.TotalMilliseconds;

            return(k);
        }
        public void WhenInputNotSorted_ReturnsSorted()
        {
            int[] input          = { 1, 3, 5, 4, 7, 7, 2, 0, 4, 12 };
            int[] expectedOutput = { 0, 1, 2, 3, 4, 4, 5, 7, 7, 12 };

            var algorythm = new Algorythm();
            var output    = algorythm.Sort(input);

            Assert.Equal(expectedOutput, output);
        }
Esempio n. 5
0
        private void Canvas_OnMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (StartPoint == null)
            {
                StartPoint = e.GetPosition(Canvas);
                var x = (int)Math.Floor(StartPoint.Value.X / PixelSize);
                var y = (int)Math.Floor(StartPoint.Value.Y / PixelSize);

                Canvas.Children.Clear();
                DrawGrid();

                PutPixel(x, y);
            }
            else
            {
                EndPoint = e.GetPosition(Canvas);
            }

            if (StartPoint == null || EndPoint == null)
            {
                return;
            }

            var line = new Line
            {
                X1     = StartPoint.Value.X,
                X2     = EndPoint.Value.X,
                Y1     = StartPoint.Value.Y,
                Y2     = EndPoint.Value.Y,
                Stroke = Brushes.Red
            };
            var x0     = (int)Math.Floor(StartPoint.Value.X / PixelSize);
            var y0     = (int)Math.Floor(StartPoint.Value.Y / PixelSize);
            var x1     = (int)Math.Floor(EndPoint.Value.X / PixelSize);
            var y1     = (int)Math.Floor(EndPoint.Value.Y / PixelSize);
            var pixels = Algorythm.GetPixels(x0, y0, x1, y1);

            foreach (var pixel in pixels)
            {
                PutPixel(pixel.X, pixel.Y);
            }

            Canvas.Children.Add(line);

            this.Label.Content = string.Format("x0: {0}; y0: {1}; x1: {2}; y1:{3}",
                                               x0, y0, x1, y1);

            Canvas.Children.Add(this.Label);

            StartPoint = null;
            EndPoint   = null;
        }
 static void Main(string[] args)
 {
     //для начала мы считываем данные со всех файлов, которые есть (они специально пронумерованы)
     for (int i = 0; i < 100; i++)
     {
         string newTest = File.ReadAllText
                              (@"C:\Users\Варфоломеев\source\repos\Bellman_Ford\Generator\bin\Debug\"
                              + i.ToString() + ".txt");
         //переводим данные (они хорошо структурированны) в реальную матрицу
         var test = TransformToMatrix(newTest);
         Algorythm.BellmanFordAlgorythm(test.Length, test);
     }
 }
Esempio n. 7
0
        private static int Gcdfor3ints(int a, int b, int c, Algorythm algorythm, bool allowNegative)
        {
            if (a == 0 && b == 0 && c == 0)
            {
                throw new ArgumentOutOfRangeException("At least 1 number must be not 0");
            }
            if (!allowNegative)
            {
                if (a < 0 || b < 0 || c < 0)
                {
                    throw new ArgumentOutOfRangeException("Numbers must be nonnegative");
                }
            }
            int k = algorythm(a, algorythm(b, c));

            return(k);
        }
        internal void Timer(Algorythm A)
        {
            DateTime dt1, dt2;

            dt1 = DateTime.Now;
            FindPrimes(A);
            dt2 = DateTime.Now;

            String intro = "";

            switch (A)
            {
            case Algorythm.ISPRIME:
                intro = "ISPRIME"; break;

            case Algorythm.ERATHOSPHEN:
                intro = "ERATHOSPHEN"; break;

            case Algorythm.MODIFIED_ERATHOSPHEN:
                intro = "MODIFIED_ERATHOSPHEN"; break;

            case Algorythm.PARALLEL_ISPRIME_CYCLE:
                intro = "PARALLEL_ISPRIME_CYCLE"; break;

            case Algorythm.PARALLEL_ERATHOSPHEN11_DATA_DECOMPOSTION:
                intro = "PARALLEL_ERATHOSPHEN11_DATA_DECOMPOSTION"; break;

            case Algorythm.PARALLEL_ERATHOSPHEN12_CYCLE_DECOMPOSTION:
                intro = "PARALLEL_ERATHOSPHEN12_CYCLE_DECOMPOSTION"; break;

            case Algorythm.PARALLEL_ERATHOSPHEN2_PRIMEsSET_DECOMPOSTION:
                intro = "PARALLEL_ERATHOSPHEN2_PRIMEsSET_DECOMPOSTION"; break;

            case Algorythm.TASK_POOL:
                intro = "TASK_POOL"; break;

            case Algorythm.LOCK_SECTION:
                intro = "LOCK_SECTION"; break;
            }
            primes = source.Where(x => res[Array.IndexOf(source, x)] == true).ToArray();
            Console.WriteLine($@"{(dt2 - dt1).TotalMilliseconds: 0000.0000} ms took {intro}   ");
        }
Esempio n. 9
0
        public static Bitmap GetAnaglyphFromStereopair(Bitmap stereopair, Algorythm algorythm)
        {
            DevideStereopairOnTwoImages(stereopair);
            StereoAnaglyph filter = new StereoAnaglyph();
            filter.OverlayImage = rightImage;

            switch (algorythm)
            {
                case Algorythm.ColorAnaglyph:
                    return filter.Apply(leftImage,
                        COLOR_ANAGLYPH_LEFT_IMAGE_FILTER_MATRIX,
                        COLOR_ANAGLYPH_RIGHT_IMAGE_FILTER_MATRIX);

                case Algorythm.TrueAnaglyph:
                    return filter.Apply(leftImage,
                        TRUE_ANAGLYPH_LEFT_IMAGE_FILTER_MATRIX,
                        TRUE_ANAGLYPH_RIGHT_IMAGE_FILTER_MATRIX);

                case Algorythm.OptimizedAnaglyph:
                    return filter.Apply(leftImage,
                        OPTIMIZED_ANAGLYPH_LEFT_IMAGE_FILTER_MATRIX,
                        OPTIMIZED_ANAGLYPH_RIGHT_IMAGE_FILTER_MATRIX);

                case Algorythm.HalfColorAnaglyph:
                    return filter.Apply(leftImage,
                        HALF_COLOR_ANAGLYPH_LEFT_IMAGE_FILTER_MATRIX,
                        HALF_COLOR_ANAGLYPH_RIGHT_IMAGE_FILTER_MATRIX);

                case Algorythm.GrayAnaglyph:
                    return filter.Apply(leftImage,
                        GRAY_ANAGLYPH_LEFT_IMAGE_FILTER_MATRIX,
                        GRAY_ANAGLYPH_RIGHT_IMAGE_FILTER_MATRIX);

                default:
                    return filter.Apply(leftImage,
               COLOR_ANAGLYPH_LEFT_IMAGE_FILTER_MATRIX,
               COLOR_ANAGLYPH_RIGHT_IMAGE_FILTER_MATRIX);
            }
        }
        internal void FindPrimes(Algorythm a)
        {
            switch (a)
            {
            case Algorythm.ISPRIME:  SimplestSearch(); break;

            case Algorythm.ERATHOSPHEN: Erathosphen(capacity); break;

            case Algorythm.MODIFIED_ERATHOSPHEN: ModifiedErathosphen(capacity); break;

            case Algorythm.PARALLEL_ISPRIME_CYCLE: ParallelIsPrimeCycle(capacity); break;

            case Algorythm.PARALLEL_ERATHOSPHEN11_DATA_DECOMPOSTION: ParallelErathospen1_DataDecomposition(capacity); break;

            case Algorythm.PARALLEL_ERATHOSPHEN12_CYCLE_DECOMPOSTION: ParallelErathospen_DataDecompositionCycle(capacity); break;

            case Algorythm.PARALLEL_ERATHOSPHEN2_PRIMEsSET_DECOMPOSTION: ParallelErathospen_PrimesSetDecomposition(capacity); break;

            case Algorythm.TASK_POOL: TaskPool(capacity); break;

            case Algorythm.LOCK_SECTION: LockSection(capacity); break;
            }
        }
Esempio n. 11
0
#pragma warning restore 1591


        /// <summary>
        /// Hashes a string using one of the sha algorithms - 1, 256 or 512
        /// </summary>
        /// <param name="s">Input string</param>
        /// <param name="shaVersion">Version of the sha algorythm - Sha1, Sha256, Sha512; defaults to Sha1</param>
        /// <param name="useBase64Encoding">Whether or not use base64 encoding for a returned string</param>
        /// <returns>Hashed string</returns>
        public static string ComputeShaHash(string s, Algorythm shaVersion, bool useBase64Encoding = false)
        {
            return(ComputeShaHash(s, (int)shaVersion, useBase64Encoding));
        }