Index: IntegerProgramming/BigInt.cc
===================================================================
--- IntegerProgramming/BigInt.cc	(revision b08831b5ca1d5599093809e7c98515d0ceef5423)
+++ IntegerProgramming/BigInt.cc	(revision 5f6e18a13e164d6edb16c75b117c5a59fa98cbf1)
@@ -17,50 +17,8 @@
 }
 
-BigInt::BigInt(long int a)
+BigInt::BigInt(int a)
 {
   mpz_init(value);
-  mpz_set_si(value,a);
-}
-
-BigInt::BigInt(unsigned long int a)
-{
-  mpz_init(value);
-  mpz_set_ui(value,a);
-}
-
-BigInt::BigInt(int a)
-{
-  mpz_init(value);
-  mpz_set_si(value,(long int)a);
-}
-
-BigInt::BigInt(unsigned int a)
-{
-  mpz_init(value);
-  mpz_set_ui(value,(unsigned long)a);
-}
-
-BigInt::BigInt(short int a)
-{
-  mpz_init(value);
-  mpz_set_si(value,(long int)a);
-}
-
-BigInt::BigInt(unsigned short int a)
-{
-  mpz_init(value);
-  mpz_set_ui(value,(unsigned long int)a);
-}
-
-BigInt::BigInt(char a)
-{
-  mpz_init(value);
-  mpz_set_si(value,(long int)a);
-}
-
-BigInt::BigInt(unsigned char a)
-{
-  mpz_init(value);
-  mpz_set_ui(value,(unsigned long int)a);
+  mpz_set_si(value,(long)a);
 }
 
@@ -83,49 +41,7 @@
 //
 
-BigInt& BigInt::operator=(long int a)
-{
-  mpz_set_si(value,a);
-  return *this;
-}
-
-BigInt& BigInt::operator=(unsigned long int a)
-{
-  mpz_set_ui(value,a);
-  return *this;
-}
-
 BigInt& BigInt::operator=(int a)
 {
-  mpz_set_si(value,(long int) a);
-  return *this;
-}
-
-BigInt& BigInt::operator=(unsigned int a)
-{
-  mpz_set_ui(value,(unsigned long int) a);
-  return *this;
-}
-
-BigInt& BigInt::operator=(short int a)
-{
-  mpz_set_si(value,(long int) a);
-  return *this;
-}
-
-BigInt& BigInt::operator=(unsigned short int a)
-{
-  mpz_set_ui(value,(unsigned long int) a);
-  return *this;
-}
-
-BigInt& BigInt::operator=(char a)
-{
-  mpz_set_si(value,(long int) a);
-  return *this;
-}
-
-BigInt& BigInt::operator=(unsigned char a)
-{
-  mpz_set_ui(value,(unsigned long int) a);
+  mpz_set_si(value,(long)a);
   return *this;
 }
@@ -147,52 +63,16 @@
 }
 
-BigInt::operator long int()
+BigInt::operator int()
 {
   long int ret_val;
   ret_val=mpz_get_si(value);
-  return ret_val;
-}
-
-BigInt::operator unsigned long int()
+  return (int)ret_val;
+}
+
+BigInt::operator short()
 {
   long int ret_val;
-  ret_val=mpz_get_ui(value);
-  return ret_val;
-}
-
-BigInt::operator int()
-{
-  int ret_val=operator long int();
-  return ret_val;
-}
-
-BigInt::operator unsigned int()
-{
-  unsigned int ret_val=operator unsigned long int();
-  return ret_val;
-}
-
-BigInt::operator short int()
-{
-  short int ret_val=operator long int();
-  return ret_val;
-}
-
-BigInt::operator unsigned short int()
-{
-  unsigned short int ret_val=operator unsigned long int();
-  return ret_val;
-}
-
-BigInt::operator char()
-{
-  char ret_val=operator long int();
-  return ret_val;
-}
-
-BigInt::operator unsigned char()
-{
-  unsigned char ret_val=operator unsigned long int();
-  return ret_val;
+  ret_val=mpz_get_si(value);
+  return (short)ret_val;
 }
 
@@ -326,5 +206,5 @@
 }
 
-bool operator<(const long int& a,const BigInt& b)
+bool operator<(const int& a,const BigInt& b)
 {
   if (mpz_cmp(BigInt(a).value,b.value)<0) return true;
@@ -332,5 +212,5 @@
 }
 
