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

◆ invert()

ring_elem LocalRing::invert ( const ring_elem f) const
virtual

Implements Ring.

Definition at line 599 of file localring.cpp.

600{
601 const local_elem *f = a.get_local_elem();
602 if (mRing->is_zero(f->numer) || !is_unit(a))
603 {
604 throw exc::engine_error("attempt to invert a non-unit");
605 }
606 ring_elem top = mRing->copy(f->denom);
607 ring_elem bottom = mRing->copy(f->numer);
608 return ring_elem(make_elem(top, bottom));
609}
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.