protected override void _m_create_part_of_fractal(_2DFractal.AbcissOrdinateHandler p_aoh, _2DFractal._2DFractalHelper fractal_helper)
        {
            ulong max_iter=f_iterations_count, iterations;
            ulong[][] iter_matrix=fractal_helper.CommonMatrix;
            double[][] Ratio_matrix = fractal_helper.GetRatioMatrix(),radian_matrix=((RadianMatrix)fractal_helper.GetUnique(typeof(RadianMatrix))).Matrix;
            double[] abciss_points = fractal_helper.AbcissRealValues, ordinate_points = fractal_helper.OrdinateRealValues;
            double abciss_point, dist, pdist=0D,abciss_start=_2df_get_double_abciss_start(),abciss_interval_length=_2df_get_double_abciss_interval_length(),
            ordinate_start=_2df_get_double_ordinate_start(),ordinate_interval_length=_2df_get_double_ordinate_interval_length();
            FractalCloudPoints fcps = (FractalCloudPoints)fractal_helper.GetUnique();
            FractalCloudPoint[][][] fcp_matrix = fcps.fractalCloudPoint;
            int percent_length = fractal_helper.PercentLength, current_percent_state = percent_length;
            List<FractalCloudPoint> fcp_list=new List<FractalCloudPoint>();
            FractalCloudPoint fcp;
            int fcp_height = ordinate_points.Length / _ordinate_step_length + (ordinate_points.Length % _ordinate_step_length != 0 ? 1 : 0);
            Complex z = new Complex(), z0 = new Complex(),last_valid_z=new Complex();
            for (; p_aoh.abciss < p_aoh.end_of_abciss;p_aoh.abciss++ )
            {
                abciss_point = abciss_points[p_aoh.abciss];
                radian_matrix[p_aoh.abciss] = new double[ordinate_points.Length];
                if (p_aoh.abciss % _abciss_step_length == 0) fcp_matrix[p_aoh.abciss / _abciss_step_length] = new FractalCloudPoint[fcp_height][];
                for(;p_aoh.ordinate<p_aoh.end_of_ordinate;p_aoh.ordinate++)
                {
                    iterations = 0;
                    dist = 0D;

                    z0.Real = abciss_point;
                    z0.Imagine = ordinate_points[p_aoh.ordinate];
                    z.Real = z0.Real;
                    z.Imagine = z0.Imagine;
                    if(((p_aoh.abciss%_abciss_step_length)==0)&&((p_aoh.ordinate%_ordinate_step_length)==0))
                    {
                        fcp_list.Clear();
                        for(;iterations<(ulong)_max_ammount_at_trace&&dist<=4D;iterations++)
                        {
                            pdist = dist;
                            last_valid_z.Real = z.Real;
                            last_valid_z.Imagine = z.Imagine;
                            z.tsqr();
                            z.Real += z0.Real;
                            z.Imagine += z0.Imagine;
                            dist = (z.Real * z.Real + z.Imagine * z.Imagine);
                            fcp.AbcissLocation = (int)((z.Real - abciss_start) / abciss_interval_length);
                            fcp.OrdinateLocation = (int)((z.Imagine - ordinate_start) / ordinate_interval_length);
                            fcp_list.Add(fcp);
                        }
                        fcp_matrix[p_aoh.abciss/_abciss_step_length][p_aoh.ordinate/_ordinate_step_length] = fcp_list.ToArray();
                    }
                    for (; iterations < max_iter && dist <= 4D; iterations++)
                    {
                        pdist = dist;
                        last_valid_z.Real = z.Real;
                        last_valid_z.Imagine = z.Imagine;
                        z.tsqr();
                        z.Real += z0.Real;
                        z.Imagine += z0.Imagine;
                        dist = (z.Real * z.Real + z.Imagine * z.Imagine);
                    }
                    Ratio_matrix[p_aoh.abciss][p_aoh.ordinate] = pdist;
                    iter_matrix[p_aoh.abciss][p_aoh.ordinate] = iterations;
                    radian_matrix[p_aoh.abciss][p_aoh.ordinate] = Math.Atan2(last_valid_z.Imagine,last_valid_z.Real);
                }
                p_aoh.ordinate = 0;
                if((--current_percent_state)==0)
                {
                    current_percent_state = percent_length;
                    f_new_percent_in_parallel_activate();
                }
            }
        }