Thanks, everyone. I agree with Bruno's improvement on my suggestion. I will 
do this in the next few days, but I am first traveling, & I may need a 
reminder.

I also think the interfaces between univariate & multivariate polynomials 
should be brought more in line, but that seems like quite a bit of work. 
Perhaps we could somehow sketch a partial beginning with obvious 
improvements, & implement that?

john perry

On Wednesday, November 26, 2014 9:29:18 PM UTC+1, Bruno Grenet wrote:
>
>  Hello John,
>
> As a very regular user of these functions, I think this is useful to have 
> both (and luckily you don't want to remove one or the other!). For the 
> documentation, I agree that it could and should be clearer! 
>
> For your proposition, I am quite reluctant on using "dense" and "sparse" 
> in the documentation: There exist dense and sparse representations of 
> polynomials in Sage, and I wonder if this would not confuse users. Some may 
> think that f.coeffs is for densely represented polynomials and 
> f.coefficients for sparsely represented ones.
>
> I think one could use as inspiration for the documentation of 
> f.coefficients() the case of multivariate polynomials. It states "Return 
> the nonzero coefficients of this polynomials in a list." I find this 
> formulation clear and simple enough. It is not clear to me that one should 
> add the part one the correlation with f.exponents() that you proposed. 
>
> In the same vein, I would propose "Return all the coefficients of f in a 
> list, including the coefficients equal to zero" for f.coeffs.
>
> Anyway, I agree and you can open a ticket, I'll be happy to review it!
>
> Cheers,
> Bruno
>
> P.S.: On a related note, I am procrastinating for some time now the 
> opening of a ticket to make the interfaces of univariate polynomial rings 
> and multivariate polynomial rings more consistent. For instance, the 
> leading coefficient is f.leading_coefficient() in the former and f.lc() 
> in the latter. Many other things like that are a bit frustrating...
>
> Le 26/11/2014 21:06, john_perry_usm a écrit :
>  
>  Hello Sages
>
>  Last week (?) I noticed that a program I wrote was making a mistake, 
> because f.coeffs() and f.coefficients() return very different results: the 
> former provides a dense representation (with 0's), the second a sparse one 
> (no 0's, correlating with f.exponents()). 
>
>  I like this OK, but the help string isn't clear on this: the latter 
> states merely, "Return the coefficients of the monomials appearing in 
> self;" while the former states, "Returns "self.list()." " The help on 
> self.list() states merely, "Returns a list with the coefficients of self."
>
>  So the difference is that one states "monomials *appearing* in self," 
> while the other does not clarify that it gives the monomials appearing in 
> self, which presumably means it includes monomials *not* appearing in 
> self. I'm not good at these kinds of inferences, so this does not 
> immediately convey "dense" or "sparse representation," or not to me, anyway.
>
>  I would propose the following:
>
>  *f.coeffs?* should state something to the effect of, "Returns all the 
> coefficients of a dense representation of f."
>
>  *f.coefficients?* should state something like, "Returns all the 
> coefficients of a sparse representation of f; that is, it returns only the 
> non-zero coefficients, in a list correlated with f.exponents." (Notice the 
> explicit statement of the correlation, reinforcing sparse representation.)
>
>  *f.list?* should be mostly identical to f.coeffs?
>
>  I'm willing to open a ticket & author a patch to this effect, if at 
> least one other person agrees here.
>
>  john perry
>  -- 
> 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+...@googlegroups.com <javascript:>.
> To post to this group, send email to sage-...@googlegroups.com 
> <javascript:>.
> Visit this group at http://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>
>
> 

-- 
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 post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to