dotgnu-libs-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-libs-commits] CVS: GMP-Sharp ChangeLog,1.2,1.3 TODO,1.4,1.5 gmp


From: Marcus Urban <address@hidden>
Subject: [Dotgnu-libs-commits] CVS: GMP-Sharp ChangeLog,1.2,1.3 TODO,1.4,1.5 gmp-f.cs,1.4,1.5 gmp-q.cs,1.3,1.4 gmp-z.cs,1.5,1.6
Date: Sat, 04 Jan 2003 01:46:44 -0500

Update of /cvsroot/dotgnu-libs/GMP-Sharp
In directory subversions:/tmp/cvs-serv1142

Modified Files:
        ChangeLog TODO gmp-f.cs gmp-q.cs gmp-z.cs 
Log Message:
Various naming fixes. GetHashCode added to Float and
Improved on Rational. Added ++ operator for Integer.


Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-libs/GMP-Sharp/ChangeLog,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** ChangeLog   2 Jan 2003 10:31:03 -0000       1.2
--- ChangeLog   4 Jan 2003 06:46:42 -0000       1.3
***************
*** 1,2 ****
--- 1,16 ----
+ 3 January 2003
+ --------------
+ Change P/Invoke parameter types from IntPtr to mpz_t, mpq_t,
+ or mpf_t, where appropriate, and change parameter names to
+ match those in GMP docs. (The IntPtr to mpz_t (etc.) change
+ is not type checked, but does clarify.)
+ 
+ Improve Rational.GetHashCode to use the hash codes of the
+ numerator and denominator (slightly more expensive)
+ 
+ Implement Float.GetHashCode -- just converts the Float to
+ Integer and calls Integer.GetHashCode().
+ 
+ 
  2 January 2003
  --------------

Index: TODO
===================================================================
RCS file: /cvsroot/dotgnu-libs/GMP-Sharp/TODO,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** TODO        2 Jan 2003 10:31:03 -0000       1.4
--- TODO        4 Jan 2003 06:46:42 -0000       1.5
***************
*** 2,10 ****
  ---------
  
- How about a shorter, but still-descriptive
- name, than "rawObject"?
- 
- Does input string work even?
- 
  Each file defines its own Culong, mpf_t, etc.
  Also, some files use SizeType and other size
--- 2,5 ----
***************
*** 14,20 ****
  set the platform-dependent items
  
- Standardize parameter names in P/Invoke methods and
- in C# methods
- 
  
  Add % to format capabilities
--- 9,12 ----
***************
*** 44,51 ****
  where c should already be initiatized to the
  desired precision. Similar for Sqrt, Power, etc.
- 
- 
- Implement GetHashCode
- 
  
  Rational
--- 36,39 ----

