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

◆ internal_add_to()

void FractionField::internal_add_to ( ring_elem & f,
ring_elem & g ) const

Definition at line 413 of file frac.cpp.

414{
415 frac_elem *f = FRAC_VAL(a);
416 frac_elem *g = FRAC_VAL(b);
417 if (R_->is_equal(f->denom, g->denom))
418 R_->add_to(f->numer, g->numer);
419 else
420 {
421 R_->mult_to(f->numer, g->denom);
422 ring_elem tmp = R_->mult(f->denom, g->numer);
423 R_->add_to(f->numer, tmp);
424 R_->mult_to(f->denom, g->denom);
425 if (R_->is_zero(f->denom))
426 {
428 return;
429 }
430 }
431 simplify(f);
432 remove(b);
433 a = FRAC_RINGELEM(f);
434}
ring_elem set_non_unit_frac(ring_elem top) const
Definition frac.cpp:89
void simplify(frac_elem *f) const
Definition frac.cpp:108
const PolyRingFlat * R_
Definition frac.hpp:63
virtual void remove(ring_elem &f) const
Definition frac.cpp:406
#define FRAC_VAL(f)
Definition frac.cpp:14
#define FRAC_RINGELEM(a)
Definition frac.cpp:15
ring_elem numer
Definition frac.hpp:43
ring_elem denom
Definition frac.hpp:44

References frac_elem::denom, FRAC_RINGELEM, FRAC_VAL, frac_elem::numer, R_, remove(), set_non_unit_frac(), and simplify().