Math. It's what a computer was originally created to do, and do fast. When compiled, or properly interpreted, the computer can rip through numbers at incredible speeds. This library, MyMathLib, is a single class library to interpret Algebraic expressions and solve for a final value. At it's core, it's a mathematical interpreter no different from the interpreter that loaded the HTML of this page, except that the final output is not a structured layout for displaying information, but the simplified solution to the expression. In addition to your regular addition, subtraction, multiplication and division, I also incorporated factorial (!), modulus (%), powers (^), and the 3 main trig functions and square root: sin(...), cos(...),, tan(...), and sqrt(...). One of the examples in the project shows a probable use for this library, a textbox that a user can submit an equation to and have it solved on blur or by pressing enter. However, the enjoyment of this project definitely came more out of it's completion then out of finding it an application.
A quick breakdown of how it works: Reverse Polish Notation was always an equation writing alternative to the way we write mathematical expressions today, but it's not the way most of us humans were raised and not the easiest way for us to express math. RPN is very easy for a computer to parse and solve however, so I needed to find a way to convert a classically structured equation over to RPN. A few Google searches and a Wikipedia article later, I discovered the Shunting-Yard algorithm, a relatively easy to implement algorithm to do just such a conversion. Once converted to RPN, solving was easy. The whole process, in short, is a lot of string manipulation all the way to an end product. I haven't profiled how long it takes (yet) but I certainly don't notice a lag between when I call the Solve method and when it gives me the answer.
Download MyMathLib here! Note that I may update these files every so often as the project progresses. Notable changes will warrant an updated page detailing what changed.