[GiNaC-list] Possible size issue in test in numeric.cpp

Jens Vollinga vollinga at physik.uni-wuppertal.de
Wed Aug 16 17:23:37 CEST 2006


Dear Pierangelo,

Pierangelo Masarati schrieb:
> Jens Vollinga writes:
>> @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?
> 
> I agree it should be
>       i < ((1UL << cl_value_len)-1)

well, I have to correct myself: it should be
        i < (1UL << cl_value_len)
I guess.

> In this case, a fix similar to the "int" case on 64 bit architectires 
> would apply, since a "unsigned" will always be less than 2^32.  A patch 
> is available at
> <http://mbdyn.aero.polimi.it/~masarati/Download/mbdyn/ginac-numeric-uint.pat 
> ch>

thanks, but I've already done that :-)

But still I want to wait for Richy's response before I put it in CVS, 
because it could be that CLN uses a signed data representation for small 
integers internally (crazy idea, but conceivable ... ;-)) so that the 
original if clause might be correct.

Regards,
Jens


More information about the GiNaC-list mailing list