private void accept_button_Click(object sender, EventArgs e)
        {
            CheckFile();

            quantum = new Quantum
            {
                n = Convert.ToInt32(n_tb.Text),
                lambda = Convert.ToDouble(lambda_tb.Text),
                h = Convert.ToInt32(h_tb.Text),
                k = Convert.ToInt32(k_tb.Text),
                N = Convert.ToInt32(count_beta_tb.Text),
                countAlpha = Convert.ToInt32(count_alpha_tb.Text),
                countX = Convert.ToInt32(count_x_tb.Text),
                a = Convert.ToDouble(a_tb.Text),
                minBeta = Convert.ToDouble(min_beta_tb.Text),
                maxBeta = Convert.ToDouble(max_beta_tb.Text),
                minAlpha = Convert.ToDouble(min_alpha_tb.Text),
                maxAlpha = Convert.ToDouble(max_alpha_tb.Text),
                minX = Convert.ToDouble(min_x_tb.Text),
                maxX = Convert.ToDouble(max_x_tb.Text),
            };
            quantum.InitializeMatrixAndVectors();

            threadOne = new Thread(quantum.GetPotential);
            threadOne.Start();

            threadTwo = new Thread(quantum.GetEnergy);
            threadTwo.Start();

            PotentialChart();

            accept_button.Enabled = false;
            next_button.Enabled = true;
            update_button.Enabled = true;
        }
        public Histogram(Quantum quantum, double min, double max)
        {
            this.min = min;
            this.max = max;

            vector = new double[quantum.countAlpha * quantum.N];

            RewriteAndSortTable(quantum);

            numbOfSection = Convert.ToInt32(Math.Sqrt(vector.Length));

            length = (vector.Max() - vector.Min()) / numbOfSection;

            section = new double[numbOfSection, 3];
            CreataSection();

            frequency = new double[numbOfSection];
            sectionSum = new double[numbOfSection];
            for (int i = 0; i < numbOfSection; i++)
            {
                frequency[i] = 0;
                sectionSum[i] = 0;
            }


            CountingData();
        }
Example #3
0
 internal Register(ComputerModel compModel, Quantum.Register reg, RegisterModel regModel, int offsetToModel = 0)
 {
     _compModel = compModel;
     _register = reg;
     _model = regModel;
     _offsetToModel = offsetToModel;
 }
        private void RewriteAndSortTable(Quantum _quantum)
        {
            int j = 0;
            for (int i = 0; i < _quantum.countAlpha; i++)
            {
                for (int k = 1; k < _quantum.N + 1; k++)
                {
                    vector[j] = _quantum.outputMatrix[i, k];
                    j++;
                }
            }
            Array.Sort(vector);
            
            var tmp = Array.FindAll(vector, x => ( x >= min && x <= max ));

            vector = null;
            vector = tmp;
        }