4 1 . 1, dotconstrules : true;
7 is(op(1 . x) = "."), dotconstrules : false, dot1simp : false;
16 bfloat_approx_equal(1.1 . 1.1b0, 1.21b0);
36 (reset (dotident), 0);
48 (kill(id), dotident: id);
54 /*--- exponent rules ----*/
65 (1 + x - x^2).(1 + x - x^2)^^-1;
68 (1 + x - x^2)^^2 .(1 + x - x^2)^^-2;
77 /*--- dotdistrib ---*/
79 a . (b + c), dotdistrib : true;
82 a . (b - c), dotdistrib : true;
85 a . (b + c / 5), dotdistrib : true;
88 /*--- dotexptsimp ---*/
90 is(equal(a . a, a^^2)), dotexptsimp : false, prederror : false;
93 is(equal(a . a, a^^2)), dotexptsimp : true;
96 a . a, dotexptsimp : true;
105 is(equal(a.a,a * a)), prederror : false;
108 is(equal(a.b, b. a)),prederror : false;
111 is(equal(a^^2, a^2)),prederror : false;
114 is(equal(a.b.a, a^^2 . b)),prederror : false;
117 /* See SF Bug # 771061 */
119 expand((vt . a^^(-1) . u+1)^^(-2));
120 ((vt.a^^(-1).u)^^2+2*(vt.a^^(-1).u)+1)^^(-1)$
122 (a + 1)^^(-1) . (a + 1)^^(-1), expon:2;
126 a^^2 + a.b + b . a + b^^2$
129 (a^^2 + a . b + b . a + b^^2)^^-1$
132 a^^2 - a . b - b . a + b^^2$
134 (5 * a + 7 *b)^^2, expand;
135 25 * a^^2 + 35 * a . b + 35 * b . a + 49 * b^^2$
137 (a . b)^^2, expand, dotexptsimp : false;
138 ''(block([dotexptsimp : false], a . b . a . b))$
140 (a . b)^^-1, expand, dotexptsimp : false;
143 a.b.a.b, dotexptsimp : true;
146 /*--- See SF Bug # 629716 ---*/
148 expand((x.y)^^2 . y - x.y.x.y^^2), dotexptsimp : false;
151 5 * a . b - a . (5 * b);
154 (5 * a) . b - 5 * (a . b);
157 a . (5 * b) - 5 *(a . b);
160 /*--- declared scalars---*/
162 (declare(alpha, scalar),0);
165 alpha . x, dotscrules : true;
168 (alpha . a) . b, dotscrules : true;
171 a . (alpha . b), dotscrules : true;
174 declare(".",antisymmetric);
177 b . alpha, dotscrules : true;
180 a . (b . alpha), dotscrules : true;
183 a . (alpha * a), dotscrules : true;
186 remove(".",antisymmetric);
191 is(equal(a . (b . c) , (a . b) . c)), dotassoc : true, prederror : false;
194 is(equal(a . (b . c) , (a . b) . c)), dotassoc : false, prederror : false;
197 (declare(".", commutative),0);
200 is(equal(a . b, b . a));
203 is(equal(a . (b . (c .d)), (a.b) . (c.d)));
206 (remove(".",commutative),0);
209 /* SF bug #3935: Noncommutative multiplication with string argument triggers "declare: argument must be a symbol" */
230 (a: make_array (fixnum, 3, 2),
231 b: make_array (fixnum, 2, 3),
233 ''(a . b); /* this result just verifies there isn't an error */
235 /* try noncommutative exponent also */