unify iterators for univariate and multivariates and provide an automatic zipper
zipper of coefficients and exponent_vectors
@thofma what about coefficients_and_exponent_vectors for zip(coefficients(), exponent_vectors())?
We need one name for both (univariate and multivariate) cases, so maybe coefficients_and_exponents.
On the other hand, I had a quick chat with @fieker and maybe we want coefficients to return zip in both (univariate and multivariate) cases and only the non-zero coefficients. Then we would need another name for just the coefficients. The reason is that coefficients alone is really useless in the multivariate case, so we could use this precious name for something useful.
Anyway, don't implement anything yet.
Note: I am seeing lots of code like this for univariates:
p = some univariate poly
v = collect(coefficients(p))
# assume that v is a dense array of coefficients
Hence, the iterators for univariates should not skip zero terms and should start at x^0.
@thofma what about exponent_vectors on univariate polynomials? In oscar, we don't have exponent_vectors, just exponents.
exponent_vectors(poly) should obviously have eltype Vector{Int}.
But if exponents ever comes to AA,
exponents(poly) should have eltype Int?