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.

Reply via email to