why did GMPY change the names of its functions?

casevh at gmail.com casevh at gmail.com
Mon Mar 26 14:33:17 EDT 2012


On Sunday, March 25, 2012 9:59:56 PM UTC-7, Mensanator wrote:
> OK, GMPY is now called GMPY2. No big deal, I can import as GMPY.
> 
> But why were scan0 and scan1 changed to bit_scan0 and bit_scan1?
> 
> What's the justification for that? I use those functions extensively
> in my library of Collatz utilities  and I had to re-edit them for no
> obvious reason.

I'll speak up as the maintainer of GMPY and GMPY2.

(My comments apply to the beta1 release which should be out in a couple of days.)

GMPY2 introduces many changes: 

1) the limited "mpf" type that is based on GMP has been replaced with the "mpfr" type from the MPFR library
2) support for multiple-precision complex arithmetic based on the MPC library
3) support for a mutable integer type optimized for in-place bit manipulations
4) support for addition number theory functions (generalized Lucas sequences and more primality tests

I began to encounter name collisions; for example, should sqrt() only return integer square roots. I chose to call it a new name (gmpy2) and update the API to reflect new choices I made. For example, sqrt() now returns an "mpfr" and isqrt() returns an "mpz".

As part of the documentation for the beta release, I will document the name changes. "import gmpy2 as gmpy; gmpy.scan0=gmpy.bit_scan0; etc" should work just fine.

If you encounter problems with the alpha release, please open an issue on gmpy's site.

Thanks,
casevh



On Sunday, March 25, 2012 9:59:56 PM UTC-7, Mensanator wrote:
> OK, GMPY is now called GMPY2. No big deal, I can import as GMPY.
> 
> But why were scan0 and scan1 changed to bit_scan0 and bit_scan1?
> 
> What's the justification for that? I use those functions extensively
> in my library of Collatz utilities  and I had to re-edit them for no
> obvious reason.



On Sunday, March 25, 2012 9:59:56 PM UTC-7, Mensanator wrote:
> OK, GMPY is now called GMPY2. No big deal, I can import as GMPY.
> 
> But why were scan0 and scan1 changed to bit_scan0 and bit_scan1?
> 
> What's the justification for that? I use those functions extensively
> in my library of Collatz utilities  and I had to re-edit them for no
> obvious reason.



On Sunday, March 25, 2012 9:59:56 PM UTC-7, Mensanator wrote:
> OK, GMPY is now called GMPY2. No big deal, I can import as GMPY.
> 
> But why were scan0 and scan1 changed to bit_scan0 and bit_scan1?
> 
> What's the justification for that? I use those functions extensively
> in my library of Collatz utilities  and I had to re-edit them for no
> obvious reason.




More information about the Python-list mailing list