/// <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]); } }
/// <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)); } }