Sign in Join
Wiki copytemporary

complex number

English · Français

Complex numbers is a mathematical concept providing solutions to equations such as $x^2 = -1$. In FPC's default runtime library the unit uComplex defines a type complex and lots of operator and other functions. u in uComplex stands for the Greek letter μ, meaning “micro”, as the implementation is kept as simple as possible.

In Extended Pascal, which FPC plans to implement one day, the data type complex is defined as part of the language.

pascal
program ComplexDemo;
uses
    uComplex;
var
    x, y: complex;
begin
    // specifying real and imaginary part
    x := -5 + 2 * i;
    
    // specifying magnitude and phase angle
    // y := sqrt(2) * (cos(pi/4) + i * sin(pi/4))
    y.re :=  1;
    y.im :=  1;
    
    x := x + y;
    // there is no toString functionality:
    writeLn('x = ', x.re, ' + ', x.im, 'i');
end.

Another demo, which shows how to use functions cinit (assign value), cstr (convert value to string), csin (sinus):

pascal
program ComplexDemo2;
uses
  uComplex;
const
  L = 0;
  D = 3;
var
  c1, c2: complex;
begin
  c1 := cinit(1.0, 1.0);
  c2 := cinit(2.0, -2.0);
  WriteLn('c1      = ' + cstr(c1, L, D));
  WriteLn('c2      = ' + cstr(c2, L, D));
  WriteLn('c1+c2   = ' + cstr(c1+c2, L, D));
  WriteLn('c1-c2   = ' + cstr(c1-c2, L, D));
  WriteLn('c1*c2   = ' + cstr(c1*c2, L, D));
  WriteLn('c1/c2   = ' + cstr(c1/c2, L, D));
  WriteLn('sin(c1) = ' + cstr(csin(c1), L, D));
  ReadLn;
end.

see also

external references


From the Free Pascal wiki, page "complex number", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.