Complex numbers are harder to use than in C

Meta via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Nov 19 08:17:08 PST 2016


On Saturday, 19 November 2016 at 09:38:38 UTC, Marduk wrote:
> Dear all,
>
> I just discovered D and I am translating some numerical code I 
> wrote in C. I was surprised to learn that there are at least 
> two things that are easier in C than in D:
>
> + Writing complex numbers
>
> C: complex double z = 2.0 + 3.0*I;
>
> D: auto z = complex(2.0, 3.0);
>
>
> + Arrays of complex numbers
>
> C: complex double a[2][2] = {{1.0*I, 0.0}, {0.0, 1.0*I}};
>
> D: Complex!double[2][2] a = [[complex(0.0, 1.0), complex(0.0)], 
> [complex(0.0), complex(0.0, 1.0)]];
>
> The difference is that D is more verbose. Am I missing 
> something? Can we have C's behaviour in D?

D used to support complex numbers in the language (actually it 
still does, they're just deprecated). This code should compile 
with any D compiler:

cdouble[2][2] a = [[0 + 1i, 0], [0, 0 + 1i]];


More information about the Digitalmars-d-learn mailing list