Remove some code duplication in TRANSLATE-PREDICATE
[maxima.git] / tests / rtest_dot.mac
blobe092a7a12130f83f64de3157f198c35d24356e2a
1 (kill(all),0);
2 0$
4 1 . 1, dotconstrules : true;
5 1$
7 is(op(1 . x) = "."),  dotconstrules : false, dot1simp : false;
8 true;
10 (1/3) . (2/3);
11 2/9$
13 1.1 . 1.1;
14 1.21$
16 bfloat_approx_equal(1.1 . 1.1b0, 1.21b0);
17 true;
19 3.1 . 5;
20 15.5$
22 1 . x;
25 x . 1$
28 0 . x$
31 x . 0$
34 /*--- dotident ---*/
36 x . dotident;
39 dotident . x;
42 x^^0;
43 ''(dotident)$
45 x^^0, dotident : id;
46 id$
48 /*--- exponent rules ----*/
50 a^^2 . a^^5;
51 a^^7$
53 a^^2 . a^^-2;
54 ''(dotident)$
56 (1+x).(1+x)^^-1;
57 ''(dotident)$
59 (1 + x - x^2).(1 + x - x^2)^^-1;
60 ''(dotident)$
62 (1 + x - x^2)^^2 .(1 + x - x^2)^^-2;
63 ''(dotident)$
65 /*--- dotdistrib ---*/
67 a . (b + c), dotdistrib : true;
68 a . b + a . c$
70 a . (b - c), dotdistrib : true;
71 a . b - a . c$
73 a . (b +  c / 5), dotdistrib : true;
74 a . b + a . c / 5$
76 /*--- dotexptsimp ---*/
78 is(equal(a . a, a^^2)), dotexptsimp : false, prederror : false;
79 unknown$
81 is(equal(a . a, a^^2)), dotexptsimp : true;
82 true$
84 a . a, dotexptsimp : true;
85 a^^2$
87 a . a - a^^2;
90 a^^5 . a^^7;
91 a^^12$
93 is(equal(a.a,a * a)), prederror : false;
94 unknown$
96 is(equal(a.b, b. a)),prederror : false;
97 unknown$
99 is(equal(a^^2, a^2)),prederror : false;
100 unknown$
102 is(equal(a.b.a, a^^2 . b)),prederror : false;
103 unknown$
105 /*  See SF Bug # 771061 */
107 expand((vt . a^^(-1) . u+1)^^(-2));
108 ((vt.a^^(-1).u)^^2+2*(vt.a^^(-1).u)+1)^^(-1)$
110 (a + 1)^^(-1) . (a + 1)^^(-1), expon:2;
111 (a^^2+2*a+1)^^(-1)$
113 (a + b)^^2, expand;
114 a^^2 + a.b + b . a + b^^2$
116 (a + b)^^-2, expand;
117 (a^^2 + a . b + b . a + b^^2)^^-1$
119 (a - b)^^2, expand;
120 a^^2 - a . b - b . a + b^^2$
122 (5 * a + 7 *b)^^2, expand;
123 25 * a^^2 + 35 * a . b + 35 * b . a + 49 * b^^2$
125 (a . b)^^2, expand, dotexptsimp : false;
126 ''(block([dotexptsimp : false], a . b . a . b))$
128 (a . b)^^-1, expand, dotexptsimp : false;
129 (a . b)^^-1$
131 a.b.a.b, dotexptsimp : true;
132 (a.b)^^2$
134 /*--- See SF Bug # 629716 ---*/
136 expand((x.y)^^2 . y - x.y.x.y^^2), dotexptsimp : false;
139 5 * a . b - a . (5 * b);
142 (5 * a) . b - 5 * (a . b);
145 a . (5 * b) - 5 *(a . b);
148 /*--- declared scalars---*/
150 (declare(alpha, scalar),0);
153 alpha . x, dotscrules : true;
154 alpha * x$
156 (alpha . a) . b, dotscrules : true;
157 alpha * a . b$
159 a . (alpha . b), dotscrules : true;
160 alpha * a . b$
162 declare(".",antisymmetric);
163 'done$
165 b . alpha, dotscrules : true;
166 alpha * b$
168 a . (b . alpha), dotscrules : true;
169 alpha * a . b$
171 a . (alpha * a), dotscrules : true;
174 remove(".",antisymmetric);
175 'done$
177 /*--- dotassoc ---*/
179 is(equal(a . (b . c) , (a . b) . c)), dotassoc : true, prederror : false;
180 true$
182 is(equal(a . (b . c) , (a . b) . c)), dotassoc : false, prederror : false;
183 unknown$
185 (declare(".", commutative),0);
188 is(equal(a . b, b . a));
189 true$
191 is(equal(a . (b . (c .d)), (a.b) . (c.d)));
192 true$
194 (remove(".",commutative),0);