(*~\Глагол\Отделы\ЧисАн\32\к\Пара\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                        ОТДЕЛ кпМатем;
(*============================================================================*
 * НАЗНАЧЕНИЕ: функции комплексной переменной,
 *              представленной парой действительных вида дМатем.Вещ
 *----------------------------------------------------------------------------*
 * ПРИМЕЧАНИЯ: после вызова задачи переменная <дМатем.код> может стать # 0,
 * это означает, что ответ задачи содержит не результат вычислений, а
 * особое значение.
 *============================================================================*)

ИСПОЛЬЗУЕТ
 дМатем   ИЗ "..\..\..\..\..\Отделы\ЧисАн\32\д\";

ВИД                                  
        (* вид Вещ - это удвоенная точность 32 разряда (6 десятичных знаков)  *)
  Вещ = дМатем.Вещ;                   (* локально *)

(*----------------------------------------------------------------------------*
 * Вид обрабатываемых данных: пара чисел (из 2х ВЕЩ) /кпМатем.Вид = Вещ/
 *----------------------------------------------------------------------------*)
(*
                          вместо
ВИД
  Вид- = НАБОР
              д-,м-:Вещ
         КОН;

  Вид = Вещ;           (* введём вид "Комплексная Пара" /кпКомпл.Вид = Вещ/   *)
*)

(*----------------------------------------------------------------------------*
 * Комплексные постоянные
 *----------------------------------------------------------------------------*)
ПЕР
  дКомплексногоНОЛЯ-,      мКомплексногоНОЛЯ-  :Вещ;    (* ( 0;            0) *)
  дДействЕДИНИЦы-,         мДействЕДИНИЦы-     :Вещ;    (* ( 1;            0) *)
  дМинусДействЕДИНИЦы-,    мМинусДействЕДИНИЦы-:Вещ;    (* (-1;            0) *)
  дМнимойЕДИНИЦы-,         мМнимойЕДИНИЦы-     :Вещ;    (* ( 0;            1) *)
  дМинусМнимойЕДИНИЦы-,    мМинусМнимойЕДИНИЦы-:Вещ;    (* ( 0;           -1) *)

  дДействМаксВещ-,         мДействМаксВещ-     :Вещ;    (* (Матем.МаксВещ; 0) *)
  дДействПолПИ-,           мДействПолПИ-       :Вещ;    (* (Матем.ПолПИ;   0) *)

  NBS:РЯД 8 ИЗ Вещ;  (* ряд для Г-функции *)


(*-оооооооооооооо- опережающие определения/заготовки задач -ооооооооооооооооо-*)


(*----------------------------------------------------------------------------*
 * Стандартные функции: норма, модуль, аргумент (экспоненты),
 *                      знак и обмен 2-х комплексных чисел в виде пары веществ.
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ знакЧ-(Zд-,Zм-:Вещ):ЦЕЛ;  (* вернуть знак (-1,0,+1) действительной или
                                                          мнимой части компл. числа *)
ЗАДАЧА^ норма-(Zд-,Zм-:Вещ):Вещ; (* Norma(Z)=Zд^2+Zм^2        - норма  компл. числа *)
ЗАДАЧА^ мод-(Zд-,Zм-:Вещ):Вещ;        (* |Z|=квкор(Zд^2+Zм^2) - модуль компл. числа *)
ЗАДАЧА^ arg-(Zд-,Zм-:Вещ):Вещ;     (* arg(Z)=arctg2(Zм,Zд)  - аргумент компл. числа *)

ЗАДАЧА^ обмен-(Zд+,Zм+,Кд+,Км+:Вещ);  (* <Zд,Zм> <- <Кд,Км>; <Кд,Км> <- <Zд,Zм> *)

(*----------------------------------------------------------------------------*)
(* Собрать из двух действительных одно комплексное
                                                        в алгебраическом виде *)
ЗАДАЧА^ алгебрВид-(Дейст-,Мним-:Вещ; Кд+,Км+:Вещ); (* Кд:=Дейст; Км:=Мним *)

(*----------------------------------------------------------------------------*)
(* Собрать из двух действительных одно комплексное
                                       в тригонометрическом виде (экспонента) *)
ЗАДАЧА^ тригонВид-(r-,тета-:Вещ; Кд+,Км+:Вещ);     (* К :=r*exp(тета)         *)

(*----------------------------------------------------------------------------*
 * арифметические действия над комплексными в виде пары веществ.
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ отрицание-(Zд-,Zм-,Кд+,Км+:Вещ);              (* [К:=-Z]  Кд:=-Zд;   Км:=-Zм; *)
ЗАДАЧА^ сопряжение-(Zд-,Zм-,Кд+,Км+:Вещ);             (* [К:=Z*]  Кд:= Zд;   Км:=-Zм; *)
(*
ЗАДАЧА^ минус-(к+:Вид);         (* к:=-к - минус (самоотрицание) комплексного к *)
ЗАДАЧА^ сопрячьсебя-(к+:Вид);   (* к:=к* - самосопряжение        комплексного к *)
*)
ЗАДАЧА^ сложить-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);      (* [К:=A+B] Кд:=Aд+Bд; Км:=Aм+Bм; *)
ЗАДАЧА^ вычесть-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);      (* [К:=A-B] Кд:=Aд-Bд; Км:=Aм-Bм; *)
(*
ЗАДАЧА^ добавить-(b-,к+:Вид);   (* к+=b;   к:=к+b - увеличить <к+> на комплексное <b> *)
ЗАДАЧА^ отнять-(b-,к+:Вид);     (* к-=b;   к:=к-b - уменьшить <к+> на комплексное <b> *)
*)
ЗАДАЧА^ умножить-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);     (* [К:=A*B] - умножение двух комплексных *)
ЗАДАЧА^ умнНаВещ-(Zд-,Zм-:Вещ; v:Вещ; Кд+,Км+:Вещ); (* [К:=Z*v] Кд:=Zд*v;  Км:=Zм*v; - умножение на вещ.*)
(*
ЗАДАЧА^ увеличВдейств-(  v:Вещ; к+:Вид);(* к*=v; к:=к*v - увеличить <к+> в действ. число v раз *)
ЗАДАЧА^ увеличВкомпл-(  b-:Вид; к+:Вид);(* к*=b; к:=к*b - увеличить <к+> в  компл. число a раз *)
*)
ЗАДАЧА^ делить-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);       (* [К:=A/B] - деление   двух комплексных *)
ЗАДАЧА^ делНаВещ-(Zд-,Zм-:Вещ; v:Вещ; Кд+,Км+:Вещ); (* [К:=Z/v] Кд:=Zд/v;  Км:=Zм/v; - деление   на вещ.*)
(*
ЗАДАЧА^ уменьшВдейств-(  v:Вещ; к+:Вид);(* к/=v; к:=к/v - уменьшить <к+> в действ. число v раз *)
ЗАДАЧА^ уменьшВкомпл-(  b-:Вид; к+:Вид);(* к/=b; к:=к/b - уменьшить <к+> в  компл. число a раз *)

ЗАДАЧА^ суммаПроизведений-(a-,b-,sum+:кнМатем.Вид); (* sum:=sum+a*b - сумма
                                         произведений двух комплексных в ДПФi *)
*)
(*----------------------------------------------------------------------------*
 * Основные математические функции: показательные (корни и экспоненты),
 *                                  логарифмические 
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ кв-(Zд-,Zм-,Кд+,Км+:Вещ);      (* К:=Z^(+2); к:=кв(Z) - квадрат комплексного Z  *)
ЗАДАЧА^ квкор-(Zд-,Zм-,Кд+,Км+:Вещ);              (* К:=квкор(Z) - кв.корень из комплексного*)
ЗАДАЧА^ корни-(Zд-,Zм-:Вещ; m,n:ЦЕЛ; Кд+,Км+:Вещ);(* К:=Z^(1/n), m=0..n-1 - все n-корней комплексного Z *)
(* задача корни должна вычислить все 'n' корней комплексного Z,
   если при её вызове изменять 'm' от 0 до n-1 *)

ЗАДАЧА^ exp-(Zд-,Zм-,Кд+,Км+:Вещ);                (* К:=<дМатем.exp(Zд)*дМатем.cos(Zм);
                                                         дМатем.exp(Zд)*дМатем.sin(Zм)> *)
ЗАДАЧА^ ln-(Zд-,Zм-,Кд+,Км+:Вещ);                 (* К:=ln (Z) - комплексный Ln *)
ЗАДАЧА^ lnГ-(Zд-,Zм-,Кд+,Км+:Вещ);                (* К:=ln( Г(Z) ) - Ln Г-функции от комплексного Z *)


(*----------------------------------------------------------------------------*
 * Степенные функции комплексного аргумента в виде пары веществ.
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ степКЦ-(Zд-,Zм-:Вещ; n:ЦЕЛ; Кд+,Км+:Вещ); (* К:=Z^n - степень комплексного ЦЕЛая *)
ЗАДАЧА^ степКВ-(Zд-,Zм-:Вещ; v:Вещ; Кд+,Км+:Вещ); (* К:=Z^v - степень комплексного действительная *)
ЗАДАЧА^ степКК-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);     (* К:=A^B - степень комплексного комплексная *)

(*----------------------------------------------------------------------------*
 * Тригонометрические функции комплексного аргумента в виде пары веществ.
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ sin-(Zд-,Zм-,Кд+,Км+:Вещ);      
ЗАДАЧА^ arcsin-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ cos-(Zд-,Zм-,Кд+,Км+:Вещ);      
ЗАДАЧА^ arccos-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ tg-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ arctg-(Zд-,Zм-,Кд+,Км+:Вещ);   

(*----------------------------------------------------------------------------*
 * Гиперболические функции комплексного аргумента в виде пары веществ.
 *----------------------------------------------------------------------------*)

ЗАДАЧА^ sh-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ ch-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ th-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ Arsh-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ Arch-(Zд-,Zм-,Кд+,Км+:Вещ);
ЗАДАЧА^ Arth-(Zд-,Zм-,Кд+,Км+:Вещ);

(*----------------------------------------------------------------------------*
 * Логарифмические, показательные и степенные функции комплексного аргумента
 *----------------------------------------------------------------------------*)



(*=рррррррррррррррррррррррр= реализация задач =рррррррррррррррррррррррррррррр=*)


(*============================================================================*
 * Стандартные функции: норма, модуль, аргумент (экспоненты),
 *                      знак и обмен 2-х комплексных чисел в виде пары веществ.
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА знакЧ-(Zд-,Zм-:Вещ):ЦЕЛ;  (* вернуть знак (-1,0,+1) действительной или
                                                          мнимой части компл. числа *)
УКАЗ
  ЕСЛИ  Zд > 0 ТО
    ВОЗВРАТ 1
  АЕСЛИ Zд < 0 ТО
    ВОЗВРАТ -1
  АЕСЛИ Zм > 0 ТО
    ВОЗВРАТ 1
  АЕСЛИ Zм < 0 ТО
    ВОЗВРАТ -1
  ИНАЧЕ
    ВОЗВРАТ 0 
  КОН
КОН знакЧ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА норма-(Zд-,Zм-:Вещ):Вещ; (* Norma(Z)=Zд^2+Zм^2 - норма компл. числа *)
УКАЗ
  ВОЗВРАТ дМатем.кв(Zд) + дМатем.кв(Zм)
КОН норма;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА мод-(Zд-,Zм-:Вещ):Вещ;        (* |Z|=квкор(Zд^2+Zм^2) - модуль компл. числа *)
УКАЗ
  ВОЗВРАТ дМатем.Пифагор(Zд,Zм)
КОН мод;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА arg-(Zд-,Zм-:Вещ):Вещ;     (* arg(Z)=arctg2(Zм,Zд)  - аргумент компл. числа *)
УКАЗ
  ВОЗВРАТ дМатем.arctg2(Zм,Zд)
КОН arg;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА обмен-(Zд+,Zм+,Кд+,Км+:Вещ);  (* <Zд,Zм> <- <Кд,Км>; <Кд,Км> <- <Zд,Zм> *)
ПЕР
  дT,мT:Вещ;
УКАЗ
  дT:=Zд; мT:=Zм;
  Zд:=Кд; Zм:=Км;
  Кд:=дT; Км:=мT
КОН обмен;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА квант3-(Zд-,Zм-,Кд+,Км+:Вещ);           (* К=sign(Z) *)
(* Знаковое  sign-преобразовние  или
   КВАНТование компонент комплексного числа 3-мя уровнями: [-1, 0,+1] *)
УКАЗ
  ЕСЛИ МОДУЛЬ(Zд)=0 ТО  (* |Zд| < дМатем.МашинEps=+1.E-5 *)
           Кд:=0
  АЕСЛИ    Zд > 0 ТО
           Кд:=1
  ИНАЧЕ (* Zд < 0 ТО *)
           Кд:=-1
  КОН;
  ЕСЛИ МОДУЛЬ(Zм)=0 ТО  (* |Zм| < дМатем.МашинEps=+1.E-5 *)
           Км:=0
  АЕСЛИ    Zм > 0 ТО
           Км:=1
  ИНАЧЕ (* Zм < 0 ТО *)
           Км:=-1
  КОН
КОН квант3;


(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(* Собрать из двух действительных одно комплексное
                                                        в алгебраическом виде *)
ЗАДАЧА алгебрВид-(Дейст-,Мним-:Вещ; Кд+,Км+:Вещ); (* Кд:=Дейст; Км:=Мним *)
УКАЗ
  Кд:=Дейст;
  Км:=Мним
КОН алгебрВид;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(* Собрать из двух действительных одно комплексное
                                       в тригонометрическом виде (экспонента) *)
ЗАДАЧА тригонВид-(r-,тета-:Вещ; Кд+,Км+:Вещ);     (* К :=r*exp(тета)         *)
УКАЗ
  алгебрВид(r*дМатем.cos(тета),
            r*дМатем.sin(тета), Кд,Км)
КОН тригонВид;


(*============================================================================*
 * арифметические действия над комплексными в виде пары веществ.
 *============================================================================*)

(*
ЗАДАЧА^ минус-(к+:Вид);         (* к:=-к - минус (самоотрицание) комплексного к *)
ЗАДАЧА^ сопрячьсебя-(к+:Вид);   (* к:=к* - самосопряжение        комплексного к *)

ЗАДАЧА^ добавить-(b-,к+:Вид);   (* к+=b;   к:=к+b - увеличить <к+> на комплексное <b> *)
ЗАДАЧА^ отнять-(b-,к+:Вид);     (* к-=b;   к:=к-b - уменьшить <к+> на комплексное <b> *)

ЗАДАЧА^ увеличВдейств-(  v:Вещ; к+:Вид);(* к*=v; к:=к*v - увеличить <к+> в действ. число v раз *)
ЗАДАЧА^ увеличВкомпл-(  b-:Вид; к+:Вид);(* к*=b; к:=к*b - увеличить <к+> в  компл. число a раз *)

ЗАДАЧА^ уменьшВдейств-(  v:Вещ; к+:Вид);(* к/=v; к:=к/v - уменьшить <к+> в действ. число v раз *)
ЗАДАЧА^ уменьшВкомпл-(  b-:Вид; к+:Вид);(* к/=b; к:=к/b - уменьшить <к+> в  компл. число a раз *)

ЗАДАЧА^ суммаПроизведений-(a-,b-,sum+:кнМатем.Вид); (* sum:=sum+a*b - сумма
                                         произведений двух комплексных в ДПФi *)
*)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА отрицание-(Zд-,Zм-,Кд+,Км+:Вещ);              (* [К:=-Z]  Кд:=-Zд;   Км:=-Zм; *)
УКАЗ
  алгебрВид(-Zд,
            -Zм, Кд,Км)
КОН отрицание;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА сопряжение-(Zд-,Zм-,Кд+,Км+:Вещ);             (* [К:=Z*]  Кд:= Zд;   Км:=-Zм; *)
УКАЗ
  алгебрВид( Zд,
            -Zм, Кд,Км)
КОН сопряжение;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА сложить-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);      (* [К:=A+B] Кд:=Aд+Bд; Км:=Aм+Bм; *)
УКАЗ
  алгебрВид(Aд + Bд,
            Aм + Bм, Кд,Км)
КОН сложить;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА вычесть-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);      (* [К:=A-B] Кд:=Aд-Bд; Км:=Aм-Bм; *)
УКАЗ
  алгебрВид(Aд - Bд,
            Aм - Bм, Кд,Км)
КОН вычесть;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА умножить-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);     (* [К:=A*B] - умножение двух комплексных *)
УКАЗ
  алгебрВид(Aд*Bд - Aм*Bм,
            Aд*Bм + Aм*Bд, Кд,Км)
КОН умножить;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА умнНаВещ-(Zд-,Zм-:Вещ; v:Вещ; Кд+,Км+:Вещ); (* [К:=Z*v] Кд:=Zд*v;  Км:=Zм*v; - умножение на вещ.*)
УКАЗ
  алгебрВид(Zд*v,
            Zм*v, Кд,Км)
КОН умнНаВещ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА делить-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);       (* [К:=A/B] - деление   двух комплексных *)
ПЕР
  врем:Вещ;
