On Tue, 24 Jan 2012 07:37:09 -0800
Case Van Horsen

> On Tue, Jan 24, 2012 at 5:59 AM, Cactus wrote:  
> >> To reinforce that these new types are MPIR specific, should they
> >> be called mpir_ui/mpir_si?  
> >
> > I had exactly the same idea a few days ago - I am inclined to do
> > this.  
> A couple more ideas...
> 
> Can we define a macro (HAVE_MPIR_SI ?) to unambiguously detect if
> mpir_si/mpir_ui is available?  

I can put HAVE_MPIR_UI and HAVE_MPIR_SI into mpir.h if this
would do the trick.

> For better backwards compatibility, should mpir_si/mpir_ui always
> default to long unless USE_MPIR_SI (or some other descriptive name) is
> defined before mpir.h/gmp.h is included?  

Right now these types are always long with only one exception - Windows
x64, which is detected with the define _WIN64.  I am not that keen on
removing the default of using 64-bit integers on Windows x64 but we
could allow this to be turned off by defining, say, NO_MPIR_INTS:

#if defined( _WIN64 ) && !defined( NO_MPIR_INTS )
  ....
#else
  ....
#endif

> The only compatibility issue I encounterd was trying to explicitely
> get a long on 64-bit Windows. I had to downcast the results of
> gmp_get_si(). Would it make sense to add
> mpir_get_slong/mpri_get_ulong?  

Yes, I can add:

#ifdef _WIN64
#define mpz_get_ulong(x) ((unsigned long)mpz_get_ui(x))
#define mpz_get_slong(x) ((long)mpz_get_si(x))
#endif

to solve this.

   Brian

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/mpir-devel/-/IRQHAeL7MukJ.
To post to this group, send email to mpir-devel@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to