[Cython] Fused Types

Pauli Virtanen pav at iki.fi
Fri Apr 29 17:57:53 CEST 2011


Fri, 29 Apr 2011 16:59:22 +0200, mark florisson wrote:
[clip]
> Hmm, indeed, it's pretty weird. I'm fine with the pairing also, although
> I'm still not sure how common this case is, and if we really want to
> support it. Wouldn't good old C promotion work for this? e.g. if the
> type is either float or double, just declare your variable double?

In practice mostly yes I guess; IIRC single-precision arithmetic is not
any faster than double precision nowadays anyway. However, (playing the 
devil's advocate :)

(i) Theoretically, someone might also want to write code that works
both for "double" and for "long double complex". You probably wouldn't
want to use "long double" for the double-precision specialization.

(ii) One reason to use floats could be the 2x size advantage. In principle
someone might want to deal with huge float and float complex arrays. (Sounds
like a somewhat rare use case though.)

(iii) If you want to wrap a library that already provides complex float
functions in both precisions, having a specialized real type could come
handy sometimes.


But in practice, I guess the "fused_type(double, double complex)" would be
the most common use case. Maybe it's best to wait until enough concrete
examples accumulate before implementing anything more --- I guess
e.g. the pairing feature wouldn't be too difficult to add if it turns out
something like that is really needed.

	Pauli



More information about the cython-devel mailing list