УКАЗ
  ЕСЛИ (Bд = 0) И (Bм = 0) ТО
    дМатем.код:=дМатем.ПЕРЕПОЛНЕНИЕ;
(*
  алгебрВид(кпМатем.дДействМаксВещ,
            кпМатем.мДействМаксВещ, Кд,Км)
*)
        Кд:=кпМатем.дДействМаксВещ;
        Км:=кпМатем.мДействМаксВещ;
    ВОЗВРАТ
  КОН;
  врем:=дМатем.кв(Bд) + дМатем.кв(Bм);
  алгебрВид((Aд*Bд + Aм*Bм)/врем,
            (Aм*Bд - Aд*Bм)/врем, Кд,Км)
КОН делить;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА делНаВещ-(Zд-,Zм-:Вещ; v:Вещ; Кд+,Км+:Вещ); (* [К:=Z/v] Кд:=Zд/v;  Км:=Zм/v; - деление   на вещ.*)
УКАЗ
  алгебрВид(Zд/v,
            Zм/v, Кд,Км)
КОН делНаВещ;


(*============================================================================*
 * Основные математические функции: показательные (корни и экспоненты),
 *                                  логарифмические 
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА кв-(Zд-,Zм-,Кд+,Км+:Вещ);      (* К:=Z^(+2); к:=кв(Z) - квадрат комплексного Z  *)
УКАЗ
  алгебрВид(Zд*Zд - Zм*Zм,
(*          z.д*z.м + z.м*z.д,к)       *)
            Zд*Zм*2,          Кд,Км) 
