201718
This commit is contained in:
@@ -21,6 +21,12 @@ public:
|
||||
return {value + rhs.value};
|
||||
}
|
||||
|
||||
auto operator+=(ZMod const& rhs) -> ZMod & {
|
||||
value += rhs.value;
|
||||
mpz_mod_ui(this->value.get_mpz_t(), value.get_mpz_t(), Mod);
|
||||
return *this;
|
||||
}
|
||||
|
||||
auto operator-() const -> ZMod {
|
||||
return {-value};
|
||||
}
|
||||
@@ -29,10 +35,22 @@ public:
|
||||
return {value - rhs.value};
|
||||
}
|
||||
|
||||
auto operator-=(ZMod const& rhs) -> ZMod & {
|
||||
value -= rhs.value;
|
||||
mpz_mod_ui(value.get_mpz_t(), value.get_mpz_t(), Mod);
|
||||
return *this;
|
||||
}
|
||||
|
||||
auto operator*(ZMod const& rhs) const -> ZMod {
|
||||
return {value * rhs.value};
|
||||
}
|
||||
|
||||
auto operator*=(ZMod const& rhs) -> ZMod & {
|
||||
value -= rhs.value;
|
||||
mpz_mod_ui(value.get_mpz_t(), value.get_mpz_t(), Mod);
|
||||
return *this;
|
||||
}
|
||||
|
||||
auto inverse() const -> ZMod {
|
||||
mpz_class m{Mod};
|
||||
ZMod result;
|
||||
@@ -47,4 +65,4 @@ public:
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user