示例#1
0
 private void ArrangeColumns()
 {
     this.Columns = new List <EventColumn>();
     this.eventParts.Sort(new EventPartComparerCustom(this.SortDirections));
     foreach (EventPart current in this.eventParts)
     {
         current.EvColumn = null;
     }
     this.CreateColumn();
     foreach (EventPart current2 in this.eventParts)
     {
         foreach (EventColumn current3 in this.Columns)
         {
             if (current3.CanAdd(current2))
             {
                 current3.Add(current2);
                 break;
             }
         }
         if (current2.EvColumn == null)
         {
             EventColumn eventColumn = this.CreateColumn();
             eventColumn.Add(current2);
         }
     }
 }
示例#2
0
        private void _Integrate(int part)
        {
            Result = (-func(a) + func(b)) / 2;

            int    partsSize = (int)quantity / parts;
            int    ost       = quantity - partsSize * parts;
            int    st        = part * partsSize + ((part < ost) ? part : ost);
            int    fn        = (part + 1) * partsSize + ((part + 1 < ost) ? part : (ost - 1));
            double s         = 0;

            for (int i = st; i <= fn; i++)
            {
                var f = func(a + h * (i + (1 / (double)2)));
                s           += f;
                donePercent += 1;
                EventProgress?.Invoke(donePercent);
                EventColumn?.Invoke((a + h * (i + (1 / (double)2))), f);
            }
            Monitor.Enter(res);
            try
            {
                Result += s;
            }
            finally
            {
                Monitor.Exit(res);
            }
        }
示例#3
0
        private EventColumn CreateColumn()
        {
            EventColumn eventColumn = new EventColumn();

            this.Columns.Add(eventColumn);
            eventColumn.Block = this;
            return(eventColumn);
        }
示例#4
0
        private void _Integrate(int part)
        {
            Result = (-func(a) + func(b)) / 2;
            int partsSize = (int)q / parts;
            int ost       = q - partsSize * parts;
            int st        = part * partsSize;

            if (part < ost)
            {
                st += part;
            }
            else
            {
                st += ost;
            }
            int fn = (part + 1) * partsSize;

            if (part + 1 < ost)
            {
                fn += part;
            }
            else
            {
                fn += ost - 1;
            }
            double s = 0;

            for (int i = st; i <= fn; i++)
            {
                var f = func(a + h * (i + (1 / (double)2)));
                s  += f;
                dP += 1;
                EventProgress?.Invoke(dP);
                EventColumn?.Invoke((a + h * (i + (1 / (double)2))), f);
            }
            Monitor.Enter(res);
            try
            {
                Result += s;
            }
            finally
            {
                Monitor.Exit(res);
            }
        }