КОН кв;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА квкор-(Zд-,Zм-,Кд+,Км+:Вещ);              (* К:=квкор(Z) - кв.корень из комплексного*)
ПЕР
  r,тета:Вещ;
УКАЗ
  r:=мод(Zд,Zм);
  тета:=arg(Zд,Zм);
  ЕСЛИ r = 0 ТО
    Кд:=кпМатем.дКомплексногоНОЛЯ;
    Км:=кпМатем.мКомплексногоНОЛЯ
  ИНАЧЕ
    тригонВид(дМатем.квкор(r),
              дМатем.уголВПи(0.5*тета), Кд,Км)
  КОН
КОН квкор;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА корни-(Zд-,Zм-:Вещ; m,n:ЦЕЛ; Кд+,Км+:Вещ);(* К:=Z^(1/n), m=0..n-1 - все n-корней комплексного Z *)
(* задача 'корни' должна вычислить все 'n' корней комплексного Z,
   если при её вызове изменять 'm' от 0 до n-1 *)
ПЕР
  r,тета:Вещ;
УКАЗ
  ЕСЛИ (n <= 0) ИЛИ (m < 0) ИЛИ (m >= n) ТО
    дМатем.код:=дМатем.ВНЕОБЛАСТИ;
    Кд:=кпМатем.дКомплексногоНОЛЯ;
    Км:=кпМатем.мКомплексногоНОЛЯ;
    ВОЗВРАТ
  КОН;
  r:=мод(Zд,Zм);
  тета:=arg(Zд,Zм);
  ЕСЛИ r = 0 ТО
    Кд:=кпМатем.дКомплексногоНОЛЯ;
    Км:=кпМатем.мКомплексногоНОЛЯ
  ИНАЧЕ
    тригонВид(дМатем.степВВ(r,1/n),
              дМатем.уголВПи((тета + m*дМатем.ДваПИ)/n), Кд,Км)
  КОН
