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

◆ homogenize() [2/2]

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

Reimplemented from Ring.

Definition at line 662 of file frac.cpp.

666{
667 int d1, d2, lo1, lo2;
668 ring_elem top, bottom;
669 frac_elem *result;
670 const frac_elem *f = FRAC_VAL(a);
671 R_->degree_weights(f->numer, wts, lo1, d1);
672 R_->degree_weights(f->denom, wts, lo2, d2);
673 if (deg >= d1 - d2)
674 {
675 top = R_->homogenize(f->numer, v, deg + d2, wts);
676 bottom = R_->homogenize(f->denom, v, d2, wts);
677 result = make_elem(top, bottom);
678 }
679 else
680 {
681 top = R_->homogenize(f->numer, v, d1, wts);
682 bottom = R_->homogenize(f->denom, v, -deg + d1, wts);
683 result = make_elem(top, bottom);
684 }
685 return FRAC_RINGELEM(result);
686}
frac_elem * make_elem(ring_elem a, ring_elem b) const
Definition frac.cpp:182
const PolyRingFlat * R_
Definition frac.hpp:63
#define FRAC_VAL(f)
Definition frac.cpp:14
#define FRAC_RINGELEM(a)
Definition frac.cpp:15
VALGRIND_MAKE_MEM_DEFINED & result(result)
ring_elem numer
Definition frac.hpp:43
ring_elem denom
Definition frac.hpp:44

References frac_elem::denom, FRAC_RINGELEM, FRAC_VAL, make_elem(), frac_elem::numer, R_, and result().