newRPL - build 1255 released! [updated to 1299]
12-17-2018, 06:05 PM
Post: #325
 Claudio L. Senior Member Posts: 1,880 Joined: Dec 2013
RE: newRPL - build 1089 released! [update:build 1127]
(12-17-2018 05:13 PM)The Shadow Wrote:  What rules does AUTOSIMPLIFY apply?

AUTOSIMPLIFY does first a numeric reduction (multiplies numbers together, adds fractions, etc.), then applies a series of rules. The idea is to have several sets of rules and a flag that sets the simplification level the user wants. For now I only created level1, the most basic things.
Quoted from lib-56.nrpl source code:

Code:
 @#name lib56_autosimplify_level1 { '0+.XX:→.XX'                                        @ REMOVE TERMS WITH ZERO 'INV(1):→1'                                         @ ELIMINATE OPERATION ON ONE '1*.XX:→.XX'                                        @ REMOVE MULTIPLY BY ONE '.XX^1:→.XX'                                        @ REMOVE EXPONENT OF 1 '√.XX:→.XX^INV(2)'                                  @ ELIMINATE SQUARE ROOT FOR OTHER RULES TO WORK '.MN*.mX+.MM*.mX:→(.MN+.MM)*.mX'                    @ ASSOCIATE TO THE LEFT (NON-COMMUTATIVE) '.mX*.MN+.mX*.MM:→.mX*(.MN+.MM)'                    @ ASSOCIATE TO THE RIGHT (NON-COMMUTATIVE) '.NN*.xX^.Nexp+.NM*.xX^.Nexp:→(.NN+.NM)*.xX^.Nexp'  @ ADD TERMS IN THE SAME VARIABLE AS LONG AS THE REST IS NUMERIC '.xX^.NN*INV(.xX^.NM):→.xX^(.NN-.NM)'               @ CANCEL OUT TERMS WITH EXPONENTS '.xX^.NN*INV(.xX):→.xX^(.NN-1)'                     @ CANCEL OUT TERMS WITHOUT EXPONENT IN DENOMINATOR '.xX*INV(.xX^.NM):→.xX^(1-.NM)'                     @ CANCEL OUT TERMS WITHOUT EXPONENT IN NUMERATOR '.xX^.NN*.xX^.NM:→.xX^(.NN+.NM)'                    @ ADD EXPONENTS IN MULTIPLYING TERMS '.mX*.mX^.NM:→.mX^(1+.NM)'                          @ ADD EXPONENTS WITH IMPLICIT EXPONENT 1 '.XX^INV(2):→√.XX'                                  @ BACK TO SQUARE ROOTS }

Yes, all symbolic rules will be coded in RPL, so they are easy to maintain and improve by the community.
 « Next Oldest | Next Newest »