Difference between revisions of "complex number"
From Lazarus wiki
Jump to navigationJump to search (create) |
m (Change page template and remove categories (defined in the template)) |
||
(4 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{complex_number}} |
+ | |||
Complex numbers is a mathematical concept providing solutions to equations such as <math>x^2 = -1</math>. | Complex numbers is a mathematical concept providing solutions to equations such as <math>x^2 = -1</math>. | ||
In [[FPC]]'s default [[RTL|runtime library]] the unit <syntaxhighlight lang="pascal" enclose="none">uComplex</syntaxhighlight> defines a type <syntaxhighlight lang="pascal" enclose="none">complex</syntaxhighlight> and lots of operator and other functions. | In [[FPC]]'s default [[RTL|runtime library]] the unit <syntaxhighlight lang="pascal" enclose="none">uComplex</syntaxhighlight> defines a type <syntaxhighlight lang="pascal" enclose="none">complex</syntaxhighlight> and lots of operator and other functions. | ||
Line 14: | Line 15: | ||
begin | begin | ||
// specifying real and imaginary part | // specifying real and imaginary part | ||
− | + | x := -5 + 2 * i; | |
− | |||
− | |||
// specifying magnitude and phase angle | // specifying magnitude and phase angle | ||
Line 31: | Line 30: | ||
== see also == | == see also == | ||
* [[DMath]], a mathematical library also containing a complex number implementation | * [[DMath]], a mathematical library also containing a complex number implementation | ||
+ | * [[LMath]], further development of LMath library, with completer support for complex numbers, where operators over them are defined. | ||
* [[NumLib Documentation#Complex_numbers|NumLib documentation]], where <syntaxhighlight lang="pascal" enclose="none">typ.complex</syntaxhighlight> is an [[Object|<syntaxhighlight lang="pascal" enclose="none">object</syntaxhighlight>]] | * [[NumLib Documentation#Complex_numbers|NumLib documentation]], where <syntaxhighlight lang="pascal" enclose="none">typ.complex</syntaxhighlight> is an [[Object|<syntaxhighlight lang="pascal" enclose="none">object</syntaxhighlight>]] | ||
Line 37: | Line 37: | ||
* [https://svn.freepascal.org/cgi-bin/viewvc.cgi/tags/release_3_0_4/packages/rtl-extra/src/inc/ucomplex.pp?view=markup <tt>packages/rtl-extra/src/inc/ucomplex.pp</tt> source code] | * [https://svn.freepascal.org/cgi-bin/viewvc.cgi/tags/release_3_0_4/packages/rtl-extra/src/inc/ucomplex.pp?view=markup <tt>packages/rtl-extra/src/inc/ucomplex.pp</tt> source code] | ||
* [https://svn.freepascal.org/cgi-bin/viewvc.cgi/tags/release_3_0_4/packages/numlib/src/typ.pas?view=markup#l134 <tt>packages/numlib/src/typ.pas</tt> source code] | * [https://svn.freepascal.org/cgi-bin/viewvc.cgi/tags/release_3_0_4/packages/numlib/src/typ.pas?view=markup#l134 <tt>packages/numlib/src/typ.pas</tt> source code] | ||
− | |||
− | |||
− |
Revision as of 21:13, 2 May 2020
│
English (en) │
français (fr) │
Complex numbers is a mathematical concept providing solutions to equations such as [math]\displaystyle{ x^2 = -1 }[/math].
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.
program complexDemo(input, output, stderr);
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.
see also
- DMath, a mathematical library also containing a complex number implementation
- LMath, further development of LMath library, with completer support for complex numbers, where operators over them are defined.
- NumLib documentation, where
typ.complex
is anobject