/// <summary> /// Экземпляр класса FractalAssociationParametrs, который содержить данные о двухмерном фрактале. /// </summary> /// <param name="IterMatrix">Матрица итераций.</param> /// <param name="CreateDate">Дата когда был завершен фрактал.</param> /// <param name="CalculateTime">Время затраченное на вычисления фрактала.</param> /// <param name="IterCount">Количество итераций, при котором строитьс фрактал.</param> /// <param name="LeftEdge">Левая граница, наименьшая координата на псевдореальной оси абцисс в декартовой системе координат, укаживающая откуда на псевдореальной оси началась постройка фрактала.</param> /// <param name="RightEdge">Правая граница, наибольшая координата на псевдореальной оси абцисс в декартовой системе координат, укаживающая до куда по оси абцисс строиться фрактал.</param> /// <param name="TopEdge">Верхняя граница, наименьшая координат на псевдореальной оси ординат в декартовой системе координат, укаживающая откуда стоиться фрактал.</param> /// <param name="BottomEdge">Ближайшая граница, наименьшая координата на псевдореальной оси апликат в декартовой системе координат, укаживающая откуда строиться фрактал.</param> public FractalAssociationParametrs(ulong[][] IterMatrix, DateTime CreateDate, TimeSpan CalculateTime, ulong IterCount, BigRational LeftEdge, BigRational RightEdge, BigRational TopEdge, BigRational BottomEdge, FractalType FType, object Unique = null) { _fap_create_date = CreateDate; _fap_calculating_time = CalculateTime; _fap_iteration_count = IterCount; _fap_left_edge = LeftEdge; _fap_right_edge = RightEdge; _fap_top_edge = TopEdge; _fap_bottom_edge = BottomEdge; _fap_near_edge = BigRational.Zero; _fap_far_edge = BigRational.Zero; _fap_aplicate_intervals_count = 0; _fap_2d_iterations_matrix = IterMatrix; _fap_3d_segments_matrix = null; _type_of_the_fractal = FType; _unique_parameter = Unique; }
public override double[] GetDoubleFirstInserts(BigInteger[] args) { BigRational absciss_start = _2df_get_br_abciss_start(), absciss_interval = _2df_get_br_abciss_interval_length(); BigRational[] be_Result = new BigRational[4]; be_Result[0] = absciss_start + (absciss_interval * new BigRational(args[0], BigInteger.One)); be_Result[1] = absciss_start + (absciss_interval * new BigRational(args[1], BigInteger.One)); BigRational ordinate_start = _2df_get_br_ordinate_start(), ordinate_interval = _2df_get_br_ordinate_interval_length(); be_Result[2] = ordinate_start + (ordinate_interval * new BigRational(args[2], BigInteger.One)); be_Result[3] = ordinate_start + (ordinate_interval * new BigRational(args[3], BigInteger.One)); double[] Result = new double[4]; Result[0] = ((double)be_Result[0].Numerator) / ((double)be_Result[0].Denominator); Result[1] = ((double)be_Result[1].Numerator) / ((double)be_Result[1].Denominator); Result[2] = ((double)be_Result[2].Numerator) / ((double)be_Result[2].Denominator); Result[3] = ((double)be_Result[3].Numerator) / ((double)be_Result[3].Denominator); return(Result); }
/// <summary> /// Конвертирует BigRational в double /// </summary> /// <param name="arg">BigRational для конвертации.</param> /// <returns>Число двойной точности представляющее BigRational.</returns> protected static double conver_to_double(BigRational arg) { return(((double)((long)arg.Numerator)) / (long)arg.Denominator); }
protected BigRational _2df_get_br_ordinate_interval_length() { return(BigRational.Divide(BigRational.ConvertToBigRational(_2df_bottom_edge) - BigRational.ConvertToBigRational(_2df_top_edge), new BigRational(_2df_imagine_height))); }
protected BigRational _2df_get_br_abciss_interval_length() { return(BigRational.Divide(BigRational.ConvertToBigRational(_2df_right_edge) - BigRational.ConvertToBigRational(_2df_left_edge), new BigRational(_2df_imagine_width))); }
public BigComplex(long value) { Real = new BigRational(value, 1); Imagine = BigRational.Zero; }
public BigComplex(double Re, double Im) { Real = BigRational.ConvertToBigRational(Re); Imagine = BigRational.ConvertToBigRational(Im); }
public BigComplex(BigRational r, BigRational i) { Real = r; Imagine = i; }
public BigComplex() { Real = Imagine = BigRational.Zero; }