private void btnGeneratePolynom_Click(object sender, RoutedEventArgs e) { IPolynom p = null; if (sender == btnGenerateSecondDegree) { p = new SecondDegreePolynom(); p.SetParameter("a", PrimesBigInteger.ValueOf(3)); p.SetParameter("b", PrimesBigInteger.ValueOf(7)); p.SetParameter("c", PrimesBigInteger.ValueOf(13)); m_InputControlPolynom.SetText(InputRangeControl.FreeFrom, "0"); m_InputControlPolynom.SetText(InputRangeControl.FreeTo, "49"); m_InputControlPolynom.SetText(InputRangeControl.CalcFromFactor, "0"); m_InputControlPolynom.SetText(InputRangeControl.CalcFromBase, "2"); m_InputControlPolynom.SetText(InputRangeControl.CalcFromExp, "3"); m_InputControlPolynom.SetText(InputRangeControl.CalcFromSum, "-1"); m_InputControlPolynom.SetText(InputRangeControl.CalcToFactor, "1"); m_InputControlPolynom.SetText(InputRangeControl.CalcToBase, "7"); m_InputControlPolynom.SetText(InputRangeControl.CalcToExp, "2"); m_InputControlPolynom.SetText(InputRangeControl.CalcToSum, "0"); } else if (sender == btnGeneratePrimesEuler) { p = new EulerPolynom(); m_InputControlPolynom.SetText(InputRangeControl.FreeFrom, "0"); m_InputControlPolynom.SetText(InputRangeControl.FreeTo, "39"); } if (p != null) { m_InputControlPolynom.Polynom = p; SetInputControl(m_InputControlPolynom); } }
void m_InputControlPolynomRange_Execute( IPolynom p, PrimesBigInteger from, PrimesBigInteger to, PrimesBigInteger numberOfCalculations, PrimesBigInteger numberOfFormulars, IList <KeyValuePair <string, Primes.Library.Range> > parameters) { log.Clear(); log.Columns = 2; log.ShowCounter = false; m_PolynomRangeExecuter.From = from; m_PolynomRangeExecuter.To = to; m_PolynomRangeExecuter.Function = p; m_PolynomRangeExecuter.Parameters = parameters; m_PolynomRangeExecuter.NumberOfCalculations = numberOfCalculations; m_PolynomRangeExecuter.NumberOfFormulars = numberOfFormulars; m_PolynomRangeExecuter.Execute(); }
public InputControlPolynom(IPolynom expression) : this() { Polynom = expression; }
void m_InputControlPolynom_Execute(PrimesBigInteger from, PrimesBigInteger to, IPolynom p) { log.Clear(); log.Columns = 2; log.ShowCounter = true; m_ExpressionExecuter.Function = p; m_ExpressionExecuter.Execute(from, to); }
void m_PolynomRangeExecuter_FunctionResult(IPolynom p, PrimesBigInteger primesCount, PrimesBigInteger primesCountReal, PrimesBigInteger counter) { int row = log.NewLine(); log.Info(p.ToString(), 0, row); PrimesBigInteger percent = primesCount.Multiply(PrimesBigInteger.ValueOf(100)).Divide(counter); PrimesBigInteger percentAbsolut = primesCountReal.Multiply(PrimesBigInteger.ValueOf(100)).Divide(counter); /*Most Primes*/ if (m_MostPrimes == null) { m_MostPrimes = percent; m_ListMostPrimes.Add((p as SecondDegreePolynom).Clone() as IPolynom); } else { if (m_MostPrimes.Equals(percent)) { m_ListMostPrimes.Add((p as SecondDegreePolynom).Clone() as IPolynom); } else { if (m_MostPrimes.CompareTo(percent) < 0) { m_MostPrimes = percent; m_ListMostPrimes.Clear(); m_ListMostPrimes.Add((p as SecondDegreePolynom).Clone() as IPolynom); } } } if (m_MostPrimesAbsolut == null) { m_MostPrimesAbsolut = percentAbsolut; m_ListMostPrimesAbsolut.Add((p as SecondDegreePolynom).Clone() as IPolynom); } else { if (m_MostPrimesAbsolut.Equals(percentAbsolut)) { m_ListMostPrimesAbsolut.Add((p as SecondDegreePolynom).Clone() as IPolynom); } else { if (m_MostPrimesAbsolut.CompareTo(percentAbsolut) < 0) { m_MostPrimesAbsolut = percentAbsolut; m_ListMostPrimesAbsolut.Clear(); m_ListMostPrimesAbsolut.Add((p as SecondDegreePolynom).Clone() as IPolynom); } } } /*Least Primes*/ if (m_LeastPrimes == null) { m_LeastPrimes = percent; m_ListLeastPrimes.Add((p as SecondDegreePolynom).Clone() as IPolynom); } else { if (m_LeastPrimes.Equals(percent)) { m_ListLeastPrimes.Add((p as SecondDegreePolynom).Clone() as IPolynom); } else { if (m_LeastPrimes.CompareTo(percent) > 0) { m_LeastPrimes = percent; m_ListLeastPrimes.Clear(); m_ListLeastPrimes.Add((p as SecondDegreePolynom).Clone() as IPolynom); } } } m_ResultCounter = m_ResultCounter.Add(counter); m_PrimesCounter = m_PrimesCounter.Add(primesCount); m_PolynomCounter = m_PolynomCounter.Add(PrimesBigInteger.One); log.Info(string.Format(Primes.Resources.lang.WpfControls.Generation.PrimesGeneration.statGenerated, new object[] { primesCount, percent, primesCountReal }), 1, row); }