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

◆ homogenize() [2/2]

ring_elem LocalRing::homogenize ( const ring_elem f,
int v,
int deg,
const std::vector< int > & wts ) const
virtual

Reimplemented from Ring.

Definition at line 432 of file localring.cpp.

436{
437 int d1, d2, lo1, lo2;
438 ring_elem top, bottom;
439 const local_elem *f = a.get_local_elem();
440 mRing->degree_weights(f->numer, wts, lo1, d1);
441 mRing->degree_weights(f->denom, wts, lo2, d2);
442 if (deg >= d1 - d2)
443 {
444 top = mRing->homogenize(f->numer, v, deg + d2, wts);
445 bottom = mRing->homogenize(f->denom, v, d2, wts);
446 }
447 else
448 {
449 top = mRing->homogenize(f->numer, v, d1, wts);
450 bottom = mRing->homogenize(f->denom, v, -deg + d1, wts);
451 }
452 local_elem *result = make_elem(top, bottom);
453 return ring_elem(result);
454}
local_elem * make_elem(ring_elem a, ring_elem b) const
Definition localring.cpp:52
const PolyRing * mRing
Definition localring.hpp:69
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(), make_elem(), mRing, local_elem::numer, and result().