This repository has been archived on 2025-02-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Pivot/include/NR.h
Persson-dev a135df2e96
All checks were successful
Linux arm64 / Build (push) Successful in 2m33s
trop de trucs
2024-05-14 13:00:59 +02:00

49 lines
1.0 KiB
C++

#pragma once
#include <iostream>
class NR {
public:
using Int = long long;
private:
Int m_Numerator;
Int m_Denominator; // has to be > 0, sign is carried by the numerator
public:
NR();
NR(Int entier);
NR(Int numerator, Int denominator); // check if denominator != 0
Int GetNumerator() const;
Int GetDenominator() const;
bool operator==(const NR& opNR) const;
bool operator<(const NR& opNR) const;
bool operator>(const NR& opNR) const;
bool operator!=(const NR& opNR) const;
bool operator<=(const NR& opNR) const;
bool operator>=(const NR& opNR) const;
NR operator+(const NR& opNR) const;
NR operator-(const NR& opNR) const;
NR operator*(const NR& opNR) const;
NR operator/(const NR& opNR) const;
NR& operator+=(const NR& opNR);
NR& operator-=(const NR& opNR);
NR& operator*=(const NR& opNR);
NR& operator/=(const NR& opNR);
NR operator-() const;
NR Inverse() const;
friend std::ostream& operator<<(std::ostream& os, const NR& opNR);
friend std::istream& operator>>(std::istream& os, NR& opNR);
private:
void Reduce();
};