A powerful function parser






4.40/5 (18 votes)
Feb 23, 2000

144205

2179
A simple yet powerful function parser that parses and evaluates standard mathematical functions
The inspiration to write this code was to have an easy-to-use parser for functions given as string. You have a string like "cos(x)-7*x/(1+x)", and you want to compute some values, maybe for displaying the graph of the function. You can write code like this:
CFunction<long double>* fkt = CFunction<long double>::Parse("cos(x)-7*x/(1+x)"); long double y = fkt->Execute(1.5);
There are lots of definitions in the background, but the result is easy and fast! There is a one-time pasing step to construct the function tree, and function evaluations are only calls of standard math functions like sin, +, *, sqrt. When you want to know details about the implementaion, you should look into the source code. It would be too complex to describe the parsing algorithm here.