# mpz_tstbit is limited ?

**delta trinity
**
deltatrinity@hotmail.com

*Wed, 25 Dec 2002 23:30:30 -0500*

>>>* Hi,
*>>>*
*>>>*The definition of the mpz_tstbit function is:
*>>>*
*>>>*int mpz_tstbit (mpz_t op, unsigned long int bit_index)
*>>>*
*>>>* Why not:
*>>>*bool mpz_tstbit (mpz_t op, unsigned long int bit_index)
*>>*
*>>*
*>>*Because bool is a c++ specific keyword and gmp is built to be used with
*>>*standatd 'c'. Standard 'c' doesn't know about 'bool'.
*>*
*>*Yes. I imagine that the futur C++ interface method will return bool 8->
*>*
*>>>* Why not:
*>>>*int mpz_tstbit (mpz_t op, mpz_t bit_index)
*>>*
*>>*
*>>*Because it wouldn't make much sence to test bits larger than a long int.
*>>*This would be a test un a number that is 4 bilion bits wide. So, for
*>>*speed concert, we use a unsigned long.
*>*
*>*Hmmmmm ... 22^32 is really a wide number and probability to need it is
*>*really poor and i understand the speed concert.
*>*
*>* But imagine we use mpz_t as a set of bits (or a bit string), so
*>*the max size of the set is 4,294,967,296 bits, so only 512Mo.
*>*
*>*Today, is it enough ????? GMP is very interesting to put index in mpz_t
*>*for big bit string.
*>*
*>*Two solutions:
*>*a) create a other new function which test if the index of bit is less
*>*than 232 (fast test ?) and so call the actual function and do other if not.
*>*b) wait for 64 bits processor and use long long (or quad) block.
*>*
*>*In case of a), what would be the test ? Is it a fast one ?
*>*
*>*What do you think about this ?
*
Well, you can ask for the mpz_t version to be added. Mr K. Ryde would
probably be the best person who could answer you on this :-) Although,
2^2^32 is not really something that we would see every day! There's a
number of functions that use only unsigned long like exponentiation
functions.
_________________________________________________________________
The new MSN 8: smart spam protection and 3 months FREE*.
http://join.msn.com/?page=features/junkmail&xAPID=42&PS=47575&PI=7324&DI=7474&SU=
http://www.hotmail.msn.com/cgi-bin/getmsg&HL=1216hotmailtaglines_smartspamprotection_3mf