Index: gmp-f.cs
===================================================================
RCS file: /cvsroot/dotgnu-libs/GMP-Sharp/gmp-f.cs,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** gmp-f.cs    2 Jan 2003 10:33:58 -0000       1.4
--- gmp-f.cs    4 Jan 2003 06:46:42 -0000       1.5
***************
*** 638,641 ****
--- 638,647 ----
        
        
+       public override int GetHashCode()
+       {
+               return ( (Integer) this ).GetHashCode();
+       }
+       
+       
        public static Float RelativeDifference( Float op1, Float op2 )
        {
***************
*** 702,706 ****
        
  
!               // **********************************************
        // P/Invoke functions
        // **********************************************
--- 708,712 ----
        
  
!       // **********************************************
        // P/Invoke functions
        // **********************************************

Index: gmp-q.cs
===================================================================
RCS file: /cvsroot/dotgnu-libs/GMP-Sharp/gmp-q.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** gmp-q.cs    2 Jan 2003 10:33:58 -0000       1.3
--- gmp-q.cs    4 Jan 2003 06:46:42 -0000       1.4
***************
*** 33,36 ****
--- 33,38 ----
  using Cint = System.Int32;
  using SizeType = System.Int32;
+ using mpq_t = System.IntPtr;
+ using mpz_t = System.IntPtr;
  
  namespace GMP
***************
*** 40,44 ****
  public class Rational
  {
!       internal IntPtr rawObject;
        
        
--- 42,46 ----
  public class Rational
  {
!       internal mpq_t rawObject;
        
        
***************
*** 200,204 ****
        
        
!       // TODO: Swap isn't implemented because it's alter args in-place
        
        public override string ToString()
--- 202,221 ----
        
        
!       public Integer Denominator
!       {
!               get
!               {
!                       Integer result = new Integer();
!                       __gmpq_get_den( result.rawObject, this.rawObject );
!                       return result;
!               }
!               set
!               {
!                       __gmpq_set_den( this.rawObject, value.rawObject );
!               }
!       }
!       
!       
!       // TODO: Swap isn't implemented because it alters args in-place
        
        public override string ToString()
***************
*** 345,349 ****
        public override int GetHashCode()
        {
!               return ( (int) this % int.MaxValue).GetHashCode();
        }
        
--- 362,367 ----
        public override int GetHashCode()
        {
!               return Numerator.GetHashCode() ^ Denominator.GetHashCode();
!               //return ( (int) this % int.MaxValue).GetHashCode();
        }
        
***************
*** 355,359 ****
        }
        
!               // **********************************************
        // P/Invoke functions
        // **********************************************
--- 373,378 ----
        }
        
!       
!       // **********************************************
        // P/Invoke functions
        // **********************************************
***************
*** 365,408 ****
        // Create the C outside C structure
        [DllImport("libgmp_support", CharSet=CharSet.Ansi)]
!       private static extern IntPtr create_mpq_t();
  
        // Free the inner C structure
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern IntPtr __gmpq_clear( IntPtr rational_number );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern IntPtr __gmpq_canonicalize( IntPtr rop );
        
        // Rational numbers (mpq) lack combined init and assign
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_init( IntPtr dest_rational );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set( IntPtr rop, IntPtr op );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_z( IntPtr rop, IntPtr op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_ui( IntPtr rop, Culong op1, 
Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_si( IntPtr rop, Clong op1, Clong 
op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_d( IntPtr rop, double op );       
        
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_f( IntPtr rop, IntPtr op );       
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern int __gmpq_set_str( IntPtr rop, string str, int 
@base );  
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_num( IntPtr rational, IntPtr 
numerator );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_den( IntPtr rational, IntPtr 
denominator );       
        
                        
--- 384,427 ----
        // Create the C outside C structure
        [DllImport("libgmp_support", CharSet=CharSet.Ansi)]
!       private static extern mpq_t create_mpq_t();
  
        // Free the inner C structure
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern mpq_t __gmpq_clear( mpq_t rational_number );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern mpq_t __gmpq_canonicalize( mpq_t rop );
        
        // Rational numbers (mpq) lack combined init and assign
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_init( mpq_t dest_rational );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set( mpq_t rop, mpq_t op );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_z( mpq_t rop, mpz_t op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_ui( mpq_t rop, Culong op1, Culong 
op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_si( mpq_t rop, Clong op1, Clong 
op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_d( mpq_t rop, double op );        
        
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_f( mpq_t rop, mpq_t op ); 
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern int __gmpq_set_str( mpq_t rop, string str, int 
@base );   
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_num( mpq_t rational, mpz_t 
numerator );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpq_set_den( mpq_t rational, mpz_t 
denominator ); 
        
                        
***************
*** 410,426 ****
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern double __gmpq_get_d(IntPtr op );
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern string __gmpq_get_str
!               ( IntPtr str, int @base, IntPtr rawObject );    
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_get_num
!               ( IntPtr numerator, IntPtr rational );
                
                [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_get_den
!               ( IntPtr denominator, IntPtr rational );        
                
                
--- 429,445 ----
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern double __gmpq_get_d( mpq_t op );
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern string __gmpq_get_str
!               ( IntPtr str, int @base, mpq_t rawObject );     
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_get_num
!               ( mpz_t numerator, mpq_t rational );
                
                [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_get_den
!               ( mpz_t denominator, mpq_t rational );  
                
                
***************
*** 429,461 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_add
!               ( IntPtr dest, IntPtr op1, IntPtr op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_sub
!               ( IntPtr dest, IntPtr op1, IntPtr op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_mul
!               ( IntPtr dest, IntPtr op1, IntPtr op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_mul_2exp
!               ( IntPtr dest, IntPtr op1, Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_div
!               ( IntPtr q, IntPtr n, IntPtr d );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_div_2exp
!               ( IntPtr r, IntPtr n, Culong b );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_neg
!               ( IntPtr negated_operand, IntPtr operand );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_abs
!               ( IntPtr rop, IntPtr op );              
        
                
--- 448,480 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_add
!               ( mpq_t dest, mpq_t op1, mpq_t op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_sub
!               ( mpq_t dest, mpq_t op1, mpq_t op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_mul
!               ( mpq_t dest, mpq_t op1, mpq_t op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_mul_2exp
!               ( mpq_t dest, mpq_t op1, Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_div
!               ( mpq_t q, mpq_t n, mpq_t d );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_div_2exp
!               ( mpq_t r, mpq_t n, Culong b );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_neg
!               ( mpq_t negated_operand, mpq_t operand );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpq_abs
!               ( mpq_t rop, mpq_t op );                
        
                
***************
*** 469,473 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpq_cmp
!               ( IntPtr a, IntPtr b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
--- 488,492 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpq_cmp
!               ( mpq_t a, mpq_t b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
***************
*** 481,485 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpq_equal
!               ( IntPtr a, IntPtr b ); 
  
  } // class Rational
--- 500,504 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpq_equal
!               ( mpq_t a, mpq_t b );   
  
  } // class Rational

Index: gmp-z.cs
===================================================================
RCS file: /cvsroot/dotgnu-libs/GMP-Sharp/gmp-z.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** gmp-z.cs    2 Jan 2003 10:33:59 -0000       1.5
--- gmp-z.cs    4 Jan 2003 06:46:42 -0000       1.6
***************
*** 190,193 ****
--- 190,210 ----
        }
        
+       
+       public static Integer operator ++ ( Integer a )
+       {
+               Integer result = new Integer();
+               __gmpz_add_ui( result.rawObject, a.rawObject, 1 );
+               return result;
+       }
+       
+       
+       public static Integer operator -- ( Integer a )
+       {
+               Integer result = new Integer();
+               __gmpz_sub_ui( result.rawObject, a.rawObject, 1 );
+               return result;
+       }
+       
+       
                
        public static Integer operator + ( Integer a, Integer b )
***************
*** 1207,1211 ****
        // Free the inner C structure
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern IntPtr __gmpz_clear( IntPtr rawObject );
        
        
--- 1224,1228 ----
        // Free the inner C structure
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern IntPtr __gmpz_clear( mpz_t rawObject );
        
        
***************
*** 1222,1246 ****
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpz_init( IntPtr dest );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set
!               ( IntPtr dest, IntPtr source );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set_ui
!               ( IntPtr dest, Culong source );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set_si
!               ( IntPtr dest, Clong source );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set_d
!               ( IntPtr dest, double source );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_init_set_str
!               ( IntPtr rawObject, string str, int @base );    
        
                        
--- 1239,1263 ----
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern void __gmpz_init( mpz_t integer );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set
!               ( mpz_t rop, IntPtr op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set_ui
!               ( mpz_t rop, Culong op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set_si
!               ( mpz_t rop, Clong op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_init_set_d
!               ( mpz_t rop, double op );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_init_set_str
!               ( mpz_t rop, string str, int @base );   
        
                        
***************
*** 1248,1266 ****
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern Culong __gmpz_get_ui( IntPtr rawObject );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern Clong __gmpz_get_si( IntPtr rawObject );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern Cdouble __gmpz_get_d(IntPtr rawObject );
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cdouble __gmpz_get_d_2exp
!               (out Clong exp, IntPtr rawObject );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern string __gmpz_get_str
!               ( IntPtr str, int @base, IntPtr rawObject );    
        
        
--- 1265,1283 ----
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern Culong __gmpz_get_ui( mpz_t op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern Clong __gmpz_get_si( mpz_t op );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
!       private static extern Cdouble __gmpz_get_d(mpz_t op );
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cdouble __gmpz_get_d_2exp
!               (out Clong exp, mpz_t op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern string __gmpz_get_str
!               ( IntPtr str, int @base, mpz_t op );    
        
        
***************
*** 1269,1426 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_add
!               ( IntPtr dest, IntPtr op1, IntPtr op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_add_ui
!               ( IntPtr dest, IntPtr op1, Culong op2 );                
                
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sub
!               ( IntPtr dest, IntPtr op1, IntPtr op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sub_ui
!               ( IntPtr dest, IntPtr op1, Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_ui_sub
!               ( IntPtr dest, Culong op1, IntPtr op2 );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul
!               ( IntPtr dest, IntPtr op1, IntPtr op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul_si
!               ( IntPtr dest, IntPtr op1, Clong op2 );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul_ui
!               ( IntPtr dest, IntPtr op1, Culong op2 );        
                                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul_2exp
!               ( IntPtr dest, IntPtr op1, Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_neg
!               ( IntPtr dest, IntPtr source );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_abs
!               ( IntPtr dest, IntPtr source ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_q
!               ( IntPtr q, IntPtr n, IntPtr d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_r
!               ( IntPtr r, IntPtr n, IntPtr d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_qr
!               ( IntPtr q, IntPtr r, IntPtr n, IntPtr d );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_q_ui
!               ( IntPtr q, IntPtr n, Culong d );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_r_ui
!               ( IntPtr r, IntPtr n, Culong d );       
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_qr_ui
!               ( IntPtr q, IntPtr r, IntPtr n, Culong d );             
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_ui
!               ( IntPtr n, Culong d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_q_2exp
!               ( IntPtr q, IntPtr n, Culong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_r_2exp
!               ( IntPtr r, IntPtr n, Culong b );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_q
!               ( IntPtr q, IntPtr n, IntPtr d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_r
!               ( IntPtr r, IntPtr n, IntPtr d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_qr
!               ( IntPtr q, IntPtr r, IntPtr n, IntPtr d );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_q_ui
!               ( IntPtr q, IntPtr n, Culong d );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_r_ui
!               ( IntPtr r, IntPtr n, Culong d );       
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_qr_ui
!               ( IntPtr q, IntPtr r, IntPtr n, Culong d );             
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_ui
!               ( IntPtr n, Culong d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_q_2exp
!               ( IntPtr q, IntPtr n, Culong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_r_2exp
!               ( IntPtr r, IntPtr n, Culong b );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_q
!               ( IntPtr q, IntPtr n, IntPtr d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_r
!               ( IntPtr r, IntPtr n, IntPtr d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_qr
!               ( IntPtr q, IntPtr r, IntPtr n, IntPtr d );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_q_ui
!               ( IntPtr q, IntPtr n, Culong d );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_r_ui
!               ( IntPtr r, IntPtr n, Culong d );       
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_qr_ui
!               ( IntPtr q, IntPtr r, IntPtr n, Culong d );             
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_ui
!               ( IntPtr n, Culong d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_q_2exp
!               ( IntPtr q, IntPtr n, Culong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_r_2exp
!               ( IntPtr r, IntPtr n, Culong b );       
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mod
!               ( IntPtr r, IntPtr n, IntPtr d );               
        
        // Bitwise operators
--- 1286,1443 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_add
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_add_ui
!               ( mpz_t rop, mpz_t op1, Culong op2 );           
                
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sub
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sub_ui
!               ( mpz_t rop, mpz_t op1, Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_ui_sub
!               ( mpz_t rop, Culong op1, mpz_t op2 );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul_si
!               ( mpz_t rop, mpz_t op1, Clong op2 );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul_ui
!               ( mpz_t rop, mpz_t op1, Culong op2 );   
                                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mul_2exp
!               ( mpz_t rop, mpz_t op1, Culong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_neg
!               ( mpz_t rop, mpz_t op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_abs
!               ( mpz_t rop, mpz_t op );        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_q
!               ( mpz_t q, mpz_t n, mpz_t d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_r
!               ( mpz_t r, mpz_t n, mpz_t d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_qr
!               ( mpz_t q, mpz_t r, mpz_t n, mpz_t d );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_q_ui
!               ( mpz_t q, mpz_t n, Culong d );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_r_ui
!               ( mpz_t r, mpz_t n, Culong d ); 
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_qr_ui
!               ( mpz_t q, mpz_t r, mpz_t n, Culong d );                
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_ui
!               ( mpz_t n, Culong d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_cdiv_q_2exp
!               ( mpz_t q, mpz_t n, Culong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_cdiv_r_2exp
!               ( mpz_t r, mpz_t n, Culong b );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_q
!               ( mpz_t q, mpz_t n, mpz_t d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_r
!               ( mpz_t r, mpz_t n, mpz_t d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_qr
!               ( mpz_t q, mpz_t r, mpz_t n, mpz_t d );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_q_ui
!               ( mpz_t q, mpz_t n, Culong d );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_r_ui
!               ( mpz_t r, mpz_t n, Culong d ); 
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_qr_ui
!               ( mpz_t q, mpz_t r, mpz_t n, Culong d );                
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_ui
!               ( mpz_t n, Culong d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fdiv_q_2exp
!               ( mpz_t q, mpz_t n, Culong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_fdiv_r_2exp
!               ( mpz_t r, mpz_t n, Culong b );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_q
!               ( mpz_t q, mpz_t n, mpz_t d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_r
!               ( mpz_t r, mpz_t n, mpz_t d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_qr
!               ( mpz_t q, mpz_t r, mpz_t n, mpz_t d );
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_q_ui
!               ( mpz_t q, mpz_t n, Culong d );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_r_ui
!               ( mpz_t r, mpz_t n, Culong d ); 
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_qr_ui
!               ( mpz_t q, mpz_t r, mpz_t n, Culong d );                
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_ui
!               ( mpz_t n, Culong d );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_tdiv_q_2exp
!               ( mpz_t q, mpz_t n, Culong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_tdiv_r_2exp
!               ( mpz_t r, mpz_t n, Culong b ); 
                        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_mod
!               ( mpz_t r, mpz_t n, mpz_t d );          
        
        // Bitwise operators
***************
*** 1428,1448 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_and
!               ( IntPtr rop, IntPtr op1, IntPtr op2 ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_ior
!               ( IntPtr rop, IntPtr op1, IntPtr op2 ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_xor
!               ( IntPtr rop, IntPtr op1, IntPtr op2 ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_com
!               ( IntPtr rop, IntPtr op );      
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_popcount
!               ( IntPtr op );  
                
  
--- 1445,1465 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_and
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );    
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_ior
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );    
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_xor
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );    
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_com
!               ( mpz_t rop, mpz_t op );        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_popcount
!               ( mpz_t op );   
                
  
***************
*** 1450,1470 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_scan0
!               ( IntPtr op, Culong starting_bit );     
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_scan1
!               ( IntPtr op, Culong starting_bit );     
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_setbit
!               ( IntPtr rop, Culong bit_index );       
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_clrbit
!               ( IntPtr rop, Culong bit_index );       
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_tstbit
!               ( IntPtr op, Culong bit_index );        
                        
        // Comparisons
--- 1467,1487 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_scan0
!               ( mpz_t op, Culong starting_bit );      
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_scan1
!               ( mpz_t op, Culong starting_bit );      
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_setbit
!               ( mpz_t rop, Culong bit_index );        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_clrbit
!               ( mpz_t rop, Culong bit_index );        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_tstbit
!               ( mpz_t op, Culong bit_index ); 
                        
        // Comparisons
***************
*** 1472,1520 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp
!               ( IntPtr a, IntPtr b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp_si
!               ( IntPtr a, Clong b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp_ui
!               ( IntPtr a, Culong b );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp_d
!               ( IntPtr a, Cdouble b );        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_divexact
!               ( IntPtr q, IntPtr n, IntPtr d );       
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_divexact_ui
!               ( IntPtr q, IntPtr n, Culong d );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_divisible_p
!               ( IntPtr n, IntPtr d ); 
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_divisible_ui_p
!               ( IntPtr n, Culong d );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_divisible_2exp_p
!               ( IntPtr n, Culong b ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_congruent_p
!               ( IntPtr n, IntPtr c, IntPtr d );       
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_congruent_ui_p
!               ( IntPtr n, Culong c, Culong d );               
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_congruent_2exp_p
!               ( IntPtr n, IntPtr c, Culong b );               
                                        
        // Powers and roots     
--- 1489,1537 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp
!               ( mpz_t op1, mpz_t op2);
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp_si
!               ( mpz_t op1, Clong op2 );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp_ui
!               ( mpz_t op1, Culong op2 );              
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_cmp_d
!               ( mpz_t op1, Cdouble op2 );     
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_divexact
!               ( mpz_t q, mpz_t n, mpz_t d );  
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_divexact_ui
!               ( mpz_t q, mpz_t n, Culong d );         
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_divisible_p
!               ( mpz_t n, mpz_t d );   
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_divisible_ui_p
!               ( mpz_t n, Culong d );          
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_divisible_2exp_p
!               ( mpz_t n, Culong b );  
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_congruent_p
!               ( mpz_t n, mpz_t c, mpz_t d );  
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_congruent_ui_p
!               ( mpz_t n, Culong c, Culong d );                
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_congruent_2exp_p
!               ( mpz_t n, mpz_t c, Culong b );         
                                        
        // Powers and roots     
***************
*** 1522,1586 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_powm
!               ( IntPtr result, IntPtr @base, IntPtr exp, IntPtr mod );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_powm_ui
!               ( IntPtr result, IntPtr @base, Culong exp, IntPtr mod );        
        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_pow_ui
!               ( IntPtr result, IntPtr @base, Culong exp );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_ui_pow_ui
!               ( IntPtr rop, Culong @base, Culong exp );               
                        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_root
!               ( IntPtr result, IntPtr a, Culong n );  
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sqrt
!               ( IntPtr result, IntPtr a );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sqrtrem
!               ( IntPtr result, IntPtr rem, IntPtr a );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_perfect_power_p
!               ( IntPtr a );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_perfect_square_p
!               ( IntPtr a );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_invert
!               ( IntPtr rop, IntPtr op1, IntPtr op2 );
        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_probab_prime_p
!               ( IntPtr n, Cint reps );
        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_nextprime
!               ( IntPtr result, IntPtr p );    
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_remove
!               ( IntPtr rop, IntPtr op, IntPtr f );    
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern SizeType __gmpz_size
!               ( IntPtr op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern SizeType __gmpz_sizeinbase
!               ( IntPtr op, Cint @base );              
        
        // Number theory and other special functions    
--- 1539,1603 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_powm
!               ( mpz_t rop, mpz_t @base, mpz_t exp, mpz_t mod );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_powm_ui
!               ( mpz_t rop, mpz_t @base, Culong exp, mpz_t mod );      
        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_pow_ui
!               ( mpz_t rop, mpz_t @base, Culong exp );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_ui_pow_ui
!               ( mpz_t rop, Culong @base, Culong exp );                
                        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_root
!               ( mpz_t rop, mpz_t op, Culong n );      
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sqrt
!               ( mpz_t rop, mpz_t op );
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_sqrtrem
!               ( mpz_t rop1, mpz_t rop2, mpz_t op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_perfect_power_p
!               ( mpz_t op );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_perfect_square_p
!               ( mpz_t op );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_invert
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );
        
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_probab_prime_p
!               ( mpz_t n, Cint reps );
        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_nextprime
!               ( mpz_t result, mpz_t p );      
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_remove
!               ( mpz_t rop, mpz_t op, mpz_t f );       
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern SizeType __gmpz_size
!               ( mpz_t op );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern SizeType __gmpz_sizeinbase
!               ( mpz_t op, Cint @base );               
        
        // Number theory and other special functions    
***************
*** 1588,1668 ****
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_gcd
!               ( IntPtr result, IntPtr a, IntPtr b );  
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_gcd_ui
!               ( IntPtr result, IntPtr a, Culong b );  
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_gcdext
!               ( IntPtr g, IntPtr s, IntPtr t, IntPtr a, IntPtr b );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lcm
!               ( IntPtr rop, IntPtr op1, IntPtr op2 ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lcm_ui
!               ( IntPtr rop, IntPtr op1, Culong op2 ); 
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_jacobi
!               ( IntPtr a, IntPtr b ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_legendre
!               ( IntPtr a, IntPtr p ); 
        
        [DllImport("libgmp", EntryPoint="__gmpz_jacobi", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_kronecker
!               ( IntPtr a, IntPtr b ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_kronecker_si
!               ( IntPtr a, Clong b );  
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_kronecker_ui
!               ( IntPtr a, Culong b ); 
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_si_kronecker
!               ( Clong a, IntPtr b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_ui_kronecker
!               ( Culong a, IntPtr b ); 
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fac_ui
!               ( IntPtr rop, Culong op );                      
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_bin_ui
!               ( IntPtr rop, IntPtr n, Culong k );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_bin_uiui
!               ( IntPtr rop, Culong n, Culong k);
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fib_ui
!               ( IntPtr fn, Culong n );                                
                                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fib2_ui
!               ( IntPtr fn, IntPtr fnsub1, Culong n );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lucnum_ui
!               ( IntPtr ln, Culong n );                                
                                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lucnum2_ui
!               ( IntPtr ln, IntPtr lnsub1, Culong n );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_hamdist
!               ( IntPtr op1, IntPtr op2 );             
                
  } // Class Integer
--- 1605,1685 ----
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_gcd
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );    
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_gcd_ui
!               ( mpz_t rop, mpz_t op1, Culong op2 );   
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_gcdext
!               ( mpz_t g, mpz_t s, mpz_t t, mpz_t a, mpz_t b );        
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lcm
!               ( mpz_t rop, mpz_t op1, mpz_t op2 );    
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lcm_ui
!               ( mpz_t rop, mpz_t op1, Culong op2 );   
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_jacobi
!               ( mpz_t a, mpz_t b );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_legendre
!               ( mpz_t a, mpz_t p );   
        
        [DllImport("libgmp", EntryPoint="__gmpz_jacobi", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_kronecker
!               ( mpz_t a, mpz_t b );   
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_kronecker_si
!               ( mpz_t a, Clong b );   
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_kronecker_ui
!               ( mpz_t a, Culong b );  
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_si_kronecker
!               ( Clong a, mpz_t b );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Cint __gmpz_ui_kronecker
!               ( Culong a, mpz_t b );  
  
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fac_ui
!               ( mpz_t rop, Culong op );                       
        
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_bin_ui
!               ( mpz_t rop, mpz_t n, Culong k );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_bin_uiui
!               ( mpz_t rop, Culong n, Culong k);
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fib_ui
!               ( mpz_t fn, Culong n );                         
                                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_fib2_ui
!               ( mpz_t fn, mpz_t fnsub1, Culong n );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lucnum_ui
!               ( mpz_t ln, Culong n );                         
                                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern void __gmpz_lucnum2_ui
!               ( mpz_t ln, mpz_t lnsub1, Culong n );
                
        [DllImport("libgmp", CharSet=CharSet.Ansi)]
        private static extern Culong __gmpz_hamdist
!               ( mpz_t op1, mpz_t op2 );               
                
  } // Class Integer





reply via email to

[Prev in Thread] Current Thread [Next in Thread]