This very first step looked easy, I have done it in https://github.com/sagemath/sage/pull/38729. Waiting for the testbots.
Martin On Saturday 28 September 2024 at 19:01:44 UTC+2 Martin R wrote: > Dear all, > > in https://github.com/sagemath/sage/pull/38108, which provides a solver > for functional equations in lazy completions of graded algebras with basis, > I (want to) use generic methods, so that I do not have to write special > code for every other algebra. Here is an example which I find a bit > depressing: > > sage: s = SymmetricFunctions(QQ).s() > sage: f = (s[1,1] + s[2])^2 > sage: f.monomial_coefficients() > {[2, 1, 1]: 3, [2, 2]: 2, [1, 1, 1, 1]: 1, [3, 1]: 3, [4]: 1} > sage: list(f) > [([2, 1, 1], 3), ([2, 2], 2), ([1, 1, 1, 1], 1), ([3, 1], 3), ([4], 1)] > sage: s.monomial(Partition([2,1,1])) > s[2, 1, 1] > > This works for algebras subclassing CombinatorialFreeModule, for example > symmetric functions and the free algebra. > > However, it will not work for polynomials: > > sage: R.<x,y> = QQ[] > sage: f = (x+2*y)^2 > sage: list(f) > [(1, x^2), (4, x*y), (4, y^2)] > sage: R.monomial(0,2) > y^2 > > sage: T.<x> = QQ[] > sage: t = (x+1)^2 > sage: list(t) > [1, 2, 1] > > Note that > > * coefficient_monomials does not exist > * list gives pairs in the multivariate case, but the coefficient comes > first, and a flat list in the univariate case > * monomial takes one argument for each variable, and does not accept > tuples. > > My question is: do we want to keep this discrepancy forever, or should we > work on resolving it. > > I see the following first steps: > > * slightly generalize MPolynomialRing_base.monomial and to accept also a > single tuple of the correct length. > * introduce a method `monomial_coefficients` which produces a dict from > exponents to coefficients. > > Any opinions? > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/73d07aff-c544-4b6f-bcf5-5cfc7722c549n%40googlegroups.com.