Page 59 - 4260
P. 59
begin
Result.Re:=x.Re + y.Re;
Result.Im:=x.Im + y.Im;
end; // Cadd
function Csub(x,y:Tcomplex):Tcomplex; export; // Комплекс віднімання
begin
Result.Re:=x.Re - y.Re;
Result.Im:=x.Im - y.Im;
end; // Csub
function Cmult(x,y:Tcomplex):Tcomplex; Export; // Комплексне множення
begin
Result.Re:=x.Re*y.Re - x.Im*y.Im;
Result.Im:=x.Re*y.Im + x.Im*y.Re;
end; // Cmult
function Cdiv(x,y:Tcomplex):Tcomplex; Export; // Комплексний розподіл
var z: real;
begin
z:=sqr(y.Re)+sqr(y.Im);
try
// Захист при розподілі на 0
Result.Re:=(x.Re*y.Re + x.Im*y.Im)/z;
Result.Im:=(x.Re*y.Im - x.Im*y.Re)/z;
except
// Результат, якщо дільник 0
Result.Re:=1.1e309;
Result.Im:=1.1e309
end;
end; // СDiv
exports
// Список експорту
Cadd Index 1 Name 'Addc' Resident,
Csub Index 2 Name 'Subc',
Cmult Index 3 Name 'Multc',
Cdiv Index 4 Name ‘Divc’;
begin
59