sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.37k stars 468 forks source link

expression manipulations that do not preserve function latex_name and print_latex_func #19151

Open 6d95573c-b4ed-47d1-8c51-cb633c034739 opened 9 years ago

6d95573c-b4ed-47d1-8c51-cb633c034739 commented 9 years ago
def argscript(self, *args): return "%s_{%s}"%(self.name(),','.join(map(repr, args)))
f=function('f', print_latex_func=argscript)
x,y=var('x,y')
show(f(x,y))
g=function('g', latex_name="\\mathcal{G}")
show(g(x,y))

# fail
show(f(x,y).canonicalize_radical())
show(g(x,y).canonicalize_radical())
show(f(x,y).combine())
show(g(x,y).combine())
show(f(x,y).expand_log())
show(g(x,y).expand_log())
show(f(x,y).expand_sum())
show(g(x,y).expand_sum())
show(f(x,y).expand_trig())
show(g(x,y).expand_trig())
show(f(x,y).factor())
show(g(x,y).factor())
show(f(x,y).factorial_simplify())
show(g(x,y).factorial_simplify())
show(f(x,y).full_simplify())
show(g(x,y).full_simplify())
show(f(x,y).log_expand())
show(g(x,y).log_expand())
show(f(x,y).log_simplify())
show(g(x,y).log_simplify())
show(f(x,y).rational_simplify())
show(g(x,y).rational_simplify())
show(f(x,y).reduce_trig())
show(g(x,y).reduce_trig())
show(f(x,y).simplify())
show(g(x,y).simplify())
show(f(x,y).simplify_factorial())
show(g(x,y).simplify_factorial())
show(f(x,y).simplify_full())
show(g(x,y).simplify_full())
show(f(x,y).simplify_log())
show(g(x,y).simplify_log())
show(f(x,y).simplify_rational())
show(g(x,y).simplify_rational())
show(f(x,y).simplify_real())
show(g(x,y).simplify_real())
show(f(x,y).simplify_trig())
show(g(x,y).simplify_trig())
show(f(x,y).trig_expand())
show(g(x,y).trig_expand())
show(f(x,y).trig_reduce())
show(g(x,y).trig_reduce())
show(f(x,y).trig_simplify())
show(g(x,y).trig_simplify())

# works
show(f(x,y).collect(x))
show(g(x,y).collect(x))
show(f(x,y).collect_common_factors())
show(g(x,y).collect_common_factors())
show(f(x,y).expand())
show(g(x,y).expand())
show(f(x,y).expand_rational())
show(g(x,y).expand_rational())
show(f(x,y).normalize())
show(g(x,y).normalize())
show(f(x,y).rational_expand())
show(f(x,y).simplify_hypergeometric())
show(g(x,y).simplify_hypergeometric())
show(f(x,y).simplify_rectform())
show(g(x,y).simplify_rectform())

CC: @egourgoulhon

Component: symbolics

Keywords: expression manipulation, latex output, function

Issue created by migration from https://trac.sagemath.org/ticket/19151

rwst commented 9 years ago
comment:2

Well, these are all methods of Expression that call Maxima. The translation of the result from Maxima back to Sage obviously discards the old function data.

rwst commented 8 years ago

Description changed:

--- 
+++ 
@@ -1,16 +1,13 @@
-See: https://cloud.sagemath.com/projects/b04b5777-e269-4c8f-a4b8-b21dbe1c93c6/files/print_latex_func.sagews

---
-
+```
 def argscript(self, *args): return "%s_{%s}"%(self.name(),','.join(map(repr, args)))
 f=function('f', print_latex_func=argscript)
 x,y=var('x,y')
 show(f(x,y))
-g=function('g', latex_name="
-mathcal{G}")
+g=function('g', latex_name="\\mathcal{G}")
 show(g(x,y))

-\# fail
+# fail
 show(f(x,y).canonicalize_radical())
 show(g(x,y).canonicalize_radical())
 show(f(x,y).combine())
@@ -56,7 +53,7 @@
 show(f(x,y).trig_simplify())
 show(g(x,y).trig_simplify())

-\# works
+# works
 show(f(x,y).collect(x))
 show(g(x,y).collect(x))
 show(f(x,y).collect_common_factors())
@@ -72,4 +69,7 @@
 show(g(x,y).simplify_hypergeometric())
 show(f(x,y).simplify_rectform())
 show(g(x,y).simplify_rectform())
+```

+* See: https://cloud.sagemath.com/projects/b04b5777-e269-4c8f-a4b8-b21dbe1c93c6/files/print_latex_func.sagews
+* https://groups.google.com/forum/?hl=en#!topic/sage-devel/owdIv8nxZSU