Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code
[maxima.git] / tests / rtest6a.mac
blobe0f885b1308c53c0f3396024456ae4f1744cab9b
1 /*************** -*- Mode: MACSYMA; Package: MAXIMA -*-  ******************/
2 /***************************************************************************
3 ***                                                                    *****
4 ***     Copyright (c) 1984 by William Schelter,University of Texas     *****
5 ***     All rights reserved                                            *****
6 ***************************************************************************/
9 /* -*- Mode: MACSYMA -*- */
10 /* batch("me:test6a.mac");
11 It asked is a pos answred yes
12    and is i+1 zero or nonzero and I answered nonzero 
13   so should add assume (a>0,not(equal(i+1,0)))  */
14 kill(all);
15 done;
16 risch(x^2*erf(x),x);
17 (%pi*x^3*erf(x)+(sqrt(%pi)*x^2+sqrt(%pi))*%e^-x^2)/(3*%pi);
18 ev(diff(%,x),ratsimp);
19 x^2*erf(x);
20 assume(a>0);
21 [a>0];
22 'integrate(%e^(sqrt(a)*sqrt(y)),y,0,4);
23 'integrate(%e^(sqrt(a)*sqrt(y)),y,0,4);
24 changevar(%,y-z^2/a,z,y);
25 /* on lispm -2*('integrate(z*%e^abs(z),z,-2*sqrt(a),0))/a; */
26 - 'integrate(2*z*%e^abs(z)/a,z,-2*sqrt(a),0);
27 x+y/z^2;
28 y/z^2+x;
29 part(%,1,2,2);
31 remvalue(x);
32 [false];
33 'integrate(f(x),x,a,b)+x;
34 'integrate(f(x),x,a,b)+x;
35 part(%,1,1);
36 f(x);
37 x^2+2*x = y^2;
38 x^2+2*x = y^2;
39 exp:%+1;
40 x^2+2*x+1 = y^2+1;
41 lhs(%);
42 x^2+2*x+1;
43 part(exp,2);
44 y^2+1;
45 part(%,1);
46 y^2;
47 27*y^3+54*x*y^2+36*x^2*y+y+8*x^3+x+1;
48 27*y^3+54*x*y^2+36*x^2*y+y+8*x^3+x+1;
49 part(%,2,[1,3]);
50 54*y^2;
51 sqrt(piece/54);
52 abs(y);
53 x+y+w*z;
54 w*z+y+x;
55 inpart(%,3,2);
57 'limit(f(x)^g(x+1),x,0,minus);
58 'limit(f(x)^g(x+1),x,0,minus);
59 inpart(%,1,2);
60 g(x+1);
61 'limit(f(x)^g(x+1),x,0,minus);
62 'limit(f(x)^g(x+1),x,0,minus);
63 is(inpart(%,0) = nounify(limit));
64 true;
65 dpart(x+y/z^2,1,2,1);
66 y/?mbox(z)^2+x;
67 exp:expand((b+a)^4);
68 b^4+4*a*b^3+6*a^2*b^2+4*a^3*b+a^4;
69 (b+a)^2*(y+x)^2;
70 (b+a)^2*(y+x)^2;
71 expand(%);
72 b^2*y^2+2*a*b*y^2+a^2*y^2+2*b^2*x*y+4*a*b*x*y+2*a^2*x*y+b^2*x^2+2*a*b*x^2+a^2*x^2;
73 exp:exp/%;
74 (b^4+4*a*b^3+6*a^2*b^2+4*a^3*b+a^4)/(b^2*y^2+2*a*b*y^2+a^2*y^2+2*b^2*x*y+4*a*b*x*y+2*a^2*x*y+b^2*x^2+2*a*b*x^2+a^2*x^2);
75 factor(%);
76 (b+a)^2/(y+x)^2;
77 dpart(exp,2,4);
78 (b^4+4*a*b^3+6*a^2*b^2+4*a^3*b+a^4)/(b^2*y^2+2*a*b*y^2+a^2*y^2+?mbox(2*b^2*x*y)+4*a*b*x*y+2*a^2*x*y+b^2*x^2+2*a*b*x^2+a^2*x^2);
79 part(exp,2,4);
80 2*b^2*x*y;
82 op(x+y);
83 "+"$
85 operatorp(x+y,"+");
86 true$
87 operatorp(x+y,["+"]);
88 true$
89 operatorp(x+y,["*"]);
90 false$
91 operatorp(x+y,"*");
92 false$
94 subst(a,x+y,x+(x+y)^2+y);
95 y+x+a^2;
96 subst(-%i,%i,a+b*%i);
97 a-%i*b;
98 subst(x,y,x+y);
99 2*x;
100 subst(x = 0,diff(sin(x),x));
102 errcatch(ev(diff(sin(x),x),x = 0));
104 (assume(not(equal(i,-1))),0);
106 ev(integrate(x^i,x),i = -1);
107 log(x);
108 errcatch(subst(-1,i,integrate(x^i,x)));
110 matrix([a,b],[c,d]);
111 matrix([a,b],[c,d]);
112 subst("[",matrix,%);
113 [[a,b],[c,d]];
114 ratsubst(a,x*y^2,x^4*y^8+x^4*y^3);
115 a*x^3*y+a^4;
116 1+cos(x)+cos(x)^2+cos(x)^3+cos(x)^4;
117 cos(x)^4+cos(x)^3+cos(x)^2+cos(x)+1;
118 ratsubst(1-sin(x)^2,cos(x)^2,%);
119 sin(x)^4-3*sin(x)^2+cos(x)*(2-sin(x)^2)+3;
120 ratsubst(1-cos(x)^2,sin(x)^2,sin(x)^4);
121 cos(x)^4-2*cos(x)^2+1;
123 /* SF bug #2907: ratsubst(z, sin(x + 1), 0) crashes when radsubstflag = true */
125 ratsubst (z, sin(x + 1), 0), radsubstflag=true;
128 ratsubst (z, sin(2*x), 0), radsubstflag=true;
131 ratsubst (z, log(x + 1), 0), radsubstflag=true;
134 ratsubst (u, sqrt(x), x), radsubstflag=true;
135 u^2;
137 /* additional ratsubst/radsubstflag cases -- dunno how meaningful these are, oh well */
139 ratsubst (z, sin(x + 1), 1 + sin(x + 1)^2), radsubstflag=false;
140 1 + z^2;
142 ratsubst (z, sin(x + 1), 1 + sin(x + 1)^2), radsubstflag=true;
143 1 + z^2;
145 ratsubst (z, sqrt(x + 1), 1 + (x + 1)^2), radsubstflag=false;
146 2 + 2*x + x^2;
148 ratsubst (z, sqrt(x + 1), 1 + (x + 1)^2), radsubstflag=true;
149 2 + 2*x + x^2;
151 ratsubst (z, sqrt(x + 1), 1 + (x + 1)^(3/2)), radsubstflag=false;
152 1 + z^3;
154 ratsubst (z, sqrt(x + 1), 1 + (x + 1)^(3/2)), radsubstflag=true;
155 1 + z^3;
157 /* SF bug #3658: "" */
159 ratsubst (1.1, x, 0.001*cos(x));
160 cos(11/10)/1000;
162 (load(lrats), 0);
165 /* SF bug #3376: fullratsubst doesn't catch infinite recursions
166    In this example, fullratsubst1 should loop exactly lrats_max_iter=30 times,
167    adding a power of b each time.
169 fullratsubst(b*a^2,a^2,a^3), lrats_max_iter=30;
170 a^3*b^30;
172 /* SF bug #3706: lratsusbst causes bind stack overflow on large lists */
173 block([l:makelist(concat('x,i)=concat('x,i+1),i,0,5000)], lratsubst(l,x0)) $
174 x5001 $
176 /* SF bug #3154 lratsubst NOT as described in Help file */
177 lratsubst([[a=b,b=c]],a) $
178 c $
180 /* first argument to lratsbust should throw an error */
181 errcatch(lratsubst([[a=b,b=c],[b=c]],a)) $
182 [] $
184 lratsubst1 ([phi_2 = 1.1], 0.001*cos(phi_2)), numer;
185 0.001*cos(11/10);
187 /* original example from #3658;
188  * note that this assumes load(lrats) already.
189  * result is not checked, just whether or not it runs without error.
190  */
191 block ([mat21,theta_1,mat22,phi_2,theta_2,mat23,t,t1,t2,fl,theta1,theta2,phi2,tt],
192 [mat21:matrix([cos(theta_1/2),
193 %i*sin(theta_1/2)],[%i*sin(theta_1/2),
194 cos(theta_1/2)]),
195 mat22:matrix([cos(theta_2/2)
196 *exp(%i*phi_2/2),
197 %i*sin(theta_2/2)*exp(%i*phi_2/2)],
198 [%i*sin(theta_2/2)*exp(-%i*phi_2/2),cos(theta_2/2)
199 *exp(-%i*phi_2/2)]),
200 mat23:mat21.mat22,
201 t:expand(mat23[2,2]*mat23[1,1]),
202 t1:expand(demoivre(t)),
203 t2:trigsimp(trigreduce(2*t1-1))],
204 fl:true,
205 for theta1:0 thru %pi step 1.1 do  
206 for theta2:0 thru %pi step 1.1 do 
207 for phi2:0  thru 2*%pi step 1.1
208 do (tt:float(ev(lratsubst([theta_1=theta1,theta_2=theta2,phi_2=phi2],
209 abs(t2-(cos(theta_1)*cos(theta_2) - sin(theta_1)*sin(theta_2)*cos(phi_2)))),
210 numer)),
211 if tt>1e-5 then(fl:false,disp(tt))),
216 /* SF bug #2012: "Lisp stack overflow with dpart." */
218 dpart(cos(a+b),1);
219 cos(?mbox(a+b));
221 /* SF bug #3390: "?great mishandles box" */
223 ?great(box(x+t),-box(x+t));
224 true;
226 ?great(-box(x+t),box(x+t));
227 false;