-bool operator<=(const long int& a,const BigInt& b)
+bool operator<=(const int& a,const BigInt& b)
 {
   if (mpz_cmp(BigInt(a).value,b.value)>0) return false;
@@ -338,5 +218,5 @@
 }
 
-bool operator>(const long int& a,const BigInt& b)
+bool operator>(const int& a,const BigInt& b)
 {
   if (mpz_cmp(BigInt(a).value,b.value)>0) return true;
@@ -344,5 +224,5 @@
 }
 
-bool operator>=(const long int& a,const BigInt& b)
+bool operator>=(const int& a,const BigInt& b)
 {
   if (mpz_cmp(BigInt(a).value,b.value)<0) return false;
@@ -350,5 +230,5 @@
 }
 
-bool operator==(const long int& a,const BigInt& b)
+bool operator==(const int& a,const BigInt& b)
 {
   if (!mpz_cmp(BigInt(a).value,b.value)) return true;
@@ -356,5 +236,5 @@
 }
 
-bool operator!=(const long int& a,const BigInt& b)
+bool operator!=(const int& a,const BigInt& b)
 {
   if (!mpz_cmp(BigInt(a).value,b.value)) return false;
@@ -362,5 +242,5 @@
 }
 
-bool operator<(const BigInt& a,const long int& b)
+bool operator<(const BigInt& a,const int& b)
 {
   if (mpz_cmp(a.value,BigInt(b).value)<0) return true;
@@ -368,5 +248,5 @@
 }
 
-bool operator<=(const BigInt& a,const long int& b)
+bool operator<=(const BigInt& a,const int& b)
 {
   if (mpz_cmp(a.value,BigInt(b).value)>0) return false;
@@ -374,5 +254,5 @@
 }
 
-bool operator>(const BigInt& a,const long int& b)
+bool operator>(const BigInt& a,const int& b)
 {
   if (mpz_cmp(a.value,BigInt(b).value)>0) return true;
@@ -380,5 +260,5 @@
 }
 
-bool operator>=(const BigInt& a,const long int& b)
+bool operator>=(const BigInt& a,const int& b)
 {
   if (mpz_cmp(a.value,BigInt(b).value)<0) return false;
@@ -386,5 +266,5 @@
 }
 
-bool operator==(const BigInt& a,const long int& b)
+bool operator==(const BigInt& a,const int& b)
 {
   if (!mpz_cmp(a.value,BigInt(b).value)) return true;
@@ -392,5 +272,5 @@
 }
 
-bool operator!=(const BigInt& a,const long int& b)
+bool operator!=(const BigInt& a,const int& b)
 {
   if (!mpz_cmp(a.value,BigInt(b).value)) return false;
@@ -426,5 +306,5 @@
 }
 
-BigInt operator+(const long int& a,const BigInt &b)
+BigInt operator+(const int& a,const BigInt &b)
 {
   BigInt erg(a);
@@ -432,5 +312,5 @@
 }
 
-BigInt operator-(const long int& a,const BigInt &b)
+BigInt operator-(const int& a,const BigInt &b)
 {
   BigInt erg(a);
@@ -438,5 +318,5 @@
 }
 
-BigInt operator*(const long int& a,const BigInt &b)
+BigInt operator*(const int& a,const BigInt &b)
 {
   BigInt erg(a);
@@ -444,5 +324,5 @@
 }
 
-BigInt operator/(const long int& a,const BigInt &b)
+BigInt operator/(const int& a,const BigInt &b)
 {
   BigInt erg(a);
@@ -450,5 +330,5 @@
 }
 
-BigInt operator+(const BigInt& a,const long int &b)
+BigInt operator+(const BigInt& a,const int &b)
 {
   BigInt erg(a);
@@ -456,5 +336,5 @@
 }
 
-BigInt operator-(const BigInt& a,const long int &b)
+BigInt operator-(const BigInt& a,const int &b)
 {
   BigInt erg(a);
@@ -462,5 +342,5 @@
 }
 
-BigInt operator*(const BigInt& a,const long int &b)
+BigInt operator*(const BigInt& a,const int &b)
 {
   BigInt erg(a);
@@ -468,5 +348,5 @@
 }
 
