Adding interfaces/emacs/imaxima/texinfo.tex to gitignore (created by automake)
[maxima.git] / tests / rtest_allnummod.mac
blob97fb8552dacc5cdea254ca9467bd04b6ac304040
1 kill (all);
2 done;
4 ceiling(42);
5 42$
7 ceiling(-128);
8 -128$
10 ceiling(-5/2);
11 -2$
13 ceiling(0);
16 ceiling(5/2);
19 ceiling(-5.6);
20 -5$
22 ceiling(7.8);
25 ceiling(-5.6b0);
26 -5$
28 ceiling(7.8b0);
31 ceiling(%pi);
34 ceiling(%e);
37 ceiling(%phi);
40 ceiling(minf);
41 und$
43 ceiling(inf);
44 und$
46 ceiling(infinity);
47 ceiling(infinity)$
49 ceiling(zeroa);
52 ceiling(zerob);
55 ceiling(und);
56 und$
58 ceiling(ind);
59 und$
61 args(ceiling(rat(x)));
62 [x]$
64 args(ceiling(rat(a+b)));
65 [a+b]$
67 ceiling(ceiling(x));
68 '(ceiling(x))$
70 ceiling(5 + ceiling(x));
71 5 + ceiling(x)$
73 ceiling(ceiling(x) + ceiling(y));
74 ceiling(x) + ceiling(y)$
76 ceiling(ceiling(x) - ceiling(y));
77 ceiling(x) - ceiling(y)$
79 ceiling(ceiling(x) * ceiling(y));
80 ceiling(x) * ceiling(y)$
82 ceiling(6 * ceiling(x) - 28 * ceiling(y));
83 6 * ceiling(x) - 28 * ceiling(y)$
85 ceiling(floor(x));
86 '(floor(x))$
88 (declare(n,integer),0);
91 ceiling(n);
94 ceiling(abs(n));
95 abs(n)$
97 ceiling(abs(n)!);
98 abs(n)!$
100 ceiling(n + 1932);
101 n + 1932$
103 ceiling(n - 128);
104 n - 128$
106 ceiling(n^5);
107 n^5$
109 (assume(n > 0),0);
112 ceiling(5^n);
113 5^n$
115 ceiling(-n);
118 (declare(m,integer),0);
121 (assume(m < 0),0);
124 ceiling(7^m);
125 '(ceiling(7^m))$
127 ceiling(n*m);
128 n*m$
130 ceiling(n + m);
131 n + m$
133 ceiling(n -m);
134 n - m$
136 ceiling(6*n - 28 * m);
137 6*n - 28 * m$
139 ceiling(abs(n+m)!);
140 abs(n+m)!$
142 ceiling(abs(n) - n);
143 abs(n) - n$
145 (forget(m < 0, n >0), 0);
148 ceiling(max(n,m));
149 max(n,m)$
151 ceiling(min(n,m));
152 min(n,m)$
154 ceiling(x+17);
155 ceiling(x) + 17$
157 ceiling(a*b - 32);
158 ceiling(a*b) - 32$
160 ceiling(-x);
161 -floor(x)$
163 ceiling(-exp(x));
164 -floor(exp(x))$
166 ceiling(rat(x));
167 ceiling(x)$
169 ceiling(x + 10!) + floor(-x - 10!);
172 ceiling(a/b + 1909) + floor(-a/b - 1909);
175 (numerval(x,5.6),0);
178 floor(x);
181 ceiling(x);
184 floor(x+8);
187 ceiling(x+8);
190 (kill(x,numerval),0);
193 (kill(xx), assume(0 < xx, xx < 1),0);
196 floor(xx);
199 ceiling(xx);
202 floor(-xx);
205 ceiling(-xx);
208 (kill(xx), assume(0 <= xx, xx < 1),0);
211 floor(xx);
214 ceiling(-xx);
217 (kill(xx), assume(0 < xx, xx <= 1),0);
220 ceiling(xx);
223 floor(-xx);
226 (assume(-1 < yy, yy < 0),0);
229 floor(yy);
232 ceiling(yy);
235 (kill(yy), assume(-1 <= yy, yy < 0),0);
238 floor(yy);
241 ceiling(-yy);
244 (kill(yy), assume(-1 < yy, yy <= 0),0);
247 ceiling(yy);
250 floor(-yy);
253 ceiling(%i^%i);
256 ceiling(asin(-107) -42);
257 ceiling(asin(-107)) - 42$
259 /* SF bug  #1653672 */
261 trigsimp(floor(asin(cos(sqrt(2))^2 + sin(sqrt(2))^2 - 1/7)));
264 trigsimp(ceiling(asin(cos(sqrt(2))^2 + sin(sqrt(2))^2 - 1/7)));
267 /* SF bug #1644378 */
269 (x : ?bigfloatone,0);
272 (ceiling(log(2)), is(x = ?bigfloatone));
273 true$
275 (remvalue(x),0);
278 ceiling(signum(x));
279 ceiling(signum(x))$
281 ceiling(5 * signum(x));
282 ceiling(5 * signum(x))$
284 ceiling(charfun(x < 5) + 7);
285 charfun(x < 5) + 7$
287 ceiling(max(34, abs(n)!, n * m, n + m, n^8));
288 max(34, abs(n)!, n * m, n + m, n^8)$
290 (declare(ne,even, no, odd),0);
293 ceiling(ne);
296 ceiling(ne * no / 2);
297 ne * no / 2$
299 ceiling(ne^2 + 1);
300 ne^2 + 1$
302 ceiling(abs(ne)!);
303 abs(ne)!$
305 ceiling(no);
308 ceiling(ne/2);
309 ne/2$
311 ceiling((no + 1)/2);
312 (no + 1)/2$
314 (remove(ne,even, no,odd),0);
317 (remove(n,integer),remove(m,integer),0);
320 charfun(true);
323 charfun(false);
326 charfun(1 < 3);
329 charfun(1 <= 3);
332 charfun(1 > 3);
335 charfun(1 >= 3);
338 charfun(1 = 3);
341 charfun(1 # 3);
344 charfun(integerp(3));
347 charfun(integerp(sqrt(5)));
350 (p : charfun(x < 1), subst(x=5,p));
353 (p : charfun(x < 1), subst(x=-10,p));
356 charfun(rat(x));
357 charfun(x)$
359 (p : charfun(not(equal(x,1))),0);
362 subst(x=1,p);
365 subst(x=5,p);
368 subst(x=z,p);
369 charfun(not(equal(z,1)))$
371 (p : charfun(-1 < x and x < 1),0);
374 subst(x=1/%pi,p);
377 subst(x = -1,p);
380 subst(x = 1, p);
383 subst(x = 0,p);
386 (remvalue(p),0);
389 block ([prederror : true], charfun (x < 1));
390 charfun(x < 1)$
394 is(compare(1,2) = "<");
395 true$
397 is(compare(2,1) = ">");
398 true$
400 is(compare(2,2) = "=");
401 true$
403 is(compare(x,abs(x)) = "<=");
404 true$
406 is(compare(abs(x),x) = ">=");
407 true$
409 is(compare(1/x,0) = "#");
410 true$
412 compare(a,b);
413 unknown$
415 compare(a,1);
416 unknown$
418 compare(%i,1);
419 notcomparable$
421 compare(1+ %i,0);
422 notcomparable$
424 is(compare(%i,%i) = "=");
425 true$
427 is(compare(a < b, a < b) = "=");
428 true$
430 is(compare(rat(x),x) = "=");
431 true$
433 compare([1,2],[5,6]);
434 notcomparable$
436 compare(%i,%i + 1);
437 notcomparable$
439 /* With revision 1.15 of maxmin.lisp this result has changed to notcomparable */
440 is(compare(infinity,infinity) = "=");
441 false$
443 is(compare(inf,inf) = "=");
444 true$
446 compare(infinity,inf);
447 notcomparable$
449 is(compare(inf,-minf) = "=");
450 true$
452 is(compare(inf,inf+7) = "=");
453 true$
455 is(compare(inf,minf) = ">");
456 true$
458 is(compare(inf,-inf) = ">");
459 true$
461 is(compare(minf,-minf) = "<");
462 true$
464 is(compare(log(x), log(x) + 1) = "<");
465 true$
467 is(compare(log(x), log(x)) = "=");
468 true$
470 is(compare(acosh(x^2+1), acosh(x^2+1) + 1) = "<");
471 true$
476 featurep(5,even);
477 false$
479 featurep(5,odd);
480 true$
482 featurep(-5,even);
483 false$
485 featurep(-5,odd);
486 true$
488 featurep(0,even);
489 true$
491 featurep(0,odd);
492 false$
494 featurep(2/3, even);
495 false$
497 featurep(-5/7,odd);
498 false$
500 featurep(5.6, even);
501 false$
503 featurep(0.0, even);
504 false$
506 featurep(5.6b0, even);
507 false$
509 featurep(5.7b0, odd);
510 false$
512 featurep(x,even);
513 false$
515 featurep(x,odd);
516 false$
518 featurep(%i,even);
519 false$
521 featurep(2*x, even);
522 false$
524 featurep(false, even);
525 false$
527 featurep(true,even);
528 false$
530 featurep(false, odd);
531 false$
533 featurep([false], odd);
534 false$
536 featurep(a<b, even);
537 false$
539 featurep(rat(a<b),even);
540 false$
542 featurep(5 = 7, odd);
543 false$
545 featurep([2,4,6],even);
546 false$
548 (declare(ni, integer, me, even, no, odd, ne, even, mo,odd),0);
551 featurep(me,even);
552 true$
554 featurep(no,odd);
555 true$
557 featurep(2*ni, even);
558 true$
560 featurep(2*ni+1,odd);
561 true$
563 featurep(-me,even);
564 true$
566 featurep(-me,odd);
567 false$
569 featurep(abs(me),even);
570 true$
572 featurep(abs(mo),odd);
573 true$
575 featurep(ni * me, even);
576 true$
578 featurep(ni * no, odd);
579 false$
581 featurep(me + ne, even);
582 true$
584 featurep(me - ne, even)$
585 true$
587 featurep(7*me - 9*ne, even)$
588 true$
590 featurep(no * mo, odd);
591 true$
593 featurep(no + mo, odd);
594 false$
596 featurep(me^7, even);
597 true$
599 featurep(me^7, odd);
600 false$
602 featurep(me^(-9), even);
603 false$
605 featurep(no^7, odd);
606 true$
608 featurep(no^(-7), odd);
609 false$
611 featurep(no^ni, even);
612 false$
614 featurep(ne^%i, even);
615 false$
617 featurep(rat(x+x*y,x), even);
618 false$
620 featurep(rat(ne),even);
621 true$
623 featurep(rat(ne^2 + 5 * ne),even);
624 true$
626 featurep(rat(no), odd);
627 true$
629 /* ... open it close it, break it fix it, ... declare it, remove it */
631 (remove(ni, integer, me, even, no, odd, ne, even, mo,odd),0);
638 floor(42);
641 floor(-128);
642 -128$
644 floor(-5/2);
647 floor(0);
650 floor(0.0);
653 floor(0.0b0);
656 floor(5/2);
659 floor(-5.6);
662 floor(7.8);
665 floor(-5.6b0);
668 floor(7.8b0);
671 floor(%pi);
674 floor(%e);
677 floor(%phi);
680 floor(minf);
681 und$
683 floor(inf);
684 und$
686 floor(infinity);
687 und$
689 floor(zeroa);
692 floor(zerob);
695 floor(und);
696 und$
698 floor(ind);
699 und$
701 floor(floor(x));
702 '(floor(x))$
704 floor(5 + floor(x));
705 5 + floor(x)$
707 floor(floor(x) + floor(y));
708 floor(x) + floor(y)$
710 floor(floor(x) - floor(y));
711 floor(x) - floor(y)$
713 floor(floor(x) * floor(y));
714 floor(x) * floor(y)$
716 floor(6 * floor(x) + 28 * floor(y));
717 6 * floor(x) + 28 * floor(y)$
719 floor(ceiling(x));
720 ceiling(x)$
722 (declare(n,integer),0);
725 floor(n);
728 floor(abs(n));
729 abs(n)$
731 (declare(np,integer),0);
734 (assume(np >= 0),0);
737 floor(np!);
738 np!$
740 floor(n + 1932);
741 n + 1932$
743 floor(n - 128);
744 n - 128$
746 floor(n^5);
747 n^5$
749 (assume(n > 0),0);
752 floor(5^n);
753 5^n$
755 floor(-n);
758 (declare(m,integer),0);
761 (assume(m < 0),0);
764 floor(7^m);
765 '(floor(7^m))$
767 floor(n*m);
768 n*m$
770 floor(n + m);
771 n + m$
773 floor(n -m);
774 n - m$
776 floor(6*n - 28 * m);
777 6*n - 28 * m$
779 floor(abs(n+m)!);
780 abs(n+m)!$
782 floor(abs(n) - n);
783 abs(n) - n$
785 floor(max(n,m));
786 max(n,m)$
788 floor(min(n,m));
789 min(n,m)$
791 floor(x+17);
792 floor(x) + 17$
794 floor(a*b - 32);
795 floor(a*b) - 32$
797 floor(-x);
798 -ceiling(x)$
800 floor(-exp(x));
801 -ceiling(exp(x))$
803 floor(rat(x));
804 floor(x)$
806 floor(107^5 + 1/8);
807 107^5$
809 floor(10! + 1/%pi);
810 10!$
812 floor(104! + 1/%e);
813 104!$
815 floor(-107^5 + 1/8);
816 -107^5$
818 floor(-10! + 1/%pi);
819 -10!$
821 floor(-104! + 1/%e);
822 -104!$
824 floor(1007^3 + 9/17);
825 1007^3$
827 floor(n + 1/%pi);
830 floor(n - 1/%pi);
831 n - 1$
833 floor(2 * n + 2/3);
834 2 * n$
836 floor(abs(n) + 1/5);
837 abs(n)$
839 floor(max(n,6) + 1/3);
840 max(n,6);
842 floor(n * m + 1/%e);
843 n * m$
845 floor(n + m - 2/3);
846 n + m -1$
848 floor(5 * n - 7 * m);
849 5 * n - 7 * m$
851 floor(5 * n - 7 * m + 1/8);
852 5 * n - 7 * m$
854 floor(7 + %i/5);
855 7 + floor(%i / 5)$
857 floor(2 * n + 5 + 3/%pi);
858 2 * n + 5$
860 is(floor(sqrt(117)) <=  sqrt(117));
861 true$
863 floor(107! / 2) + ceiling(107! / 2) - 107!;
866 floor(-107! / 2) + ceiling(-107! / 2) + 107!;
869 sum(floor(k * 17 / 5),k,1,4);
870 16 * 4 / 2$
872 sum(floor(k * 17 / 507),k,1,506);
873 16 * 506 / 2$
875 ceiling(x) + floor(-x);
878 sum(floor((41 + k)/27),k,0,26);
881 sum(floor((-41 + k)/27),k,0,26);
882 -41$
884 sum(floor(%pi + k/56),k,0,55) - floor(56 * %pi);
887 sum(floor(-sqrt(1932) + k/56),k,0,55) - floor(-56 * sqrt(1932));
891 floor(sqrt(978) + sqrt(979)) - floor(sqrt(4* 978 + 2));
894 floor(%i^%i);
897 floor(acos(67) + 42);
898 floor(acos(67)) + 42$
900 /* See "Concrete Mathematics", 3.27, page 87. */
902 sum(floor(sqrt(k)),k,1,25^2-1);
903 25^2 * 25 - 25^3 / 3 - 25^2/2 - 25/6$
905 expand(floor(sqrt(5) * (sqrt(5) - 1/sqrt(5))));
908 floor(10! * sqrt(5) *(sqrt(5) - 1/sqrt(5)) + 1/(10^6 *%pi));
909 4 * 10!$
911 floor(10! * sqrt(5) *(sqrt(5) - 1/sqrt(5)) + 1/(10^9 *%pi));
912 4 * 10!$
914 floor(sqrt(5) *(sqrt(5) - 1/sqrt(5)) + 1/(10^15 *%pi));
917 floor(sqrt(5) *(sqrt(5) - 1/sqrt(5)) + 1/(10^159 *%pi) + 1/2);
920 (declare(ne,even, no, odd),0);
923 floor(ne);
926 floor(28 * ne - 5);
927 28 * ne - 5$
929 floor(ne / 2 - 14);
930 ne / 2 - 14$
932 floor(no);
935 floor(ne/2);
936 ne/2$
938 floor((no + 1)/2);
939 (no + 1)/2$
941 (remove(ne,even, no,odd),forget(np >= 0), 0);
944 (forget(m < 0, n >0), remove(n,integer),remove(m,integer), remove(np,integer), 0);
948 featurep(-1,integer);
949 true$
951 featurep(0,integer);
952 true$
954 featurep(1,integer);
955 true$
957 featurep(%pi,integer);
958 false$
960 featurep(x,integer);
961 false$
963 featurep(-x,integer);
964 false$
966 featurep(signum(x),integer);
967 false$
969 featurep(charfun(a < b),integer);
970 true$
972 featurep(floor(2001 + x/z),integer);
973 true$
975 featurep(ceiling(a*b+c),integer);
976 true$
978 (declare(ne,even,no,odd, ni, integer),0);
981 featurep(ni,integer);
982 true$
984 featurep(ni + 8, integer);
985 true$
987 featurep(ni + ne, integer);
988 true$
990 featurep(abs(ni + 371)!,integer);
991 true$
993 featurep(23 * ne,integer);
994 true$
996 featurep(-23 * ne + 15,integer);
997 true$
999 featurep(ni^89,integer);
1000 true$
1002 featurep(ni^-89,integer);
1003 false$
1005 featurep(ni / ne,integer);
1006 false$
1008 featurep(abs(ni),integer);
1009 true$
1011 featurep(ni^(no^2), integer);
1012 true$
1014 featurep(abs(ni), integer);
1015 true$
1017 featurep(abs(ne/2),integer);
1018 true$
1020 (remove(ne,even,no,odd,ni,integer),0);
1027 lmax([]);
1028 minf$
1030 lmax(set());
1031 minf$
1033 lmin([]);
1034 inf$
1036 lmin(set());
1037 inf$
1039 lmax([2,3,5]);
1042 lmax(set(2,3,4));
1045 lmin([2,3,4]);
1048 lmin(set(2,3,4));
1051 lmax([x]);
1054 lmin([x]);
1057 lmax([x,x,x]);
1060 lmin([x,x,x]);
1063 lmax(makelist(1/i,i,1,1000));
1066 lmin(makelist(1/i,i,1,1000));
1067 1/1000$
1074 (put(trylevel,1, maxmin),0);
1077 /*---boundary cases---*/
1078 max();
1079 minf$
1081 min();
1082 inf$
1084 /*----singleton cases---*/
1086 max(a);
1089 min(a);
1092 max(inf);
1093 inf$
1095 max(minf);
1096 minf$
1098 (assume(-1 < x, x < 1),0);
1101 max(acos(x));
1102 acos(x)$
1104 min(acos(x));
1105 acos(x)$
1107 max(log(x+2));
1108 log(x+2)$
1110 min(log(x+2));
1111 log(x+2)$
1113 (forget(-1 < x, x < 1),0);
1116 max(a-b);
1117 a-b$
1119 min(a-b);
1120 a-b$
1122 max(1/x);
1123 1/x$
1125 min(1/x);
1126 1/x$
1128 max(-x);
1131 min(-x);
1132 min(-x)$
1135 /*---numbers----*/
1137 min(1,2,3);
1140 max(1,2,3);
1143 min(1,1/5,-8);
1146 max(1,1/5,-8);
1149 max(0.34,9.1);
1150 9.1$
1152 min(0.34,9.1);
1153 0.34$
1155 max(0.34b0,9.1);
1156 9.1$
1158 min(0.34b0,9.1);
1159 0.34b0$
1161 /*--- extended reals ---*/
1163 max(3,inf);
1164 inf$
1166 max(3, minf);
1169 min(2/3,inf);
1170 2/3$
1172 min(2/3,minf);
1173 minf$
1175 max(inf,minf);
1176 inf$
1178 min(inf,minf);
1179 minf$
1181 max(inf,minf,2,3);
1182 inf$
1184 min(inf,2,3);
1187 max(x,inf,minf);
1188 inf$
1190 min(x,minf,inf);
1191 minf$
1193 max(minf,a,b,inf);
1194 inf$
1196 min(a,b,minf,inf);
1197 minf$
1199 max(7.78b0, inf);
1200 inf$
1203 /*--flatten----*/
1205 max(a,max(b,c));
1206 max(a,b,c)$
1208 min(a,min(b,c));
1209 min(a,b,c)$
1211 min(a,min(b,min(c,d)));
1212 min(a,b,c,d)$
1214 max(a,max(b,max(c,d)));
1215 max(a,b,c,d)$
1217 max(max(a,b),max(c,d));
1218 max(a,b,c,d)$
1220 min(min(a,b),min(c,d));
1221 min(a,b,c,d)$
1223 /*--non-comparable cases--*/
1225 max(und,false,true,%i,ind,3,4,5);
1226 max(und,false,true,%i,ind,5)$
1228 min(und,false,true,%i,ind,3,4,5);
1229 min(und,false,true,%i,ind,3);
1231 max(a < b, a,a,b);
1232 max(a < b,a,b)$
1234 min(a # b, a,a,b,a);
1235 min(a # b,a,b)$
1237 /*---symbolic----*/
1239 max(a,b,a);
1240 max(a,b)$
1242 min(a,b,b);
1243 min(a,b)$
1245 max(a,b) - max(b,b,a);
1248 min(a,b) - min(a,a,a,b);
1251 min(0,a^2);
1254 max(0,-a^2);
1257 max(x,abs(x));
1258 abs(x);
1260 max(u,n,k,u+1,n+2,k+3);
1261 max(u+1,n+2,k+3);
1263 min(u,n,k,u+1,n+2,k+3);
1264 min(u,n,k);
1266 max(x^2, x^2+1,-6);
1267 x^2 + 1$
1269 /*--CRE expressions----*/
1271 ratdisrep(max(x,rat(x)));
1274 ratdisrep(min(x,rat(x)))$
1277 ratdisrep(max(rat(x*y)));
1278 x*y$
1280 ratdisrep(max(rat(x^2+y,x), rat(x^2+y,y)));
1281 x^2+y$
1283 /*--absolute values---*/
1285 max(x,abs(x));
1286 abs(x)$
1288 min(x,abs(x));
1289 min(x,abs(x))$
1291 max(abs(x),5*abs(x), 7*abs(x));
1292 7*abs(x)$
1294 min(abs(x),5*abs(x), 7*abs(x));
1295 abs(x)$
1297 max(acos(x), acos(x) + 1);
1298 acos(x)+1$
1300 min(log(x), log(x) + %pi);
1301 log(x)$
1304 /*---other-----*/
1306 (mode(a,b,c) := min(max(a,b),max(b,c),max(a,c)),0);
1309 mode(1,2,3);
1312 mode(-56,1,%pi);
1315 mode(x,x,x);
1318 /*--- sign can't handle this 
1319 mode(x,x,y);
1321 ----------------------------*/
1323 mode(abs(x),0,-abs(x));
1326 mode(a,a+1,a+28);
1327 a+1$
1329 mode(exp(x+1), exp(x+2), exp(x));
1330 exp(x+1)$
1332 /*-- try a higher trylevel----*/
1334 (put(trylevel,2,maxmin),0);
1337 max(x,-x);
1338 abs(x)$
1340 min(x,-x);
1341 -abs(x)$
1343 max(x,7,-x);
1344 max(7,abs(x));
1346 max(x,-7,-x);
1347 abs(x)$
1349 min(x,7,-x);
1350 -abs(x)$
1352 max(-cos(x^2), cos(x), cos(x^2));
1353 max(cos(x), abs(cos(x^2)))$
1355 min(-cos(x^2), cos(x), cos(x^2));
1356 min(cos(x), -abs(cos(x^2)))$
1358 /*--try a higher trylevel-----*/
1360 (put(trylevel,3,maxmin),0);
1363 max(x,2*x,3*x);
1364 max(x,3*x);
1366 min(x,2*x,3*x);
1367 min(x,3*x);
1369 max(x,0,2*x,3*x);
1370 max(0,3*x);
1372 min(x,0,2*x,3*x);
1373 min(0,3*x);
1375 max(x^2,x^4,x^6);
1376 max(x^2,x^6);
1378 min(x^2,x^4,x^6);
1379 min(x^2,x^6);
1381 (kill(mode),0);
1387 (kill(all),0);
1390 mod(12,0);
1393 mod(x,0);
1396 mod(5,3);
1399 mod(5,-3);
1402 mod(-5,3);
1405 mod(-5,-3);
1408 [mod(5.0, 3.0), mod(5.0, -3.0), mod(-5.0, 3.0), mod(-5.0, -3.0)];
1409 [2.0, -1.0, 1.0, -2.0];
1411 [mod(5.0b0, 3.0b0), mod(5.0b0, -3.0b0), mod(-5.0b0, 3.0b0), mod(-5.0b0, -3.0b0)];
1412 [2.0b0, -1.0b0, 1.0b0, -2.0b0];
1414 /* I'd rather do this up to 10^6 at least but it takes too long. Oh well. */
1415 every (lambda ([k], mod(float(k*k), float(k)) = 0.0), makelist (k, k, 1, 10000));
1416 true;
1418 every (lambda ([k], mod(bfloat(k*k), bfloat(k)) = 0.0b0), makelist (k, k, 1, 10000));
1419 true;
1421 mod(0,0);
1424 mod(0,x);
1427 mod(x,1);
1428 x - floor(x);
1430 mod(x,0);
1433 mod(a*x,a*y);
1434 a * mod(x,y)$
1436 floor(sqrt(5)) + mod(sqrt(5),1);
1437 sqrt(5)$
1439 floor(-sqrt(5)) + mod(-sqrt(5),1);
1440 -sqrt(5)$
1442 mod(%pi,1);
1443 %pi-3$
1454 (fpprec : 18,0);
1457 rationalize(-46);
1458 -46$
1460 rationalize(-2/3);
1461 -2/3$
1463 rationalize(0);
1466 rationalize(0.25);
1467 1/4$
1469 rationalize(0.25b0);
1470 1/4$
1472 rationalize(2.5b-1);
1473 1/4$
1475 rationalize(0.35b0 - 3.5b-1);
1478 rationalize(-0.75);
1479 -3/4$
1481 rationalize(1.125);
1482 9/8$
1484 rationalize(100.125b0);
1485 801/8$
1487 rationalize(-100.125b0);
1488 -801/8$
1490 rationalize(%i);
1493 rationalize(%pi);
1494 %pi$
1496 rationalize(minf);
1497 minf$
1499 rationalize(inf);
1500 inf$
1502 rationalize(infinity);
1503 infinity$
1505 rationalize(x);
1508 rationalize(-x);
1511 rationalize(a+b/c);
1512 a+b/c$
1514 rationalize(a^b);
1515 a^b$
1517 rationalize(log(0.25 * x - 0.5));
1518 log(x/4 - 1/2)$
1520 rationalize([u,n,k]);
1521 [u,n,k]$
1523 rationalize(v.t);
1524 v.t$
1526 rationalize(a^^0.125);
1527 a^^(1/8)$
1529 rationalize(rat(a+b + 0.125));
1530 (8 * a + 8 * b + 1)/8$
1532 rationalize(rat(1+x+x^2.0));
1533 1+x+x^2$
1535 rationalize(matrix([a,0.25],[-a,2.0^z]));
1536 matrix([a,1/4],[-a,2^z]);
1538 rationalize([[0.75],[m,j,w],[-2.0],[a.m.h]]);
1539 [[3/4],[m,j,w],[-2],[a.m.h]]$
1541 rationalize(f(-0.1875) + %pi * 3.0);
1542 f(-3/16) + 3 * %pi$
1544 rationalize(f(-0.1875b0) + %pi * 3.0);
1545 f(-3/16) + 3 * %pi$
1547 rationalize(a = 2.5);
1548 a = 5/2$
1550 rationalize(abs(x - 0.1875));
1551 abs(x - 3/16)$
1553 rationalize(x!);
1556 rationalize(0.09375 < 0.3984375);
1557 3/32 < 51/128$
1559 rationalize(0.09375b0 < 0.3984375b0);
1560 3/32 < 51/128$
1562 (reset (fpprec), 0);
1565 /* SF bug 1703298  max leads to UND error */
1567 max(1/(q-1));
1568 1/(q-1)$
1570 max(1/(q-1),1/(q-1));
1571 1/(q-1)$
1573 sort(args(max(1/(q-1),1/(q-2))));
1574 ''(sort([1/(q-1),1/(q-2)]))$
1576 is(compare(1/(q-1),minf) = ">");
1577 true$
1579 is(compare(minf, 1/(q-1)) = "<");
1580 true$
1582 /* SF bug 1703376  max(inf, ...) doesn't simplify to inf */
1584 max(1/(1-x),inf);
1585 inf$
1587 min(1/(1-x),minf);
1588 minf$
1590 /* SF bug 1764114  signum misses simp rule */
1592 (tellsimpafter (signum(x), zzz), signum(-x));
1593 -zzz;
1595 floor(log(8) / log(2));
1598 ceiling(log(8) / log(2));
1601 floor(log(125) / log(5) + 42 / 5);
1604 ceiling(log(125) / log(5) + 42 / 5);
1607 /* SF bug [ 1220227 ] MIN is not correct (problem with "is" function) */
1609 (f(h,k,l):=(h^k)*((1/h)*k*(1+l)+(d-k)*2*l),
1610  g(h,k,l):=2*d*l+(h^k)*((1/h)*k*(1-l)-(d-k)*2*l),
1611  d:2,
1612  l:0.5,
1613  aa: f((1-v)^(1/2),2,l),
1614  bb: f((1-v),1,l),
1615  cc: g(v^(1/2),2,l),
1616  dd: g(v,1,l),
1617  0);
1620 min (aa, bb, cc, dd);
1621 min (3.0*sqrt(1 - v), 1.0*sqrt(v) + 2.0, (0.5/v - 1.0)*v + 2.0);
1623 ratsimp (bb - dd);
1626 block ([prederror : false], is (cc > aa));
1627 unknown;
1629 block ([prederror : false], is (cc > bb));
1630 unknown;
1632 block ([prederror : false], is (cc > dd));
1633 unknown;
1635 /* SF bug [ 1995595 ] sign(max(7,x) - max(6,x)) --> error */
1637 sign (max (7, foo543) - max (6, foo543));
1638 pnz;
1640 /* SF bug [ 2144225 ] rationalize bug / fix (?) */
1641 map('rationalize, [cos(s)]);
1642 [cos(s)]$
1644 map(lambda([s], rationalize(s)), [cos(s)]);
1645 [cos(s)]$
1647 integrate(floor(x),x);
1648 (-floor(x)+2*x-1)*floor(x)/2$
1650 integrate(floor(x),x,0,3);
1653 integrate(ceiling(x),x);
1654 (-ceiling(x)+2*x+1)*ceiling(x)/2$
1656 integrate(ceiling(x),x,0,4);
1659 (remvalue(d, l, aa, bb, cc, dd),0);
1662 /* Bug report ID: 2123651 - min and max of imaginary and real numbers
1663  * These are the examples from the bug report.
1664  */
1666 min(%i*inf,inf);
1667 'min(%i*inf,inf);
1669 min(%i*minf,minf);
1670 'min(minf,%i*minf);
1672 min(%i*inf,inf);
1673 'min(%i*inf,inf);
1675 min(%i*minf,minf);
1676 'min(minf,%i*minf);
1678 min(%i*-inf,-inf);
1679 'min(minf,%i*-inf);
1681 min(%i*-inf,minf);
1682 'min(minf,%i*-inf);
1684 min(%i*minf,-inf);
1685 'min(minf,%i*minf);
1687 max(%i*minf,inf);
1688 'max(inf,%i*minf);
1690 max(%i*minf,minf);
1691 'max(minf,%i*minf);
1693 max(%i*inf,inf);
1694 'max(inf,%i*inf);
1696 max(%i*-inf,-inf);
1697 'max(-inf,%i*-inf);
1699 max(%i*minf,minf);
1700 'max(minf,%i*minf);
1702 max(7*%i*inf+4*inf,4*%i*inf+3);
1703 'max(4*%i*inf+3,7*%i*inf+4*inf);
1705 min(7*%i*inf+4*inf,4*%i*inf+3);
1706 'min(7*%i*inf+4*inf,4*%i*inf+3);
1708 min(7*%i*minf+4*inf,4*%i*minf+3);
1709 'min(7*%i*minf+4*inf,4*%i*minf+3);
1711 min(7*%i*minf+4*inf,4*%i*-inf+3);
1712 'min(4*%i*-inf+3,7*%i*minf+4*inf);
1714 min(-inf,minf);
1715 minf;
1717 max(-inf,minf);
1718 minf;
1720 /* mailing list 2016-03-11: "bfloat divide bad; WAS: nonzero remainder of mod(x*x, x) where x is a small integer float or bigfloat" */
1722 sublist (makelist (i, i, 1, 1000), lambda ([i], float(i*i)/float(i) - float(i) # 0.0));
1725 sublist (makelist (i, i, 1, 1000), lambda ([i], float(i)/float(i) # 1.0));
1728 sublist (makelist (i, i, 1, 1000), lambda ([i], bfloat(i*i)/bfloat(i) - bfloat(i) # 0b0));
1731 sublist (makelist (i, i, 1, 1000), lambda ([i], bfloat(i)/bfloat(i) # 1b0));
1734 sublist (makelist (i, i, 1, 1000), lambda ([i], mod (float(i*i), float(i)) # 0.0));
1737 sublist (makelist (i, i, 1, 1000), lambda ([i], mod (float(i), float(i)) # 0.0));
1740 sublist (makelist (i, i, 1, 1000), lambda ([i], mod (bfloat(i*i), bfloat(i)) # 0b0));
1743 sublist (makelist (i, i, 1, 1000), lambda ([i], mod (bfloat(i), bfloat(i)) # 0b0));