|
|
| Publisher:
Daniel Corbier
|
| Date added:
30-Jun-2007
|
Rating:
|
| File size:
0 K
|
| Language:
English
|
| License:
Shareware - Time Limit
|
| Price:
$600.00
|
| OS:
Windows 98/NT/2000/ME/XP/VISTA
|
| UpdateDate:
16-Dec-2008
|
| Requirements:
128MB RAM,10 MB of hard-disk space for program installion.
|
|
|
|
uCalc Fast Math Parser Information |
uCalc Fast Math Parser is a 32-bit DLL component for Windows 98/Me/XP/Vista, which allows your program to evaluate expressions that are defined at runtime. This component was carefully designed to 1) perform computations very rapidly 2) be easy to implement 3) be sturdy and reliable, and 4) allow maximum flexibility in parsing and evaluating expressions. The following links contain specific details for implementing uCalc with supported compilers: C++ Builder, C#, Delphi, PowerBASIC, Visual Basic (classic), Visual Basic .NET, Visual C++, other compilers. Summary of Main Features Partial Feature List Speedy parsing and evaluations Support for .NET, VB, PB, Delphi, VC++, BC++B, and more Library of standard arithmetic, trigonometric, relational (comparison), and miscellaneous routines User-defined operators and functions, with support for overloading, overshadowing, bootstrapping, or recursion; optional arguments, fixed or indefinite number of arguments; multi-statements separated by semicolons Function/operator definitions can either be self contained, or attached to routines from your host program or any conventional DLL such as the Windows API or other User operator definitions can be infix, prefix, or postfix, and can be given a precedence level; an operator can be alphanumeric or composed of symbols User-defined variables (and constants) can be internal, or attached to a variable in your host program, or any valid memory address A user variable can be defined as a temporary local item Selected definitions can be locked to prevent redefinition Supported data types include: Byte, Integer, Long, Dword, Single, Double, Extended, Currency, SortedList, Table, LPCSTR (null-terminated string), FixedLength string, dynamic String, user-defined types, and more Multi-threading FPU control Exception handling (for overflow, division by zero, etc.) and general error handling User-defined character patterns and syntax constructs Items (functions, variables, operators, ...) can be renamed or deleted uCalc FMP also inherits a host of other features from the uCalc Language Builder
What's New in version 2.96? New or enhanced in version 2.96 - Better documentation. The help file includes examples for the various supported compilers, and more comprehensive explanations. The source code in the demo is interspersed with comments. The Spreadsheet and Equation Solver examples are included in the main zip file, instead of as separate downloads.
- Much simpler method for native callbacks.
- Local variable construct (this is used in the Equation Solver, and Summation examples).
- End-users can also use ucDefine.
- Speed. Version 2.96 is faster than any previous version. In some cases the difference is dramatic.
- The operator, and the Log and Sqr functions are faster.
- ucParam, ucParamStr, ucParamCount, ucReturn and ucReturnStr were optimized for use with native callbacks. Pointers are no longer necessary for achieving a faster speed than non-native callbacks.
- Operations involving an automatic conversion between Long and Double are much faster.
- PowerBASIC users in particular will notice that ucEvaluate() runs faster for them.
- Log, and Sqr were improved. If the left operand of ^ is a negative number, and the right operand is a non-integer, or the argument of Log or Sqr is negative, then it raises an exception (or returns NaN), instead of returning an incorrect value. Also, an infix operator, such as , no longer causes a problem if followed by a unary operator (for instance 3 - 2).
- The last argument of IIF is optional.
- Version 2.96 is better at catching errors and exceptions overall.
- ucTrigMode, which was present in 2.0 was restored. It allows you to choose between radian, grad, or degree mode for trigonometric routines.
- ucExprThread is a new function that lets your callback know what thread the current callback is being called from.
- ucRaiseError lets your callback raise an error (based on the given error number constant).
- ucRaiseErrorMessage allows your callback to raise an error with a customized error message.
- ucReRaise lets your error handler re-raise an exception, allowing your host program to catch it with try / except (or the equivalent error handler for your compiler).
- ucErrLocation returns the location of an error in an expression.
- ucErrSymbol (formerly ucGetSymbol) returns the name of the offending symbol when an error occurs during parsing.
- The Error function lets you raise an error from within your expression.
- SetVar, which was already in the DLL, is now declared in the header / include file, and explained in the help file. It lets your expression set the value of a variable.
- ucSetVariableValue sets the value of a variable using the variable's handle. This is a replacement for the ucSetValueDbl routine that was available for some compilers.
- Arrays are supported.
- Both DLLs now contain version information (before, only the main DLL did).
- Unicode for VC++.
- Miscellaneous features beyond the scope of this help file (and which are subject to change):
- ~Eval (which evaluates a sub-expression in place during pre-parsing) now has sister routines ~Eval_1, which substitutes the result of the evaluation, and moves on without passing over it a second time, and ~Eval_P, which evaluates during the parsing stage. Likewise ~Expand has a ~Expand_1 counterpart.
- Batch evaluation (for faster speed).
- ucGetCodeBlock.
- End-user routines: ucHandle(), ucRename()
- Partial list of bug fixes:
- The numeric pattern in the header / include file was fixed so that variable names that start with an "e" and a number, such as e123_somename, no longer cause a problem.
- The leading 0 in a fractional number between 0 and 1 is optional again, as it was in 2.0. For instance .5 is accepted (as the equivalent of 0.5).
- Syntax errors in ucDefine (and related routines, such as ucDefineVariable, ucDefineFunction, etc.) will no longer cause a crash.
- ByExpr no longer has to be the last argument when present in a function definition.
- ByExpr now works with operators definitions as well.
- Defining a something such as "f(x=-1) = ..." didn't work if there was no space between the = sign and -. Fixed.
- FPU exceptions are handled more consistently.
- AndAlso, and OrElse were fixed.
|
|
|
|
|
|
uCalc Fast Math Parser Related Links |
|
|
|
|
|
|