I would do something like this (example for n=5):
```
n = 5
R = PolynomialRing(QQ, 'x', n)
x0 = R.gen(0) # A shorter alternative is R.0
f = sum((i+1)*x0^i for i in range(n+1)) # sample polynomial
p = 1
for xi in R.gens():
p *= f.substitute({x0:xi})
p = sum(coeff*mono for coeff, mono in list(p) if mono.degree() <= n)
```
timaeus schrieb am Samstag, 12. März 2022 um 12:14:26 UTC+1:
> Hello everyone,
>
> I need to compute the product: f(x_1)f(x_2)...f(x_n), where f is a
> polynomial of degree n, and I do not need the part with total degree larger
> than n. To reduce the computation complexity, I think it would be helpful
> to construct an n-variable multivariate polynomial ring, with terms total
> degree no larger than n. I found the following two possible ways to do
> this, however, I could not make either of them work for my settings.
>
> 1.
>
> Create a multivariate polynomial ring then quotient out every monomial
> with total degree larger than n. However I do not know how to express this
> ideal.
> 2.
>
> I found a link on this site concerning
> "set-of-polynomial-under-a-certain-degree" (I cannot post it since I am a
> new user) which suggests a function max_degree for polynomial rings.
> However, it seems there is no such a max_total_degree function for the
> multivariate case.
>
> I am new to python, sage, and this community, so thank you in advance for
> your helpful suggestions and comments!
>
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/e82c6d3f-1e4e-4142-92e2-384675b60f2bn%40googlegroups.com.