-BigInt operator/(const BigInt& a,const long int &b)
+BigInt operator/(const BigInt& a,const int &b)
 {
   BigInt erg(a);
Index: IntegerProgramming/BigInt.h
===================================================================
--- IntegerProgramming/BigInt.h	(revision b08831b5ca1d5599093809e7c98515d0ceef5423)
+++ IntegerProgramming/BigInt.h	(revision 5f6e18a13e164d6edb16c75b117c5a59fa98cbf1)
@@ -21,34 +21,14 @@
 
     BigInt( );
-    BigInt( long int );
-    BigInt( unsigned long int );
     BigInt( int );
-    BigInt( unsigned int );
-    BigInt( short int );
-    BigInt( unsigned short int );
-    BigInt( char );
-    BigInt( unsigned char );
     BigInt( const BigInt& );
     ~BigInt( );
 
-    BigInt& operator = ( long int );
-    BigInt& operator = ( unsigned long int );
     BigInt& operator = ( int );
-    BigInt& operator = ( unsigned int );
-    BigInt& operator = ( short int );
-    BigInt& operator = ( unsigned short int );
-    BigInt& operator = ( char );
-    BigInt& operator = ( unsigned char );
     BigInt& operator = ( const BigInt& );
 
     operator bool( );
-    operator long int( );
-    operator unsigned long int( );
     operator int( );
-    operator unsigned int( );
-    operator short int( );
-    operator unsigned short int( );
-    operator char( );
-    operator unsigned char( );
+    operator short( );
 
     BigInt  operator - ( );
@@ -70,16 +50,16 @@
     friend bool operator == ( const BigInt&, const BigInt& );
     friend bool operator != ( const BigInt&, const BigInt& );
-    friend bool operator <  ( const long int&, const BigInt& );
-    friend bool operator <= ( const long int&, const BigInt& );
-    friend bool operator >  ( const long int&, const BigInt& );
-    friend bool operator >= ( const long int&, const BigInt& );
-    friend bool operator == ( const long int&, const BigInt& );
-    friend bool operator != ( const long int&, const BigInt& );
-    friend bool operator <  ( const BigInt&, const long int& );
-    friend bool operator <= ( const BigInt&, const long int& );
-    friend bool operator >  ( const BigInt&, const long int& );
-    friend bool operator >= ( const BigInt&, const long int& );
-    friend bool operator == ( const BigInt&, const long int& );
-    friend bool operator != ( const BigInt&, const long int& );
+    friend bool operator <  ( const int&, const BigInt& );
+    friend bool operator <= ( const int&, const BigInt& );
+    friend bool operator >  ( const int&, const BigInt& );
+    friend bool operator >= ( const int&, const BigInt& );
+    friend bool operator == ( const int&, const BigInt& );
+    friend bool operator != ( const int&, const BigInt& );
+    friend bool operator <  ( const BigInt&, const int& );
+    friend bool operator <= ( const BigInt&, const int& );
+    friend bool operator >  ( const BigInt&, const int& );
+    friend bool operator >= ( const BigInt&, const int& );
+    friend bool operator == ( const BigInt&, const int& );
+    friend bool operator != ( const BigInt&, const int& );
   
     friend int    sgn ( const BigInt& );
@@ -91,12 +71,12 @@
 BigInt operator * ( const BigInt&, const BigInt& );
 BigInt operator / ( const BigInt&, const BigInt& );
-BigInt operator + ( const long int&, const BigInt& );
-BigInt operator - ( const long int&, const BigInt& );
-BigInt operator * ( const long int&, const BigInt& );
-BigInt operator / ( const long int&, const BigInt& );
-BigInt operator + ( const BigInt&, const long int& );
-BigInt operator - ( const BigInt&, const long int& );
-BigInt operator * ( const BigInt&, const long int& );
-BigInt operator / ( const BigInt&, const long int& );
+BigInt operator + ( const int&, const BigInt& );
+BigInt operator - ( const int&, const BigInt& );
+BigInt operator * ( const int&, const BigInt& );
+BigInt operator / ( const int&, const BigInt& );
+BigInt operator + ( const BigInt&, const int& );
+BigInt operator - ( const BigInt&, const int& );
+BigInt operator * ( const BigInt&, const int& );
+BigInt operator / ( const BigInt&, const int& );
 
 #endif  // BIG_INT_H
