Macaulay2 Engine
Loading...
Searching...
No Matches

◆ is_equal()

bool LocalRing::is_equal ( const ring_elem f,
const ring_elem g ) const
virtual

Implements Ring.

Definition at line 183 of file localring.cpp.

184{
185 const local_elem *f = a.get_local_elem();
186 const local_elem *g = b.get_local_elem();
187 if (mRing->is_equal(f->denom, g->denom))
188 {
189 return mRing->is_equal(f->numer, g->numer);
190 }
191 else
192 {
193 ring_elem h = subtract(a, b);
194 bool result = is_zero(h);
195 remove(h);
196 return result;
197 }
198}
const PolyRing * mRing
Definition localring.hpp:69
virtual void remove(ring_elem &f) const
virtual bool is_zero(const ring_elem f) const
virtual ring_elem subtract(const ring_elem f, const ring_elem g) const
VALGRIND_MAKE_MEM_DEFINED & result(result)
ring_elem numer
Definition localring.hpp:48
ring_elem denom
Definition localring.hpp:49
const local_elem * get_local_elem() const
Definition ringelem.hpp:136

References local_elem::denom, ring_elem::get_local_elem(), is_zero(), mRing, local_elem::numer, remove(), result(), and subtract().