128{
129 if (f == nullptr) return 0;
130 int nterms = 0;
131 if (level == 0)
132 {
133 for (int i = 0; i <= f->deg; i++)
134 if (f->arr.ints[i] != 0) nterms++;
135 }
136 else
137 {
138 for (int i = 0; i <= f->deg; i++)
139 if (f->arr.polys[i] != nullptr) nterms++;
140 }
141 return nterms;
142}