Ticket #13061 (closed enhancement: fixed)
Add a symbolic expression interface to Maxima's rectform()
| Reported by: | mjo | Owned by: | burcin |
|---|---|---|---|
| Priority: | major | Milestone: | sage-5.3 |
| Component: | symbolics | Keywords: | |
| Cc: | kcrisman, ddrake | Work issues: | |
| Report Upstream: | N/A | Reviewers: | Timo Kluck |
| Authors: | Michael Orlitzky | Merged in: | sage-5.3.beta2 |
| Dependencies: | Stopgaps: |
Description
Right now, users have access to Maxima's rectform() though the maxima_methods() method. However, those methods remain undocumented, untested, and (more importantly?) hidden from tab-completion.
We can cure this for rectform(), which can then be used in #11785.
Attachments
Change History
Changed 12 months ago by mjo
-
attachment
sage-trac_13061.patch
added
comment:1 Changed 12 months ago by mjo
- Status changed from new to needs_review
I've been distracted a few hundred times today so hopefully there aren't any stupid mistakes here.
comment:2 Changed 12 months ago by mjo
..and since I forgot to refresh my patch, what is the preferred spacing of the .. note:: block? Most places in expression.pyx use three, but by analogy I would have deduced four.
comment:4 follow-up: ↓ 5 Changed 9 months ago by tkluck
- Status changed from needs_review to needs_work
This works great. One thing, though: I think that you should also make a global function rectform(x) that calls x.rectform().
comment:5 in reply to: ↑ 4 ; follow-up: ↓ 6 Changed 9 months ago by nbruin
Replying to tkluck:
This works great. One thing, though: I think that you should also make a global function rectform(x) that calls x.rectform().
I disagree. It makes some sense to use the maxima names for methods on symbolic objects if they are that closely related. Only pollute the global name space with these if it is particularly desired to have the functionality available via that route. Even then, the sage name should be good and mnemonic and doesn't necessarily have to follow maxima. I don't know what rectform does and the name doesn't help explaining that.
Things like "limit" and "integral" deserve to be in the global namespace thanks to mathematical convention. "simplify" and "solve", however poor their definition is, are there due to tradition in computer algebra packages. If you want "rectform" in there too, you should argue its notability.
comment:6 in reply to: ↑ 5 Changed 9 months ago by tkluck
- Status changed from needs_work to positive_review
Replying to nbruin:
Replying to tkluck:
This works great. One thing, though: I think that you should also make a global function rectform(x) that calls x.rectform().
I disagree.
I don't feel all that strongly about it, but it makes sense to me seeing how related it is to real_part and imaginary_part, which are in the global namespace. I agree with you in that I don't like the name rectform, though.
Since I don't really mind either way and the patch looks good, I'll just give this a positive review and hopefully it'll get merged soon.

Add an Expression.rectform() method.