Yes, I've have developed a fast C-API that could convert functions in algebraic notation in RPN (which is basically a stack of operators and operands. This converted RPN-lists then could be
a) calculated
b) differentiated
c) optimized Example: ((4a * 3a)+2a*a) would be optimized to 14*a*a
c) is somewhat complicated - I implemented hundrets of optimzation-rules
like
a*1=a
a+0 = a
a*0=0
…
in RPN
That could be handy to build a calculator handling expressions (or if you program in FORTH), and it must have been fun to do.
HP could have used it, I remember a function to convert an algebraic expression to an RPN program on the 48 series. I don't think it could do any simplification on the RPN form, since it was a program, but I'm not sure. All the simplifications / manipulations were done on the algebraic form IIRC.