Esempio n. 1
0
        public static void Run_Standard(double minR,
                                        double maxR,
                                        double stepR,
                                        double minI,
                                        double maxI,
                                        double stepI,
                                        ulong maximumRecursionDepth,
                                        ulong bufferSize,
                                        bool visualise)
        {
            Console.WriteLine("Starting calculation...");

            Calculation.GenerateValues(
                minR,
                maxR,
                stepR,
                minI,
                maxI,
                stepI,
                maximumRecursionDepth,
                dataFileName,
                bufferSize);

            Console.WriteLine("Calculation complete");

            if (visualise)
            {
                Console.WriteLine("Visualising...");
                Visualising.CallVisualisationProgram(dataFileName);
            }
        }
Esempio n. 2
0
        /// <param name="bufferSize">Maximum number of values to store before saving to file</param>
        public static void GenerateValues(
            double minR,
            double maxR,
            double stepR,
            double minI,
            double maxI,
            double stepI,
            ulong maximumRecursionDepth,
            string outputFileName,
            ulong bufferSize = ulong.MaxValue)
        {
            ulong rowLength = 0;

            for (double r = minR; r <= maxR; r += stepR)
            {
                rowLength++;
            }

            Visualising.ResetFile(outputFileName, rowLength);

            for (double i = minI; i <= maxI; i += stepI)
            {
                List <ulong> current = new List <ulong>();

                for (double r = minR; r <= maxR; r += stepR)
                {
                    current.Add(GenerateValue(
                                    new ComplexNumber(r, i),
                                    maximumRecursionDepth
                                    ));

                    if ((ulong)current.Count >= bufferSize)
                    {
                        SaveValuesToFile(current.Select(x => (float)x / maximumRecursionDepth).ToArray(), outputFileName);
                        current.Clear();
                    }
                }

                if (current.Count > 0)
                {
                    SaveValuesToFile(current.Select(x => (float)x / maximumRecursionDepth).ToArray(), outputFileName);
                    current.Clear();
                }
            }
        }
Esempio n. 3
0
 private static void SaveValuesToFile(float[] values,
                                      string outputFileName)
 {
     Visualising.WritePartialData(values, outputFileName);
 }