View source code
Display the source code in std/complex.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
std.complex.complex
- multiple declarations
- Function complex
- Struct Complex
Function complex
Helper function that returns a complex number with the specified real and imaginary parts.
Prototypes
auto complex(R)( R re ) pure nothrow @nogc @safe if (is(R : double)); auto complex(R, I)( R re, I im ) pure nothrow @nogc @safe if (is(R : double) && is(I : double));
Parameters
Name | Description |
---|---|
R | (template parameter) type of real part of complex number |
I | (template parameter) type of imaginary part of complex number
|
re | real part of complex number to be constructed |
im | (optional) imaginary part of complex number |
Returns
instance with real and imaginary parts set
to the values provided as input. If neither Complex
nor
re
are floating-point numbers, the return type will
be im
. Otherwise, the return type is
deduced using Complex
!double
.
std.traits.CommonType
!(R, I)
Example
auto a = complex(1.0); static assert (is(typeof(a) == Complex!double)); assert (a.re == 1.0); assert (a.im == 0.0); auto b = complex(2.0L); static assert (is(typeof(b) == Complex!real)); assert (b.re == 2.0L); assert (b.im == 0.0L); auto c = complex(1.0, 2.0); static assert (is(typeof(c) == Complex!double)); assert (c.re == 1.0); assert (c.im == 2.0); auto d = complex(3.0, 4.0L); static assert (is(typeof(d) == Complex!real)); assert (d.re == 3.0); assert (d.im == 4.0L); auto e = complex(1); static assert (is(typeof(e) == Complex!double)); assert (e.re == 1); assert (e.im == 0); auto f = complex(1L, 2); static assert (is(typeof(f) == Complex!double)); assert (f.re == 1L); assert (f.im == 2); auto g = complex(3, 4.0L); static assert (is(typeof(g) == Complex!real)); assert (g.re == 3); assert (g.im == 4.0L);
Struct Complex
A complex
number parametrised by a type T
, which must be either
float
, double
or real
.
Fields
Name | Type | Description |
---|---|---|
im
|
T |
The imaginary part of the number. |
re
|
T |
The real part of the number. |
Methods
Name | Description |
---|---|
toString
|
Converts the complex number to a string representation.
|
Templates
Name | Description |
---|---|
toString
|
Converts the complex number to a string representation.
|
Authors
Lars Tandle Kyllingstad, Don Clugston