[phobos] std.complex: ready for Phobos?
Lars Tandle Kyllingstad
lars at kyllingen.net
Tue Apr 20 13:57:10 PDT 2010
Philippe Sigaud wrote:
> On Tue, Apr 20, 2010 at 11:06, Lars Tandle Kyllingstad
> <lars at kyllingen.net <mailto:lars at kyllingen.net>> wrote:
>
> Does Complex!BigInt (or Complex!int, for that matter) *ever* make
> sense? I mean, yes, it *sounds* cool, and I'm normally against
> introducing gratuitous constraints on functionality, but in this
> case I think I prefer restricting T to real number types.
>
> Have in mind that not only will one have to disable (or introduce
> special cases for) abs() and arg(), but also some of the operations,
> in particular division and exponentiation.
>
> It all sounds like more work, more maintenance, more complex code
> (hur hur), for very little or no benefit.
>
>
> I completly agree, and wasn't trying to sell Complex for any integral
> type! My only suggestion was to use a generic template to determine what
> operators were supported by a type, based on your suggestion to use
> compile-time interfaces, à la std.range.
> I was using BigInt as non-built-in numeric type, the only one available
> on Phobos.
Ok, it seems I understood you too literally. I think we mostly agree
then. Ideally, the constraint on Complex!T should act as a compile-time
interface that checks whether T *behaves* like a floating-point type.
However, in this case I personally think Complex!T should work equally
well for all T or not at all, and for the time being that means using
isFloatingPoint.
> But then I thought that the compiler already checks at compile-time that
> the operations are possible, so I'm not so certain about the need for
> such a template. Maybe as a way to document the code?
That, and for error messages that are easier to understand and track down.
> Sorry for the noise, I'll let you continue your good work.
Nono, don't be. Feedback is always good. :) Like I said, I just think
it's better to start with a tight constraint and relax it if it turns
out that that's what people want.
-Lars
More information about the phobos
mailing list