6
6
//
7
7
// ===----------------------------------------------------------------------===//
8
8
//
9
- // This is a simple class to represent fractions. It supports arithmetic ,
9
+ // This is a simple class to represent fractions. It supports multiplication ,
10
10
// comparison, floor, and ceiling operations.
11
11
//
12
12
// ===----------------------------------------------------------------------===//
@@ -30,15 +30,15 @@ struct Fraction {
30
30
Fraction () = default ;
31
31
32
32
// / Construct a Fraction from a numerator and denominator.
33
- Fraction (const MPInt &oNum, const MPInt &oDen = MPInt( 1 ) ) : num(oNum), den(oDen) {
33
+ Fraction (const MPInt &oNum, const MPInt &oDen) : num(oNum), den(oDen) {
34
34
if (den < 0 ) {
35
35
num = -num;
36
36
den = -den;
37
37
}
38
38
}
39
39
// / Overloads for passing literals.
40
- Fraction (const MPInt &num, int64_t den = 1 ) : Fraction(num, MPInt(den)) {}
41
- Fraction (int64_t num, const MPInt &den = MPInt( 1 ) ) : Fraction(MPInt(num), den) {}
40
+ Fraction (const MPInt &num, int64_t den) : Fraction(num, MPInt(den)) {}
41
+ Fraction (int64_t num, const MPInt &den) : Fraction(MPInt(num), den) {}
42
42
Fraction (int64_t num, int64_t den) : Fraction(MPInt(num), MPInt(den)) {}
43
43
44
44
// Return the value of the fraction as an integer. This should only be called
@@ -48,10 +48,6 @@ struct Fraction {
48
48
return num / den;
49
49
}
50
50
51
- llvm::raw_ostream &print (llvm::raw_ostream &os) const {
52
- return os << " (" << num << " /" << den << " )" ;
53
- }
54
-
55
51
// / The numerator and denominator, respectively. The denominator is always
56
52
// / positive.
57
53
MPInt num{0 }, den{1 };
@@ -164,23 +160,6 @@ inline llvm::raw_ostream &operator<<(llvm::raw_ostream &os, const Fraction &x) {
164
160
return os;
165
161
}
166
162
167
- inline Fraction operator /(const Fraction &x, const Fraction &y) {
168
- return Fraction (x.num * y.den , x.den * y.num );
169
- }
170
-
171
- inline Fraction operator +(const Fraction &x, const Fraction &y) {
172
- return Fraction (x.num * y.den + x.den * y.num , x.den * y.den );
173
- }
174
-
175
- inline Fraction operator -(const Fraction &x, const Fraction &y) {
176
- return Fraction (x.num * y.den - x.den * y.num , x.den * y.den );
177
- }
178
-
179
- inline llvm::raw_ostream &operator <<(llvm::raw_ostream &os, const Fraction &x) {
180
- x.print (os);
181
- return os;
182
- }
183
-
184
163
} // namespace presburger
185
164
} // namespace mlir
186
165
0 commit comments