Sponsored links: Algebra eBooks
 

Related

tellsimpafter

Run Example
(%i1)1/(a*b), simp:true;
                                       1
(%o1)                                 ---
                                      a b
(%i2) 1/(a*b), simp:false;
                                       1
(%o2)                                 ---
                                      a b
(%i3) matchdeclare(a, atom);
(%o3)                                done
(%i4) matchdeclare(b, atom);
(%o4)                                done
(%i5) tellsimp(1/(a*b), simp:false, ((1/a)*(1/b)));
tellsimp: warning: putting rules on '+' or '*' is inefficient, and may not work.
(%o5)                         [*rule1, simptimes]
(%i6) tellsimpafter(1/(a*b), simp:false, ((1/a)*(1/b)));
(%o6)                     [*rule2, *rule1, simptimes]
(%i7) defrule(fraction, 1/(a*b),((1/a)*(1/b))), simp:false;
                                        1
(%o7)                       fraction : --- -> false
                                       a b
(%i8) 1/(a*b), simp:false;
                                       1
(%o8)                                 ---
                                      a b
(%i9) maxapplydepth:1;
(%o9)                                  1
(%i10) newfac;
(%o10)                              newfac
(%i11) fraction(1/(a*b));
                                    1   1
(%o11)                              - (---)
                                    1  a b
(%i12) factor(1/(a*b)), simp:false;
                                       1
(%o12)                                ---
                                      a b
(%i13) ratexpand:false;
(%o13)                               false
(%i14) expandwrt_denom:true;
(%o14)                               true
(%i15) 1/(a*b), fraction;
                                       1
(%o15)                                ---
                                      a b
(%i16) 
Run Example
display2d:false;

(%o1) false
(%i2) 
1+1;

(%o2) 2
(%i3) 
posintp(n):=is(integerp(n) and n>
0);

(%o3) posintp(n):=is(integerp(n) and n > 0)
(%i4) 
matchdeclare(int,posintp);

(%o4) done
(%i5) 
tellsimpafter(fact(0),1);

(%o5) [factrule1,false]
(%i6) 
tellsimpafter(fact(int),int*fact(int-1));

(%o6) [factrule2,factrule1,false]
(%i7) 
Run Example
1/(a*b), simp:true;
                                       1
(%o1)                                 ---
                                      a b
(%i2) 1/(a*b), simp:false;
                                       1
(%o2)                                 ---
                                      a b
(%i3) matchdeclare(a, true);
(%o3)                                done
(%i4) matchdeclare(b, true);
(%o4)                                done
(%i5) tellsimp(1/(a*b), simp:false, ((1/a)*(1/b)));
tellsimp: warning: putting rules on '+' or '*' is inefficient, and may not work.
(%o5)                         [*rule1, simptimes]
(%i6) tellsimpafter(1/(a*b), simp:false, ((1/a)*(1/b)));
(%o6)                     [*rule2, *rule1, simptimes]
(%i7) defrule(fraction, 1/(a*b),((1/a)*(1/b))), simp:false;
                                        1
(%o7)                       fraction : --- -> false
                                       a b
(%i8) 1/(a*b), simp:false;
                                       1
(%o8)                                 ---
                                      a b
(%i9) maxapplydepth:1;
(%o9)                                  1
(%i10) newfac;
(%o10)                              newfac
(%i11) fraction(1/(a*b));
                                    1   1
(%o11)                              - (---)
                                    1  a b
(%i12) factor(1/(a*b)), simp:false;
                                       1
(%o12)                                ---
                                      a b
(%i13) ratexpand:true;
(%o13)                               true
(%i14) expandwrt_denom(1/(a*b));
                                              1
(%o14)                       expandwrt_denom(---)
                                             a b
(%i15) 

Related Help

Help for Tellsimpafter