Don't bother posting it as an error unless you specify exactly which version of Maxima and Lisp you are testing, because it works just fine for me in Maxima 5.37.2 http://maxima.sourceforge.net using Lisp SBCL 1.2.7
I get (2*cos(a)*cos(b)-2*sin(a)*sin(b))*cos(x/2) +2*cos(a)*sin(a)*sin(b)-2*cos(a)^2*cos(b) On Saturday, January 28, 2017 at 8:37:13 AM UTC-8, Eric Gourgoulhon wrote: > > Hi, > > In Sage 7.5.1, let us consider a long (but simplifiable) trigonometric > expression: > > sage: var('x y z') > (x, y, z) > sage: s = 2*(cos(1/2*x)*cos(y) + sin(1/2*x)^2 - 1)*(cos(z)*sin(y) + cos(y > )*sin(z)) > ....: *((cos(1/2*x)*cos(z) - cos(y)*cos(z) + sin(y)*sin(z))*sin(1/2*x)/( > cos(1/2*x) > ....: ^2*cos(y)^2 - 2*cos(1/2*x)*cos(y) + 1) + (cos(y)*cos(z)*sin(y) + cos > (y)^2*si > ....: n(z) - (cos(z)*sin(y) + cos(y)*sin(z))*cos(1/2*x))*(cos(1/2*x)*cos(y > ) + sin( > ....: 1/2*x)^2 - 1)/((cos(1/2*x)^2*cos(y)^2 - 2*cos(1/2*x)*cos(y) + 1)*sin > (1/2*x)* > ....: sin(y)))/((cos(1/2*x)*cos(y) - 1)*((cos(y)*cos(z) - sin(y)*sin(z))* > sin(1/2*x > ....: )/(cos(1/2*x)*cos(y) - 1) + (cos(z)*sin(y) + cos(y)*sin(z))*((cos(1/ > 2*x)*cos > ....: (z) - cos(y)*cos(z) + sin(y)*sin(z))*sin(1/2*x)/(cos(1/2*x)^2*cos(y > )^2 - 2*c > ....: os(1/2*x)*cos(y) + 1) + (cos(y)*cos(z)*sin(y) + cos(y)^2*sin(z) - ( > cos(z)*si > ....: n(y) + cos(y)*sin(z))*cos(1/2*x))*(cos(1/2*x)*cos(y) + sin(1/2*x)^2 > - 1)/((c > ....: os(1/2*x)^2*cos(y)^2 - 2*cos(1/2*x)*cos(y) + 1)*sin(1/2*x)*sin(y)))* > sin(1/2* > ....: x)/((cos(1/2*x)*cos(y) - 1)*((cos(z)*sin(y) - cos(1/2*x)*sin(z) + > cos(y)*sin > ....: (z))*sin(1/2*x)/(cos(1/2*x)^2*cos(y)^2 - 2*cos(1/2*x)*cos(y) + 1) + > (cos(y)^ > ....: 2*cos(z) - cos(y)*sin(y)*sin(z) - (cos(y)*cos(z) - sin(y)*sin(z))* > cos(1/2*x) > ....: )*(cos(1/2*x)*cos(y) + sin(1/2*x)^2 - 1)/((cos(1/2*x)^2*cos(y)^2 - 2 > *cos(1/2 > ....: *x)*cos(y) + 1)*sin(1/2*x)*sin(y)))))*((cos(z)*sin(y) - cos(1/2*x)* > sin(z) + > ....: cos(y)*sin(z))*sin(1/2*x)/(cos(1/2*x)^2*cos(y)^2 - 2*cos(1/2*x)*cos( > y) + 1) > ....: + (cos(y)^2*cos(z) - cos(y)*sin(y)*sin(z) - (cos(y)*cos(z) - sin(y)* > sin(z))* > ....: cos(1/2*x))*(cos(1/2*x)*cos(y) + sin(1/2*x)^2 - 1)/((cos(1/2*x)^2* > cos(y)^2 - > ....: 2*cos(1/2*x)*cos(y) + 1)*sin(1/2*x)*sin(y)))^2*sin(y)) - 2*(cos(1/2 > *x)*cos( > ....: y) + sin(1/2*x)^2 - 1)/(((cos(z)*sin(y) - cos(1/2*x)*sin(z) + cos(y > )*sin(z)) > ....: *sin(1/2*x)/(cos(1/2*x)^2*cos(y)^2 - 2*cos(1/2*x)*cos(y) + 1) + (cos > (y)^2*co > ....: s(z) - cos(y)*sin(y)*sin(z) - (cos(y)*cos(z) - sin(y)*sin(z))*cos(1/ > 2*x))*(c > ....: os(1/2*x)*cos(y) + sin(1/2*x)^2 - 1)/((cos(1/2*x)^2*cos(y)^2 - 2*cos > (1/2*x)* > ....: cos(y) + 1)*sin(1/2*x)*sin(y)))*sin(1/2*x)*sin(y)) > sage: s.simplify_trig() > -2*(cos(1/2*x) - cos(y))*sin(y)*sin(z) + 2*(cos(1/2*x)*cos(y) - cos(y)^2)* > cos(z) > > > So far so good. But if we replace the variables y and z by variables with > a different name, like a and b, simplify_trig aborts with "catch RAT-ERR is > undefined": > > sage: var('a b') > (a, b) > sage: t = s.substitute({y: a, z: b}) > sage: t.simplify_trig() > ... > TypeError: ECL says: THROW: The catch RAT-ERR is undefined. > > Is this a known bug ? > > Best regards, > > Eric. > > PS: for the ease of cut-and-paste, the relevant code is in the attached > file. > -- 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 https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.