dixon
[damir.git] / dixon / myint.h
blob79e142c3280dc5d1d392d11401b926e18c43bc8d
1 #include <stdlib.h>
3 #ifndef __MYINT__
4 #define __MYINT__
6 #include <iostream.h>
7 #include <time.h>
8 #include <gmp.h>
10 class myInt {
11 private:
12 mpz_t _x;
13 int base;
15 public:
16 myInt(void);
17 myInt(int);
18 myInt(const myInt &);
19 myInt(char *);
20 myInt(mpz_t);
22 ~myInt(void);
24 operator bool(void);
25 operator int(void);
26 operator float(void);
27 operator double(void);
29 void operator =(myInt);
30 void operator =(int);
31 void operator =(char *);
32 void operator =(const char *);
33 void operator =(mpz_t);
35 myInt operator -(void);
36 bool operator !(void);
38 void operator +=(myInt);
39 void operator +=(int);
41 void operator -=(myInt);
42 void operator -=(int);
44 void operator *=(myInt);
45 void operator *=(int);
47 void operator /=(myInt);
48 void operator /=(int);
50 void operator %=(myInt);
51 void operator %=(int);
53 myInt operator ++(void);
54 myInt operator --(void);
56 myInt operator ++(int);
57 myInt operator --(int);
59 friend myInt operator +(myInt, myInt);
60 friend myInt operator +(myInt, int);
61 friend myInt operator +(int, myInt);
63 friend myInt operator -(myInt, myInt);
64 friend myInt operator -(myInt, int);
65 friend myInt operator -(int, myInt);
67 friend myInt operator *(myInt, myInt);
68 friend myInt operator *(myInt, int);
69 friend myInt operator *(int, myInt);
71 friend myInt operator /(myInt, myInt);
72 friend myInt operator /(myInt, int);
73 friend myInt operator /(int, myInt);
75 friend myInt operator %(myInt, myInt);
76 friend myInt operator %(myInt, int);
77 friend myInt operator %(int, myInt);
80 friend bool operator ==(myInt, myInt);
81 friend bool operator ==(myInt, int);
82 friend bool operator ==(int, myInt);
84 friend bool operator !=(myInt, myInt);
85 friend bool operator !=(myInt, int);
86 friend bool operator !=(int, myInt);
88 friend bool operator <(myInt, myInt);
89 friend bool operator <(myInt, int);
90 friend bool operator <(int, myInt);
92 friend bool operator <=(myInt, myInt);
93 friend bool operator <=(myInt, int);
94 friend bool operator <=(int, myInt);
96 friend bool operator >(myInt, myInt);
97 friend bool operator >(myInt, int);
98 friend bool operator >(int, myInt);
100 friend bool operator >=(myInt, myInt);
101 friend bool operator >=(myInt, int);
102 friend bool operator >=(int, myInt);
104 friend ostream &operator <<(ostream &, myInt);
105 friend istream &operator >>(istream &, myInt &);
107 friend myInt gcd(myInt, myInt);
108 friend bool isprime(myInt);
109 friend bool issquare(myInt);
110 friend myInt sqrt(myInt);
112 #endif