> >> In a similar vein: is it really useful to call creal/cimag on real data?
> >> It seems to me that too should throw an exception.
> > I think it should just return the input and 0, respectively. Thus it can be
> > used to write generic code that accepts real and complex input. carg should
> > do the same. Even conj kind of works that way.
>
> Agreed.
That's what I thought, allow feeding real numbers to routines
that expect complex numbers (real is a kind of complex), but now I'm
not quite sure though, as I recalled the discussion about asin(2)
yielding a complex number vs. NaN. If real numbers are to be considered
special complex numbers, maybe this should be done consistently. Would
it be too confusing/complicated to add complex numbers with an
implicit imaginary part (=0) that may be cast to/from real types (without
moving any data), besides really real types and the intrinsic complex
types (and keeping also for compatibility the actual PDL::Complex's)?
I imagine something as
asin(pdl(2)) yields NaN,
while
asin(pdl(2)->treatascomplex) yields asin(2+0*ci),
where 'treatascomplex' (or however it is named) doesn't touch the
data, just allows reinterpreting it.
Regards,
Luis
--
o
W. Luis Mochán, | tel:(52)(777)329-1734 /<(*)
Instituto de Ciencias Físicas, UNAM | fax:(52)(777)317-5388 `>/ /\
Av. Universidad s/n CP 62210 | (*)/\/ \
Cuernavaca, Morelos, México | [email protected] /\_/\__/
GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16 C2DF 5F0A C52B 791E B9EB
_______________________________________________
pdl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pdl-devel