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

◆ divide()

ring_elem LocalRing::divide ( const ring_elem f,
const ring_elem g ) const
virtual

Implements Ring.

Definition at line 611 of file localring.cpp.

612{
613 const local_elem *f = a.get_local_elem();
614 const local_elem *g = b.get_local_elem();
615 ring_elem top, bottom;
616 if (is_unit(b))
617 {
618 top = mRing->mult(f->numer, g->denom);
619 bottom = mRing->mult(f->denom, g->numer);
620 }
621 else
622 {
623 throw exc::engine_error("attempt to divide by a non-unit");
624 }
625 return ring_elem(make_elem(top, bottom));
626}
local_elem * make_elem(ring_elem a, ring_elem b) const
Definition localring.cpp:52
virtual bool is_unit(const ring_elem f) const
const PolyRing * mRing
Definition localring.hpp:69
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_unit(), make_elem(), mRing, and local_elem::numer.

Referenced by syzygy().