minor NR changes
This commit is contained in:
@@ -33,7 +33,9 @@ class NR {
|
|||||||
NR& operator*=(const NR& opNR);
|
NR& operator*=(const NR& opNR);
|
||||||
NR& operator/=(const NR& opNR);
|
NR& operator/=(const NR& opNR);
|
||||||
|
|
||||||
void Invert();
|
NR operator-() const;
|
||||||
|
|
||||||
|
NR Inverse() const;
|
||||||
|
|
||||||
friend std::ostream& operator<<(std::ostream& os, const NR& opNR);
|
friend std::ostream& operator<<(std::ostream& os, const NR& opNR);
|
||||||
friend std::istream& operator>>(std::istream& os, NR& opNR);
|
friend std::istream& operator>>(std::istream& os, NR& opNR);
|
||||||
|
|||||||
10
src/NR.cpp
10
src/NR.cpp
@@ -19,6 +19,7 @@ NR::NR(int entier) : m_Numerator(entier), m_Denominator(1) {}
|
|||||||
NR::NR(int numerator, int denominator) :
|
NR::NR(int numerator, int denominator) :
|
||||||
m_Numerator((denominator > 0) ? numerator : -numerator), m_Denominator(std::abs(denominator)) {
|
m_Numerator((denominator > 0) ? numerator : -numerator), m_Denominator(std::abs(denominator)) {
|
||||||
assert(denominator != 0);
|
assert(denominator != 0);
|
||||||
|
Reduce();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NR::Reduce() {
|
void NR::Reduce() {
|
||||||
@@ -27,8 +28,9 @@ void NR::Reduce() {
|
|||||||
m_Numerator /= divisor;
|
m_Numerator /= divisor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NR::Invert() {
|
NR NR::Inverse() const {
|
||||||
*this = NR(m_Denominator, m_Numerator);
|
assert(*this != 0);
|
||||||
|
return {m_Denominator, m_Numerator};
|
||||||
}
|
}
|
||||||
|
|
||||||
int NR::GetNumerator() const {
|
int NR::GetNumerator() const {
|
||||||
@@ -128,3 +130,7 @@ NR& NR::operator/=(const NR& opNR) {
|
|||||||
*this = *this / opNR;
|
*this = *this / opNR;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NR NR::operator-() const {
|
||||||
|
return {-m_Numerator, m_Denominator};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user