692{
693 int i;
694 if (g == nullptr) return;
695 if (f == nullptr)
696 {
698 return;
699 }
700 int fdeg = f->deg;
701 int gdeg = g->deg;
702
704 for (i = 0; i <= gdeg; i++)
705 add_in_place(level - 1, f->arr.polys[i], g->arr.polys[i]);
706 if (gdeg > fdeg)
707 f->deg = gdeg;
708 else if (gdeg == fdeg)
709 {
710
711 for (int j = fdeg; j >= 0; --j)
712 if (f->arr.polys[j] != nullptr)
713 {
714 f->deg = j;
715 return;
716 }
717
719 }
720}
static void increase_size_n(int newdeg, TowerPolynomial &f)
static TowerPolynomial copy(int level, const TowerPolynomial f)
void add_in_place(int level, TowerPolynomial &f, const TowerPolynomial g)
static void dealloc_poly(TowerPolynomial &f)