#ifndef MLIR_ANALYSIS_PRESBURGER_FRACTION_H
#define MLIR_ANALYSIS_PRESBURGER_FRACTION_H
#include "llvm/ADT/DynamicAPInt.h"
#include "llvm/Support/raw_ostream.h"
namespace mlir {
namespace presburger {
DynamicAPInt;
struct Fraction { … };
inline int compare(const Fraction &x, const Fraction &y) { … }
inline DynamicAPInt floor(const Fraction &f) { … }
inline DynamicAPInt ceil(const Fraction &f) { … }
inline Fraction operator-(const Fraction &x) { … }
inline bool operator<(const Fraction &x, const Fraction &y) { … }
inline bool operator<=(const Fraction &x, const Fraction &y) { … }
inline bool operator==(const Fraction &x, const Fraction &y) { … }
inline bool operator!=(const Fraction &x, const Fraction &y) { … }
inline bool operator>(const Fraction &x, const Fraction &y) { … }
inline bool operator>=(const Fraction &x, const Fraction &y) { … }
inline Fraction abs(const Fraction &f) { … }
inline Fraction reduce(const Fraction &f) { … }
inline Fraction operator*(const Fraction &x, const Fraction &y) { … }
inline Fraction operator/(const Fraction &x, const Fraction &y) { … }
inline Fraction operator+(const Fraction &x, const Fraction &y) { … }
inline Fraction operator-(const Fraction &x, const Fraction &y) { … }
inline DynamicAPInt round(const Fraction &f) { … }
inline Fraction &operator+=(Fraction &x, const Fraction &y) { … }
inline Fraction &operator-=(Fraction &x, const Fraction &y) { … }
inline Fraction &operator/=(Fraction &x, const Fraction &y) { … }
inline Fraction &operator*=(Fraction &x, const Fraction &y) { … }
inline llvm::raw_ostream &operator<<(llvm::raw_ostream &os, const Fraction &x) { … }
}
}
#endif