КОН корни;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА exp-(Zд-,Zм-,Кд+,Км+:Вещ);                (* К:=<дМатем.exp(Zд)*дМатем.cos(Zм);
                                                        дМатем.exp(Zд)*дМатем.sin(Zм)> *)
ПЕР
  expx:Вещ;
УКАЗ
  expx:=дМатем.exp(Zд);
  ЕСЛИ дМатем.код = 0 ТО
    алгебрВид(expx*дМатем.cos(Zм),
              expx*дМатем.sin(Zм), Кд,Км)
  ИНАЧЕ
    алгебрВид(expx,
                 0, Кд,Км)
  КОН
КОН exp;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ln-(Zд-,Zм-,Кд+,Км+:Вещ);                 (* К:=ln (Z) - комплексный Ln *)
ПЕР
  r,тета,lnr:Вещ;
УКАЗ
  r:=мод(Zд,Zм);
  тета:=arg(Zд,Zм);
  lnr:=дМатем.ln(r);
  ЕСЛИ дМатем.код = 0 ТО
    алгебрВид( lnr,
              тета, Кд,Км)
  ИНАЧЕ
    алгебрВид(-дМатем.МаксВещ,
                           0, Кд,Км)
  КОН
КОН ln;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА lnГприбл(Zд-,Zм-,Кд+,Км+:Вещ);                            (* локальная *)
(* Это NBS приближение Г функции в области (9 < Re(z) < 10; 0 < Im(z) < 10). 
 * Другие значения можно получить из: ln Г(z+1) = ln z + ln Г(z) *)
