bcParser.NET evaluates mathematical expressions given as strings at runtime. bcParser.NET features include: Easy to use, simple class API. Functions with 0 or more number of parameters in the form of: f(x,y,z, ...) Functions with unknown number of parameters, e.g. SUM(a,b,c,...) Function parameter calculations are only done if needed. Comes with predefined functions. Users can create custom functions/variables. Function/variable names start with letters and can contain letters, numbers and _. Variable values can be resolved using a callback delegate. Expression can contain string literals, variable values and function return values can be strings. Arithmetic Operators: +, -, /, *, ^ Boolean Operators: <, >, =, &, |, ! ,<>, >=, <= String concatenation with + Optimization: Constant expression elimination for repeated tasks. Paranthesis: (, {, [ List of predefined functions is available in the documentation. Provides localization support. Royalty free distribution at affordable price. Source code is included. bcParser.NET is especially useful in scientific and engineering programs as well as financial spread sheet implementations. An example of a simple expression is : LN(X)+SIN(10/2-5) When parsed, this expression will be represented as: since the SIN(10/2-5) is in fact SIN(0) which is a constant and is 0. Thus, in a loop, if you change the value of X and ask for the value of the expression, it will be evaluated quite fast since SIN(10/2-5) is not dependent on X. X and Y are predefined variables. You can create your own variables as needed. There are many predefined mathematical functions. They are listed in documentation. You can create your functions as needed. IF logic is implemented through a predefined IF(A,B,C) function. Similar logical functions can be created as needed.