Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code
[maxima.git] / tests / rtestconjugate.mac
blobd83856643973b934fe4db457592ff0ec7542a774
1 (kill(all),reset(), 0);
2 0$
4 conjugate(-1);
5 -1$
7 conjugate(6);
8 6$
10 conjugate(-2/3);
11 -2/3$
13 conjugate(sqrt(5));
14 sqrt(5)$
16 conjugate(sqrt(3) + sqrt(7));
17 sqrt(3) + sqrt(7)$
19 conjugate(5.6);
20 5.6$
22 conjugate(-5.6);
23 -5.6$
25 conjugate(5.6 * %i);
26 -%i * 5.6$
28 conjugate(8.23b3);
29 8.23b3$
31 conjugate(1.4b0 + %i * 5.7b0);
32 1.4b0 - %i * 5.7b0$
34 conjugate(sqrt(7 + %i * 8));
35 sqrt(7 - %i * 8);
37 conjugate(log(1 - %i));
38 log(1 + %i)$
40 conjugate(%e);
41 %e$
43 conjugate(-%e);
44 -%e$
46 conjugate(%pi);
47 %pi$
49 conjugate(%phi);
50 %phi$
52 conjugate(x);
55 conjugate(-x);
56 -x$
58 conjugate(1+x*(1+x));
59 1+x*(1+x)$
61 conjugate(sqrt(1+x^2));
62 sqrt(1+x^2)$
64 conjugate(x+abs(x));
65 x+abs(x)$
67 conjugate(cos(x));
68 cos(x)$
70 conjugate(sin(x));
71 sin(x)$
73 conjugate(tan(x));
74 tan(x)$
76 conjugate(sec(x));
77 sec(x)$
79 conjugate(cot(x));
80 cot(x)$
82 conjugate(csc(x));
83 csc(x)$
85 conjugate(cosh(x));
86 cosh(x)$
88 conjugate(sinh(x));
89 sinh(x)$
91 conjugate(tanh(x));
92 tanh(x)$
94 conjugate(sech(x));
95 sech(x)$
97 conjugate(coth(x));
98 coth(x)$
100 conjugate(csch(x));
101 csch(x)$
103 conjugate(exp(x));
104 exp(x)$
106 conjugate(sqrt(x));
107 conjugate(sqrt(x))$
109 conjugate(abs(x))$
110 abs(x)$
112 (declare(z,complex),0);
115 conjugate(conjugate(z));
118 conjugate(conjugate(conjugate(z)));
119 conjugate(z)$
121 conjugate(5*z);
122 5 * conjugate(z);
124 conjugate(5 + z);
125 5 + conjugate(z);
127 conjugate(5 + 7 * z);
128 5 + 7 * conjugate(z);
130 conjugate(%i * z);
131 -%i * conjugate(z)$
133 conjugate(x + z);
134 x + conjugate(z)$
136 conjugate(x * z);
137 x * conjugate(z)$
139 conjugate(cos(z));
140 cos(conjugate(z))$
142 conjugate(sin(z));
143 sin(conjugate(z))$
145 conjugate(tan(z));
146 tan(conjugate(z))$
148 conjugate(sec(z));
149 sec(conjugate(z))$
151 conjugate(cot(z));
152 cot(conjugate(z))$
154 conjugate(csc(z));
155 csc(conjugate(z))$
157 conjugate(cosh(z));
158 cosh(conjugate(z))$
160 conjugate(sinh(z));
161 sinh(conjugate(z))$
163 conjugate(tanh(z));
164 tanh(conjugate(z))$
166 conjugate(sech(z));
167 sech(conjugate(z))$
169 conjugate(coth(z));
170 coth(conjugate(z))$
172 conjugate(csch(z));
173 csch(conjugate(z))$
175 conjugate(exp(z));
176 exp(conjugate(z))$
178 conjugate(realpart(z));
179 realpart(z)$
181 conjugate(imagpart(z));
182 imagpart(z)$
184 conjugate(x+z);
185 x+conjugate(z)$
187 conjugate(x*z);
188 x*conjugate(z)$
190 conjugate(%i * z);
191 -%i * conjugate(z)$
193 conjugate(cos(x*z));
194 cos(x*conjugate(z))$
196 (assume(imagpart(z) > 0),0);
199 conjugate(log(z));
200 log(conjugate(z))$
202 conjugate(sqrt(z));
203 sqrt(conjugate(z))$
205 conjugate(log(5 + z));
206 log(5 + conjugate(z))$
208 (declare(w,complex),0);
211 (assume(realpart(w) > 0),0);
214 conjugate(log(w));
215 log(conjugate(w))$
217 conjugate(sqrt(w));
218 sqrt(conjugate(w))$
220 conjugate(log(7 + w));
221 log(7 + conjugate(w))$
223 (declare(q,complex),0);
226 conjugate(q^2);
227 conjugate(q)^2$
229 conjugate(1/q);
230 1/conjugate(q)$
232 conjugate(1 + q + q^2);
233 1 + conjugate(q) + conjugate(q)^2$
235 conjugate(q*(1+q));
236 conjugate(q) * (1 + conjugate(q))$
238 conjugate((1+q)/(1-q));
239 (1 + conjugate(q))/(1 - conjugate(q))$
241 (forget(imagpart(z) > 0), forget(realpart(w) > 0),0);
244 declare(p0, even, q1, odd, pq, rational, qp, irrational, rr, real, ii, imaginary);
245 done;
247 conjugate (p0 + q1 + pq + qp + rr + ii);
248 p0 + q1 + pq + qp + rr - ii;
250 /* conjugate of  sums and products */
252 (declare(n, real), declare(m,real),0);
255 conjugate(sum(cos(k),k,1,n));
256 sum(cos(k),k,1,n)$
258 conjugate(prod(cos(k),k,1,n));
259 prod(cos(k),k,1,n)$
261 conjugate(sum(log(k + %i), k, m, n));
262 sum(log(k - %i), k, m, n)$
264 conjugate(prod(log(k + %i), k, m, n));
265 prod(log(k - %i), k, m, n)$
267 (remove(n,real), remove(m,real),0);
270 /* conjugate of asin */
272 (assume(x > -1, x < 1),0);
275 conjugate(asin(x));
276 asin(x)$
278 conjugate(asin(-x));
279 asin(-x)$
281 conjugate(asin(x + %i));
282 asin(x - %i)$
284 conjugate(asin(x - %i));
285 asin(x + %i)$
287 conjugate(asin(x + %i * y));
288 asin(x - %i * y)$
290 conjugate(asin(x - %i * y));
291 asin(x + %i * y)$
293 /* Collections */
295 conjugate([]);
298 conjugate([5]);
299 [5]$
301 conjugate([[%i]]);
302 [[-%i]]$
304 conjugate(set());
305 set()$
307 conjugate(set(1,2));
308 set(1,2)$
310 conjugate(set(8, set(8, set(32 - %i))));
311 set(8, set(8, set(32 + %i)))$
313 conjugate(matrix());
314 matrix()$
316 conjugate(matrix([]));
317 matrix([])$
319 conjugate(matrix([1,2,%i]));
320 matrix([1,2,-%i])$
322 conjugate(matrix([matrix([%i])]));
323 matrix([matrix([-%i])])$
325 /* logs */
327 conjugate(log(x));
328 conjugate(log(x))$
330 conjugate(log(x + %i));
331 log(conjugate(x) - %i)$
333 conjugate(log(-1 + %i));
334 log(-1 - %i)$
336 (assume(x > 0, notequal(www,0)), 0);
339 conjugate(log(-x));
340 log(x) - %i * %pi$
342 conjugate(log(-x + %i * www));
343 log(-x - %i * www)$
345 (forget(x > 0, notequal(www,0)),0);
348 /* exponential expressions */
350 conjugate(exp(x));
351 exp(x)$
353 conjugate(exp(y - %i * x));
354 exp(y + %i * x)$
356 (declare(z,complex),0);
359 conjugate(exp(z));
360 exp(conjugate(z))$
362 (declare(n,integer,z,complex),0);
365 conjugate(z^n);
366 conjugate(z)^n$
368 conjugate(z^b);
369 conjugate(z^b)$
371 conjugate(cosh(z));
372 cosh(conjugate(z))$
374 conjugate(sinh(z));
375 sinh(conjugate(z))$
377 conjugate(sinh(cosh(z)));
378 sinh(cosh(conjugate(z)))$
380 /* Test for bug 1491486 */
382 conjugate((1+%i)^%i);
383 1/(1-%i)^%i$
385 (declare(z,complex),0);
388 /* Test for bug 1489285 */
390 is(imagpart(conjugate(z)) # z);
391 true$
393 (remove(z,complex),0);
396 /* Test for bug 1488344 */
398 matrixp(conjugate(genmatrix(a,100,100)));
399 true$
401 /* Test for bug 1488359 */
403 is(op(conjugate(f[6](x))) = 'conjugate);
404 true$
406 /* Tests for bug 1639890  */
407 (assume(notequal(y,0)),0);
410 conjugate(log(-1 + %i * y));
411 log(-1 - %i * y)$
413 conjugate(log(x + %i * y));
414 log(x - %i * y)$
416 conjugate(log(%pi + %i * y));
417 log(%pi - %i * y)$
419 (forget(notequal(y,0)),0);
423 /* Test for bug (conjugate of atan) fixed by CVS revisions 1.9 and 1.11 */
425 conjugate(atan(x));
426 atan(x);
428 /* Bug ID: 2886564 - conjugate(atan2(y,x)) not simplified */
430 conjugate(atan2(y,x));
431 atan2(y,x);
433 (declare(z,complex), conjugate(signum(z)));
434 signum(conjugate(z))$
436 (remove(z,complex),0);
439 conjugate(ceiling(x));
440 ceiling(x)$
442 conjugate(floor(x));
443 floor(x)$
445 conjugate(mod(x,1));
446 mod(x,1)$
448 conjugate(unit_step(x));
449 unit_step(x)$
451 conjugate(charfun(x>0));
452 charfun(x>0)$
454 conjugate(log_gamma(2+%i*107));
455 log_gamma(2-%i*107);
457 conjugate(log_gamma(-2+%i*107));
458 log_gamma(-2-%i*107);
460 conjugate(li[2](42 + %i/2));
461 li[2](42 - %i/2)$
463 conjugate(psi[2](-42 + %i/2));
464 psi[2](-42 - %i/2)$
466 /* constants */
467 conjugate(%pi);
468 %pi$
470 conjugate(%e);
473 conjugate(%phi);
474 %phi$
476 conjugate(minf);
477 minf$
479 conjugate(inf);
480 inf$
482 conjugate(infinity);
483 conjugate(infinity)$
485 conjugate(zerob);
486 zerob$
488 conjugate(zeroa);
489 zeroa$
491 conjugate(und);
492 conjugate(und)$
494 conjugate(ind);
495 conjugate(ind)$
497 /* additional tests  */
499 (declare(z,complex), declare(zz,complex), assume(-1<a, a<1, notequal(b,0)),0);
502 /* one of the few tests that check this case */
503 is(conjugate(z^zz) = conjugate(z)^conjugate(zz));
504 false$
506 is(equal(conjugate(z^zz), conjugate(z)^conjugate(zz)));
507 unknown$
509 is(conjugate(sqrt(x)) = sqrt(conjugate(x)));
510 false$
512 is(equal(conjugate(sqrt(1+%i)), sqrt(conjugate(1+%i))));
513 true$
515 is(equal(conjugate(sqrt(-1+%i)), sqrt(conjugate(-1+%i))));
516 true$
518 is(conjugate(x^zz) = conjugate(x)^conjugate(zz));
519 false$
521 is(conjugate(x^zz) = conjugate(x)^conjugate(zz));
522 false$
524 (declare(n,integer),0);
527 is(equal(conjugate(z^n), conjugate(z)^n));
528 true$
530 (remove(n,integer),0);
533 (assume(notequal(imagpart(z),0)),0);
536 is(equal(conjugate(z^zz), conjugate(z)^conjugate(zz)));
537 true$
539 (forget(notequal(imagpart(z),0)),0);
542 is(equal(conjugate((x+%i*%pi)^zz), (x-%i*%pi)^conjugate(zz)));
543 true$
545 is(equal(conjugate((x+%i/10)^zz), (x-%i/10)^conjugate(zz)));
546 true$
548 conjugate(acsc(z));
549 conjugate(acsc(z))$
551 conjugate(acsc(3/2 + %i));
552 acsc(3/2-%i)$
554 conjugate(acsc(1/2 + %i));
555 acsc(1/2-%i)$
557 conjugate(asec(z));
558 conjugate(asec(z))$
560 conjugate(asec(3/2 + %i));
561 asec(3/2-%i)$
563 conjugate(asec(1/2 + %i));
564 asec(1/2-%i)$
566 /* functions that commute with conjugate */
567 map(lambda([fn], is(conjugate(apply(fn,[z])) = apply(fn, [conjugate(z)]))), 
568         [cosh, sinh, tanh, sech, csch, coth, cos, sin, tan, sec, csc, cot,gamma]);
569 [true,true,true,true,true,true,true,true,true,true,true,true,true]$
571 conjugate(jacobi_cn(a,z));
572 jacobi_cn(a, conjugate(z))$
574 conjugate(jacobi_sn(a,z));
575 jacobi_sn(a, conjugate(z))$
577 conjugate(jacobi_dn(a,z));
578 jacobi_dn(a, conjugate(z))$
580 conjugate(pochhammer(z, n));
581 pochhammer(conjugate(z),n)$
583 conjugate(z = 4+%i);
584 conjugate(z) = 4-%i$
586 conjugate(z # 46+107*%i);
587 conjugate(z) # 46 - 107*%i$
589 conjugate(transpose(z));
590 transpose(conjugate(z))$
592 conjugate(matrix([%i,5],[5,%i]));
593 matrix([-%i,5],[5,-%i])$
595 conjugate([a,b,c]);
596 [a,b,c]$
598 conjugate(set(a,b,%i));
599 set(a,b,-%i)$
601 conjugate(hankel_1(z,z^2));
602 conjugate(hankel_1(z,z^2))$
604 conjugate(hankel_1(z,x+%i));
605 hankel_2(conjugate(z),x-%i)$
607 conjugate(hankel_2(z,z^2));
608 conjugate(hankel_2(z,z^2))$
610 conjugate(hankel_2(z,x+%i));
611 hankel_1(conjugate(z),x-%i)$
613 map('conjugate, [log(5+%i), log(x^2+1), log(z), log(-(x^2+1))]);
614 [log(5-%i),log(x^2+1),conjugate(log(z)),log(x^2+1)-%i*%pi]$
616 conjugate(bessel_j(z,z^2));
617 conjugate(bessel_j(z,z^2))$
619 conjugate(bessel_j(z,x+%i));
620 bessel_j(conjugate(z),x-%i)$
622 conjugate(bessel_y(z,z^2));
623 conjugate(bessel_y(z,z^2))$
625 conjugate(bessel_y(z,x+%i));
626 bessel_y(conjugate(z),x-%i)$
628 conjugate(bessel_i(z,z^2));
629 conjugate(bessel_i(z,z^2))$
631 conjugate(bessel_i(z,x+%i));
632 bessel_i(conjugate(z),x-%i)$
634 conjugate(bessel_k(z,z^2));
635 conjugate(bessel_k(z,z^2))$
637 conjugate(bessel_k(z,x+%i));
638 bessel_k(conjugate(z),x-%i)$
640 conjugate(log_gamma(z));
641 conjugate(log_gamma(z))$
643 conjugate(log_gamma(1-%i));
644 log_gamma(1+%i)$
646 conjugate(li[2](z));
647 li[2](conjugate(z))$
649 conjugate(psi[2](z));
650 psi[2](conjugate(z))$
652 map('conjugate, [plog(5+%i), plog(x^2+1), plog(z), plog(-(x^2+1))]);
653 [plog(5-%i),plog(x^2+1),conjugate(plog(z)),plog(x^2+1)-%i*%pi]$
655 /* off (-infinity,-1) union (1,infinity), conjugate and asin commute */
656 map('conjugate,[asin(z), asin(a+%i*b), asin(1/2+%i), asin(107+%i*b),asin(107)]);
657 [conjugate(asin(z)), asin(a-%i*b), asin(1/2-%i), asin(107-%i*b), conjugate(asin(107))]$
659 /* off (-infinity,-1) union (1,infinity), conjugate and acos commute */
660 map('conjugate,[acos(z), acos(a+%i*b), acos(1/2+%i), acos(107+%i*b),acos(107)]);
661 [conjugate(acos(z)), acos(a-%i*b), acos(1/2-%i), acos(107-%i*b), conjugate(acos(107))]$
663 /* off (-infinity %i, -%i) union (%i, %i infinity), conjugate and atan commute */
664 map('conjugate, [atan(z), atan(1/2 + %i), atan(-1/3+%i)]);
665 [conjugate(atan(z)), atan(1/2-%i), atan(-1/3-%i)]$
667 conjugate([x,%i*x,0,1,-1,%i,-%i,%pi, %e, %phi,inf,minf]);
668 [x,-(%i*x),0,1,-1,-%i,%i,%pi,%e,%phi,inf,minf]$
670 conjugate(sqrt(-2));
671 -(sqrt(2)*%i)$
673 conjugate(cos(exp(107)));
674 cos(exp(107))$
676 conjugate(conjugate(log(-1)));
677 log(-1)$
679 conjugate(polarform(5+%i*7)) - polarform(5-%i*7);
682 conjugate(z/zz);
683 conjugate(z)/conjugate(zz)$
685 (declare(nn,integer),0);
688 conjugate(z^nn);
689 conjugate(z)^nn$
691 (forget(nn,integer),0);
694 conjugate(1/z);
695 1/conjugate(z)$
697 conjugate(realpart(z));
698 realpart(z)$
700 conjugate(imagpart(z));
701 imagpart(z)$
703 conjugate(conjugate(z));
706 conjugate(sin(z));
707 sin(conjugate(z))$
709 conjugate(z*zz) - conjugate(z)*conjugate(zz);
712 (assume(xx>0),0);
715 conjugate(xx^z);
716 xx^conjugate(z)$
718 (forget(xx>0),0);
721 (assume(notequal(imagpart(z),0)),0);
724 conjugate(z^x);
725 conjugate(z)^x$
727 conjugate(z^zz);
728 conjugate(z)^conjugate(zz)$
730 (forget(-1<a,a<1, notequal(b,0)), remove(z,complex), remove(zz,complex), 0);
733 /* #2179 conjugate of CRE matrix  */
734 conjugate(matrix([rat(0)]));
735 matrix([0])$
737 /* #1982 conjugate(atan(x+%i*y)) wrong */
738 conjugate(atan(x+%i*y));
739 conjugate(atan(x+%i*y))$
741 /* #1801 conjugate(atan2(y,x)) not simplified */
742 conjugate(atan2(y,x));
743 atan2(y,x)$
745 /* #1211 conjugate error */
746 conjugate( atanh(1/4));
747 atanh(1/4)$
749 /* #1080 conjugate(log(-1 + %i * y)), with y # 0 */
750  (assume(notequal(y,0)),0);
751  0$
753 conjugate(log(-1 + %i*y));
754 log(-1-%i*y)$
756 (forget(notequal(y,0)),0);
759 /* #1067 absolute value of conjugate */
760 abs(conjugate(z)) ;
761 abs(z)$
763 /* #616 conjugate(complex) wrong */
764 conjugate(z);
765 conjugate(z)$
767 /* #924 conjugate of subscripted function */
768 conjugate(f[6](x));
769 conjugate(f[6](x))$
771 /* #932 conjugate of complex ^ complex */
772  conjugate((1+%i)^%i);
773  (1-%i)^(-%i)$
775 /* 1071 conjugate & ratsubst */
776  ratsubst(1,a, conjugate(log(-1 + %i*a)));
777  log(-%i-1)$
779 /* #1163 rational doesn't work */
780 conjugate( rat(1+%i));
781 1-%i$
783 /* conjugate of derivative */
785 conjugate(diff(f(x),x));
786 'diff(conjugate(f(x)),x);
788 conjugate(diff(f(x),x,107));
789 'diff(conjugate(f(x)),x,107);
791 conjugate(diff(f(x),x,n));
792 'diff(conjugate(f(x)),x,n);
794 op(conjugate(diff(f(x),x,%i)));
795 conjugate$
797 (declare(z,complex),0);
800 op(conjugate(diff(f(z),z)));
801 conjugate$
803 (remove(z,complex), conjugate(z));
806 (kill(all),0);
809 /* did we really tidy the environment? */
810 values;
813 facts();