ПЕР
  i:ЦЕЛ;
  дСтепени,мСтепени:РЯД 8 ИЗ Вещ;
  дВрем1,мВрем1,
  дВрем2,мВрем2:Вещ;
УКАЗ
  ln(Zд,Zм,дВрем1,мВрем1);            (* ln(z)                      *)
  алгебрВид(Zд-0.5,
            Zм,    дВрем2,мВрем2);    (*  Z-0.5                     *)
  умножить(дВрем1,мВрем1,
      дВрем2,мВрем2, Кд,Км);          (* (Z-0.5)*ln(z)              *)
  вычесть(Кд,Км,Zд,Zм, Кд,Км);            (* (Z-0.5)*ln(z)-z            *)
  Кд:=Кд + 0.91893853320467274178;    (* (Z-0.5)*ln(z)-z+ln(2*ПИ)/2 *)
  дВрем1:=кпМатем.дДействЕДИНИЦы;
  мВрем1:=кпМатем.мДействЕДИНИЦы;
  делить(дВрем1,мВрем1,Zд,Zм, дСтепени[0],мСтепени[0]);  (*  z^(-1)  *)
  умножить(дСтепени[0],мСтепени[0],
      дСтепени[0],мСтепени[0], дВрем2,мВрем2);        (*  z^(-2)  *)
  ОТ i:=1 ДО 7 ВЫП
    умножить(дСтепени[i-1],мСтепени[i-1],
               дВрем2,       мВрем2, дСтепени[i],мСтепени[i]) 
  КОН;
  ОТ i:=7 ДО 0 ПО -1 ВЫП
    алгебрВид(NBS[i]*дСтепени[i],
              NBS[i]*мСтепени[i], дВрем1,мВрем1);
    сложить(Кд,Км, дВрем1,мВрем1, Кд,Км)        (* <Кд,Км>  = <Кд,Км> + <дВрем1,мВрем1> *)  
(*
    добавить(дВрем1,мВрем1, Кд,Км)              (* <Кд,Км> += <дВрем1,мВрем1> *)  
*)
  КОН 
КОН lnГприбл;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА lnГ-(Zд-,Zм-,Кд+,Км+:Вещ);                (* К:=ln( Г(Z) ) - Ln Г-функции от комплексного Z *)
ПЕР
  дLnZ,мLnZ,
  дX,мX,
  дY,мY:Вещ;
УКАЗ
  ЕСЛИ (Zд <= 0) И (Zм = 0) ТО
    ЕСЛИ (ЦЕЛЧАСТЬ(Zд - 1.D-8) - Zд) = 0 ТО           (* Отрицательное целое? *)
      дМатем.код:=дМатем.ОСОБЕННОСТЬ;
      Кд:=кпМатем.дДействМаксВещ;
      Км:=кпМатем.мДействМаксВещ;
      ВОЗВРАТ
    КОН 
  КОН;
  ЕСЛИ Zм < 0 ТО              (* III (IV) квадрант? *)
    сопряжение(Zд,Zм, дX,мX); (* Отображение во II (I) квадрант *)
    lnГ(дX,мX,дY,мY);         (* Попытаемся вычислить здесь *)
    сопряжение(дY,мY, Кд,Км)  (* Обратное отображение *)
  ИНАЧЕ
    ЕСЛИ Zд < 9 ТО            (* за пределами области определения NBS *)
      ln(Zд,Zм,дLnZ,мLnZ);
      алгебрВид(1+Zд,
                  Zм, дX,мX);
      lnГ(дX,мX,дY,мY);
      вычесть(дY,мY,дLnZ,мLnZ,Кд,Км)
    ИНАЧЕ
      lnГприбл(Zд,Zм,Кд,Км)   (* область определения NBS: 9 < Re(к) < 10 *)
    КОН 
  КОН 
