import scas.base.
import scas.power.Lexicographic
import scas.polynomial.tree.mutable.Polynomial
import .given

val r = Polynomial(using , Lexicographic[Int]("x", "y", "z"))
// val r = Polynomial(using , Lexicographic[Long]("x", "y", "z"))
val xyz = r.generators
import r.given

val p = 1xyz
// val p = 1x2147483647y2147483647z2147483647
// val p = 1000000000110000000001x10000000001y10000000001z
println("p: " + p.show)
val q = p \ 20
println("q: " + q.size)
val q1 = q + 1
println("q1: " + q1.size)
var t = System.currentTimeMillis();
val q2 = q * q1
t = System.currentTimeMillis() - t;
println("q2: " + q2.size)
println("t: " + t)