www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Wrapping Python's complex type

reply Kirk McDonald <kirklin.mcdonald gmail.com> writes:
I'm trying to wrap Python's PyComplex type. It stores the real and 
imaginary parts as two doubles. D, of course, has complex numbers 
built-in. I would like to provide a member function like, e.g.:

cdouble asComplex();

Which would take the two parts and combine them into a D cdouble. 
However, I can't seem to convert the two doubles into a cdouble. The .re 
and .im properties are read-only, and the following doesn't work:

cdouble c;
double a = 2.4, b = 3.8;
c = a + cast(idouble)b;
// c now equals 2.4 + 0i

What am I missing?

-Kirk McDonald
Jun 03 2006
parent reply Burton Radons <burton-radons smocky.com> writes:
Kirk McDonald wrote:
 I'm trying to wrap Python's PyComplex type. It stores the real and 
 imaginary parts as two doubles. D, of course, has complex numbers 
 built-in. I would like to provide a member function like, e.g.:
 
 cdouble asComplex();
 
 Which would take the two parts and combine them into a D cdouble. 
 However, I can't seem to convert the two doubles into a cdouble. The .re 
 and .im properties are read-only, and the following doesn't work:
 
 cdouble c;
 double a = 2.4, b = 3.8;
 c = a + cast(idouble)b;
 // c now equals 2.4 + 0i
 
 What am I missing?

c = a + b * 1i;
Jun 03 2006
parent Kirk McDonald <kirklin.mcdonald gmail.com> writes:
Burton Radons wrote:
 Kirk McDonald wrote:
 What am I missing?

c = a + b * 1i;

Ahhhh, of course. Thanks! -Kirk McDonald
Jun 03 2006