КОН lnГ;


(*============================================================================*
 * Степенные функции комплексного аргумента в виде пары веществ.
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА степКЦ-(Zд-,Zм-:Вещ; n:ЦЕЛ; Кд+,Км+:Вещ); (* К:=Z^n - степень комплексного ЦЕЛая *)
ПЕР
  r,тета:Вещ;
УКАЗ
  r:=мод(Zд,Zм);
  тета:=arg(Zд,Zм);
  ЕСЛИ r = 0 ТО
    ЕСЛИ n = 0 ТО
      Кд:=кпМатем.дДействЕДИНИЦы;
      Км:=кпМатем.мДействЕДИНИЦы
    АЕСЛИ n > 0 ТО
      Кд:=кпМатем.дКомплексногоНОЛЯ;
      Км:=кпМатем.мКомплексногоНОЛЯ
    ИНАЧЕ
      дМатем.код:=дМатем.ОСОБЕННОСТЬ;
      Кд:=кпМатем.дДействМаксВещ;
      Км:=кпМатем.мДействМаксВещ
    КОН
  ИНАЧЕ
    тригонВид(дМатем.степВЦ(r,n),
              дМатем.уголВПи(n*тета), Кд,Км)
  КОН
КОН степКЦ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА степКВ-(Zд-,Zм-:Вещ; v:Вещ; Кд+,Км+:Вещ); (* К:=Z^v - степень комплексного действительная *)
ПЕР
  r,тета:Вещ;
УКАЗ
  r:=мод(Zд,Zм);
  тета:=arg(Zд,Zм);
  ЕСЛИ r = 0 ТО
    ЕСЛИ v = 0 ТО
      Кд:=кпМатем.дДействЕДИНИЦы;
      Км:=кпМатем.мДействЕДИНИЦы
    АЕСЛИ v > 0 ТО
      Кд:=кпМатем.дКомплексногоНОЛЯ;
      Км:=кпМатем.мКомплексногоНОЛЯ
    ИНАЧЕ
      дМатем.код:=дМатем.ОСОБЕННОСТЬ;
      Кд:=кпМатем.дДействМаксВещ;
      Км:=кпМатем.мДействМаксВещ
    КОН
  ИНАЧЕ
    тригонВид(дМатем.степВВ(r,v),
              дМатем.уголВПи(v*тета), Кд,Км)
  КОН
КОН степКВ;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА степКК-(Aд-,Aм-,Bд-,Bм-,Кд+,Км+:Вещ);     (* К:=A^B - степень комплексного комплексная *)
ПЕР
  дT,мT:Вещ;
УКАЗ
  ЕСЛИ (Aд = 0) И (Aм = 0) ТО
    ЕСЛИ (Bд = 0) И (Bм = 0) ТО
      Кд:=кпМатем.дДействЕДИНИЦы;
      Км:=кпМатем.мДействЕДИНИЦы  (* К= lim a^a = 1 при a -> 0 *)
    ИНАЧЕ
      Кд:=кпМатем.дКомплексногоНОЛЯ;
      Км:=кпМатем.мКомплексногоНОЛЯ       (* К= 0^b = 0, b > 0 *)
    КОН 
  ИНАЧЕ 
    ln(Aд,Aм, Кд,Км);             (* к=ln(a) -> к=a^b = exp(b*ln(a)) *)  
    умножить(Bд,Bм,Кд,Км,дT,мT);  (* t=b*к = b*ln(a)                 *)
    exp(дT,мT,Кд,Км)              (* к= exp(t)        = exp(b*ln(a)) *) 
  КОН
КОН степКК;


(*============================================================================*
 * Тригонометрические функции комплексного аргумента в виде пары веществ.
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА sin-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  sinx,cosx,
  sinhy,coshy:Вещ;
УКАЗ
  дМатем.sincos(Zд,sinx,cosx);
  дМатем.shch(Zм,sinhy,coshy);  
(*
  алгебрВид(sinx*coshy,
            cosx*sinhy, Кд,Км)
*)
       Кд:= sinx*coshy;
       Км:= cosx*sinhy
КОН sin;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА arcsin-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  rp,rm,s,врем,zx2:Вещ;
  дT,мT:Вещ;
УКАЗ
  дT:= Zм;
  мT:=-Zд;  (* T = Zм - i*Zд *)
  zx2:=2*Zд;
  s:= дМатем.кв(Zд)+дМатем.кв(Zм)+1;
  rp:=0.5*дМатем.квкор(s+zx2);
  rm:=0.5*дМатем.квкор(s-zx2);
  врем:=rp+rm;
(*
  алгебрВид(        дМатем.arcsin(rp - rm),
            знакЧ(дT,мT)*дМатем.ln(врем + дМатем.квкор(дМатем.кв(врем)-1)), Кд,Км);
*)
       Кд:=         дМатем.arcsin(rp - rm);
       Км:= знакЧ(дT,мT)*дМатем.ln(врем + дМатем.квкор(дМатем.кв(врем)-1))
КОН arcsin;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА cos-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  sinx,cosx,
  sinhy,coshy:Вещ;
УКАЗ
  дМатем.sincos(Zд,sinx,cosx);
  дМатем.shch(Zм,sinhy,coshy);  
(*
  алгебрВид( cosx*coshy,
            -sinx*sinhy, Кд,Км)
*)
        Кд:= cosx*coshy;
        Км:=-sinx*sinhy
КОН cos;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА arccos-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  дT,мT:Вещ;
УКАЗ
  arcsin(Zм,Zд,                 дT,мT);                      (* T = arcsin(Z) *)
(*
  выч(дДействПолПИ,мДействПолПИ,дT,мT, Кд,Км)     (* К = ПИ/2 - T             *)
*)
                                                  (* К = ПИ/2 - T             *)
  Кд:= кпМатем.дДействПолПИ - дT;
  Км:= кпМатем.мДействПолПИ - мT
КОН arccos;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА tg-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  sinx2, cosx2,
  sinhy2,coshy2, врем:Вещ;
УКАЗ
  дМатем.sincos(2*Zд,sinx2,cosx2);
  дМатем.shch(2*Zм,sinhy2,coshy2);
  ЕСЛИ дМатем.код = 0 ТО
    врем:=cosx2+coshy2
  ИНАЧЕ
    врем:=coshy2 
  КОН;
  ЕСЛИ врем # 0 ТО
(*
    алгебрВид(sinx2/врем,
             sinhy2/врем, Кд,Км)
*)
        Кд:=  sinx2/врем;
        Км:= sinhy2/врем
  ИНАЧЕ (* z = ПИ/2 + к*ПИ *)
    дМатем.код:=дМатем.ОСОБЕННОСТЬ;
(*
    алгебрВид(дДействМаксВещ,
              мДействМаксВещ, Кд,Км)
*)
        Кд:= кпМатем.дДействМаксВещ;
        Км:= кпМатем.мДействМаксВещ
  КОН
КОН tg;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА arctg-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  квZд,incZм,decZм:Вещ;
УКАЗ
  ЕСЛИ (Zд = 0) И (МОДУЛЬ(Zм) = 1) ТО  (* z = +/- i *)
    дМатем.код:=дМатем.ОСОБЕННОСТЬ;
(*
    алгебрВид( 0,
         дМатем.условСменаЗнакаЧ(дМатем.МаксВещ,Zм), Кд,Км)
*)
    Кд:= 0;
    Км:= дМатем.условСменаЗнакаЧ(дМатем.МаксВещ,Zм);
    ВОЗВРАТ
  КОН;
  квZд:=дМатем.кв(Zд);
  incZм:=Zм+1;
  decZм:=Zм-1;
(*
  алгебрВид(0.5*(дМатем.arctg2(Zд,-decZм) - дМатем.arctg2(-Zд,incZм)),
           0.25* дМатем.ln((квZд + дМатем.кв(incZм))/(квZд + дМатем.кв(decZм))), Кд,Км)
*)
       Кд:= 0.5*(дМатем.arctg2(Zд,-decZм) - дМатем.arctg2(-Zд,incZм));
       Км:=0.25* дМатем.ln((квZд + дМатем.кв(incZм))/(квZд + дМатем.кв(decZм)))
КОН arctg;

(*============================================================================*
 * Гиперболические функции комплексного аргумента в виде пары веществ.
 *============================================================================*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА sh-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  shx,chx:Вещ;
УКАЗ
  дМатем.shch(Zд,shx,chx);
  алгебрВид(shx*дМатем.cos(Zм),
            chx*дМатем.sin(Zм), Кд,Км)
КОН sh;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Arsh-(Zд-,Zм-,Кд+,Км+:Вещ);
(* arsh(z) = -i*arcsin(i*z) *)
ПЕР
  дT,мT:Вещ;
УКАЗ
  умножить(кпМатем.дМнимойЕДИНИЦы,
           кпМатем.мМнимойЕДИНИЦы,Zд,Zм,дT,мT);   (*           t= (0;1)*z    *)
  arcsin(дT,мT,Кд,Км);                            (* к= arcsin(t)            *)
  умножить(кпМатем.дМнимойЕДИНИЦы,
           кпМатем.мМнимойЕДИНИЦы,Кд,Км,дT,мT);   (*     t= (0;1)*к          *)
  отрицание(дT,мT,Кд,Км)                          (* к= -t                   *)
КОН Arsh;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ch-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  shx,chx:Вещ;
УКАЗ
  дМатем.shch(Zд,shx,chx);
  алгебрВид(chx*дМатем.cos(Zм),
            shx*дМатем.sin(Zм), Кд,Км)
КОН ch;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Arch-(Zд-,Zм-,Кд+,Км+:Вещ);
(* arch(Z) = знакЧ(Zм + j(1-Zд)) * j*arccos(Z) где Z = Zд+jZм *)
ПЕР
  дX,мX,
  дY,мY:Вещ;
УКАЗ
  arccos(Zд,Zм, Кд,Км);
  умножить(кпМатем.дМнимойЕДИНИЦы,
           кпМатем.мМнимойЕДИНИЦы,Кд,Км,дX,мX);
  алгебрВид(  Zм,
            1-Zд, дY,мY);
  ЕСЛИ знакЧ(дY,мY) = -1 ТО
    отрицание(дX,мX, Кд,Км)
  ИНАЧЕ
    Кд:=дX; Км:=мX 
  КОН
КОН Arch;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА th-(Zд-,Zм-,Кд+,Км+:Вещ);
ПЕР
  x2,y2,
  siny2,cosy2,
  shx2,chx2, врем:Вещ;
УКАЗ
  x2:=2*Zд;
  y2:=2*Zм;
  дМатем.sincos(y2,siny2,cosy2);
  дМатем.shch(x2,shx2,chx2);
  ЕСЛИ дМатем.код = 0 ТО
    врем:=chx2+cosy2
  ИНАЧЕ
    врем:=chx2 
  КОН;
  ЕСЛИ врем # 0 ТО
    алгебрВид(shx2/врем,
             siny2/врем, Кд,Км)
  ИНАЧЕ (* z = i*(ПИ/2 + к*ПИ) *)
    дМатем.код:=дМатем.ОСОБЕННОСТЬ;
    алгебрВид(0,
               дМатем.МаксВещ, Кд,Км)
  КОН
КОН th;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Arth-(Zд-,Zм-,Кд+,Км+:Вещ);
(* arth(z) = -i*arctg(i*z) *)
ПЕР
  дT,мT:Вещ;
УКАЗ
  ЕСЛИ (МОДУЛЬ(Zд) = 1) И (Zм = 0) ТО  (* z = +/- 1 *)
    дМатем.код:=дМатем.ОСОБЕННОСТЬ;
    алгебрВид(дМатем.условСменаЗнакаЧ(дМатем.МаксВещ,Zд),
                                                     0, Кд,Км);
  ИНАЧЕ 
    умножить(кпМатем.дМнимойЕДИНИЦы,
             кпМатем.мМнимойЕДИНИЦы,Zд,Zм,дT,мT);   (*          t= (0;1)*z  *)
    arctg(дT,мT,Кд,Км);                             (* к= arctg(t)          *)
    умножить(кпМатем.дМнимойЕДИНИЦы,
             кпМатем.мМнимойЕДИНИЦы,Кд,Км,дT,мT);   (*     t= (0;1)*к       *)
    отрицание(дT,мT,Кд,Км)                          (* к= -t                *)
  КОН 
КОН Arth;

(*-ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss-*)
УКАЗ
  NBS[0]:= 8.33333E-02;
  NBS[1]:=-2.77777E-03;
  NBS[2]:= 7.93650E-04;
  NBS[3]:=-5.95238E-04;
  NBS[4]:= 8.41750E-04;
  NBS[5]:=-1.91752E-03;
  NBS[6]:= 6.41025E-03;
  NBS[7]:=-2.95506E-02;

  алгебрВид( 0,            0, кпМатем.дКомплексногоНОЛЯ,   кпМатем.мКомплексногоНОЛЯ);  (* кнМатем.НОЛЬ          =< 0; 0> *)
  алгебрВид( 1,            0, кпМатем.дДействЕДИНИЦы,      кпМатем.мДействЕДИНИЦы);     (* кнМатем.ДействЕДИНИЦА =< 1; 0>=W(0) *)
  алгебрВид(-1,            0, кпМатем.дМинусДействЕДИНИЦы, кпМатем.мМинусДействЕДИНИЦы);(* кнМатем.ДействЕДИНИЦА =<-1; 0>=W(-ПИ)=W(+ПИ) *)
  алгебрВид( 0,            1, кпМатем.дМнимойЕДИНИЦы,      кпМатем.мМнимойЕДИНИЦы);     (* кнМатем.МнимаяЕДИНИЦА =< 0; 1>=W(+ПИ/2) *)
  алгебрВид( 0,           -1, кпМатем.дМинусМнимойЕДИНИЦы, кпМатем.мМинусМнимойЕДИНИЦы);(* кнМатем.МнимаяЕДИНИЦА =< 0;-1>=W(-ПИ/2) *)

  алгебрВид(дМатем.МаксВещ,0, кпМатем.дДействМаксВещ,      кпМатем.мДействМаксВещ);     (* кнМатем.ДействМаксВещ =<дМатем.МаксВещ;0> *)
  алгебрВид(дМатем.ПолПИ,  0, кпМатем.дДействПолПИ,        кпМатем.мДействПолПИ)        (* кнМатем.ДействПолПИ   =<дМатем.ПолПИ;  0> *)

КОН кпМатем.
