Beispiel #1
0
 /// <summary>
 /// Задание функции как совокупности комплексных функций многих переменных
 /// </summary>
 /// <param name="mas"></param>
 public CkToCnFunc(params CnToCFunction[] mas)
 {
     FuncMas = new CnToCFunction[mas.Length];
     for (int i = 0; i < FuncMas.Length; i++)
     {
         FuncMas[i] = new CnToCFunction(mas[i]);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Каррирование отображения в соответствии с параметрами
        /// </summary>
        /// <param name="C">Параметр каррирования</param>
        /// <param name="c">Фиксированные аргументы</param>
        /// <returns></returns>
        public CkToCnFunc CarrByFirstOrLastArgs(CarringType C = CarringType.LastArgs, params Complex[] c)
        {
            if (func == null)
            {
                CnToCFunction[] mas = new CnToCFunction[EDimention];

                switch (C)
                {
                case CarringType.FirstArgs:
                    for (int i = 0; i < mas.Length; i++)
                    {
                        mas[i] = (CVectors v) => this.FuncMas[i](new CVectors(Expendator.Union(c, v.ComplexMas)));
                    }
                    break;

                default:
                    for (int i = 0; i < mas.Length; i++)
                    {
                        mas[i] = (CVectors v) => this.FuncMas[i](new CVectors(Expendator.Union(v.ComplexMas, c)));
                    }
                    break;
                }
                return(new CkToCnFunc(mas));
            }
            else
            {
                VecToVec h;
                switch (C)
                {
                case CarringType.FirstArgs:
                    h = (CVectors v) => func(new CVectors(Expendator.Union(c, v.ComplexMas)));
                    break;

                default:
                    h = (CVectors v) => func(new CVectors(Expendator.Union(v.ComplexMas, c)));
                    break;
                }
                return(new CkToCnFunc(h));
            }
        }