[GiNaC-list] Possible size issue in test in numeric.cpp
Jens Vollinga
vollinga at physik.uni-wuppertal.de
Wed Aug 16 15:32:52 CEST 2006
Dear Pierangelo,
Pierangelo Masarati schrieb:
> Chris Dams writes:
>>> My guess is that the test is incorrect on those architectures, but I
>>> admit I haven't investigated enough.
>>
>> I'm not a CLN expert either, but to me it does not seem that the code is
>> incorrect. On the AMD 64 platform it is apparently always okay to apply
>> the constructor cl_I(int) no matter how large the integer argument is. If
>> the compiler is smart enough, it will automatically do what your patch is
>> doing (i.e., throw the if out of the code), so I fail to see benefits
>> from
>> your patch.
>
> OK, my main concern was about removing a couple annoying warnings (BTW:
> congratulations: they were the only warnings in the whole package, which
> seems pretty unusual to me, and a good programming practice).
> However, as far as I understand, although the code being safe, a test
> and a cast will always occur even if it's never required. It's not a
> big deal, I concur, but it looks like a misuse of the CLN definitions.
> My 2c.
thanks for your patch! We had a discussion about it on the other GiNaC
mailing list (ginac-devel) and we are going to apply it. It will be part
of the forthcoming 1.3.5 release then.
@Richy:
You wondered why the other ctor for unsigned int doesn't raise such a
warning. After looking at the code I now wonder whether the code there
is optimal. The argument is compared against 2^(cl_value_len-1) and not
2^(cl_value_len)-1 as one might expect. Maybe this should be changed?
Could you comment on this soon, because I'd like to roll the release
this evening?
Regards,
Jens
More information about the GiNaC-list
mailing list