Name |
Approximate Speed | Types |
Operators |
Built-in Functions | Programmer- Defined Functions |
User- Defined Variables |
Documentation |
Bugs |
Error Handling |
Reports Used Variables |
Kylix Compatibility |
Interface Complexity |
---|---|---|---|---|---|---|---|---|---|---|---|---|
TPegtopFormula |
-0.5% longer than compiled code | Real |
+ - * / · :
÷ % ^ |
Abs, ArcTan, Cos, Exp, Frac, ln,
Log10, Log2, Neg, Round, Sign, Sin, Sqr, Sqrt, Tan |
No |
Register with parser | No |
none detected | Raises one of 6 different custom
exceptions during compilation phase. |
No |
Should be compatible | relatively simple |
TParser |
3% longer than compiled code |
Real | + - div mod / ^ * |
tan sin cos sinh cosh arctan
cotan arg exp ln log10 log2 sqr sqrt abs trunc int ceil floor heav sign
zero ph rnd random max min power intpower logn |
Yes: 1 or 2 arguments |
Register with parser, 8
predefined variables also
available |
Yes |
none detected |
Raises one of 8 different custom
Exceptions during compilation phase. |
No |
Should be compatible |
relatively simple |
TExpressionParser |
18% longer than compiled code | Real, "Boolean" (Values between -0.1 and +0.1 are treated as False. Other values are treated as True.) |
< > = =< => == <=
>= <> & && | || := : ! != + - ^ / \ * ( ) % ~ $
div mod in not or and xor |
random exp if randg sqr sqrt abs
round trunc ln log10 logN power pow intpower max min sin cos tan arcsin
arccos arctan2 sinh cosh tanh arcsinh arccosh arctanh degtorad radtodeg |
Yes: zero to four real number
arguments arguments. |
Register with parser | Yes |
Memory leak, not easily fixed |
Raises a custom Exception during compilation phase. | No |
Should be compatible | relatively simple |
TExpressionCompiler |
36% longer than compiled code | Real (single, double, or
extended) |
= <> < <= > >=
+ - * / |
none |
Yes, 0 to 3 argument |
Register with parser | Yes? There is a help-file but it
doesn't really explain anything. |
Memory leak, but easily fixed |
Raises a custom Exception during compilation phase. | ? |
Should be compatible | Intermediate complexity |
Symbolic.TExpression |
94% longer than compiled code | real |
+ - * / ^ | cos sin tan sqr sqrt exp ln inv
cotan arcsin arccos arctan sinh cosh tanh arcsinh arccosh arctanh log10
log2 lnxp1 ! arctan2 step power hypot logn |
No |
Register with parser | Yes. |
Memory leak an other problems if
attempt to use invalid expression |
May raise one of 10 custom
exception. However, with invalid expressions, there is an exception
raised while trying to raise a different exception |
Yes |
No, might be possible to make it
compatible without much trouble. |
relatively simple |
TRbwParser |
120% longer than compiled code | Real, Integer, Boolean, String |
+ - * / > >= < <= =
<> mod div not xor and or |
AbsI AbsR ArcCos ArcCosh ArcSin
ArcSinh ArcTan2 ArcTanh Copy Cos Cosh CaseB CaseI CaseR CaseS DegToRad
FactorialI FactorialR Frac FloatToStr IfB IfI IfR IfS IntPower IntToStr
Length ln log10 logN LowerCase MaxI MaxR MinI MinR Odd Pi Pos Power
RadToDeg Round Sin Sinh SqrI SqrR Sqrt StrToInt StrToIntDef StrToFloat
StrToFloatDef Tan Tanh Trunc UpperCase Interpolate Distance Abs Case
Max Min Sqr Case If MultiInterpolate |
Yes, unlimited arguments,
variable number of arguments allowed |
Register with parser |
Yes |
none detected | Raises a custom Exception during compilation phase. | Yes |
Is compatible |
Intermediate complexity |
TExpressionEvaluator |
2000% longer than compiled code | Real | + - * / ^ |
ArcCos, ArcCosD, ArcCosh,
ArcSin, ArcSinD, ArcSinh, ArcTanh, Cosh, Cotan, Log10, Log2, Ln, Sinh,
GradToRad, RadToGrad, Ceil, Floor, ArcTan, ArcTanD, Cos, CosD, Exp,
Round, Sin, SinD, Sqr, Sqrt, Tan, TanD, Tanh, Trunc, DegToRad, RadToDeg |
No | Register with parser or via event |
Only examples | none detected | raises custom exception during
evaluation. |
No |
Should be compatible | relatively simple |
Pascal Script |
2600% longer than compiled code | Essentially
a interpreted version of Object Pascal. Almost anything Object Pascal
can do, it can do. |
Examples and online documentation |
none detected | Raises Exception (but not a custom Exception) during compilation phase. | ? |
not compatible |
complex |
||||
TStExpression |
4800% longer than compiled code | Real |
+ - * / ^ |
abs, arctan, cos, exp, frac,
int, trunc, ln, pi, round, sin, sqr, sqrt, arccos, arcsin, arctan2, tan, cotan, hypot, cosh, sinh, tanh, arccosh, arcsinh, arctanh, lnxp1, log10, log2, logn, ceil, floor |
Yes, 0 to 3 argument | Register with parser or via event | Extensive help files plus
examples |
none detected | raises custom exception during evaluation. | No |
not compatible | relatively simple |
TMathParser |
7700% longer than
compiled code
(Expression must be reinterpreted each time it is evaluated.) |
Real |
+ - * / | abs atan cos exp ln round sin
sqrt sqr tan trunc |
No |
Via event |
Yes |
none detected | Calls OnParseError event during compilation phase. | No |
not compatible | relatively simple |
TExpressIt |
44,000% longer than compiled code | Variant |
= <> >= <= > <
+ - & or xor * / ^ div mod and not - == Resembles Matches Contains
In Starts Ends && |
True False MinInteger MaxInteger
AsString AsInteger AsBoolean AsReal IsEmpty IsNull Max Min Average
Ranged InRange Round Trunc Absolute Sign Square SquareRoot RandomRange
RandomFrom Random IfThen PositionOf PartOf Insert Remove Length Format
Uppercase Lowercase Evaluate Quote QuoteWith Dequote DequoteWith
FieldCount FieldOf WordCount WordOf LineCount LineOf MinReal MaxReal Pi
Exp Numerator Denominator Ceil Floor Tan Sin Cos ArcTan ArcSin ArcCos
TanH SinH CosH ArcTanH ArcSinH ArcCosH RadToGrad RadToDeg RadToCycle
GradToRad DegToRad CycleToRad Log10 Log2 LogN Ln GradToDeg GradToCycle
DegToGrad DegToCycle CycleToGrad CycleToDeg CoTan ArcTan2 Hypot LnXP1
RandG LdExp Mean Sum SumOfSquares StdDev PopNStdDev Variance
PopNVariance TotalVariance Norm Now TheDate TheTime AsDateTime DateOf
TimeOf YearOf MonthOf WeekOf DayOf HourOf MinuteOf SecondOf
MilliSecondOf DayOfYearOf DayOfWeekOf DateFor TimeFor DateTimeFor
IsLeapYear IsInLeapYear DaysInAMonth DaysInMonth DaysInAYear DaysInYear
StartOfYear EndOfYear StartOfMonth EndOfMonth StartOfWeek EndOfWeek
StartOfDay EndOfDay MonthOfYear WeekOfYear DayOfYear HourOfYear
MinuteOfYear SecondOfYear MilliSecondOfYear WeekOfMonth DayOfMonth
HourOfMonth SecondOfMonth MilliSecondOfMonth DayOfWeek HourOfWeek
MinuteOfWeek SecondOfWeek MilliSecondOfWeek HourOfDay MinuteOfDay
SecondOfDay MilliSecondOfDay MinuteOfHour SecondOfHour
MilliSecondOfHour SecondOfMinute MilliSecondOfMinute
MilliSecondOfSecond WithinPastYears WithinPastMonths WithinPastWeeks
WithinPastDays WithinPastHours WithinPastMinutes WithinPastSeconds
WithinPastMilliSeconds YearsBetween MonthsBetween WeeksBetween
DaysBetween HoursBetween MinutesBetween SecondsBetween
MilliSecondsBetween YearSpan MonthSpan WeekSpan DaySpan HourSpan
MinuteSpan SecondSpan MilliSecondSpan Exists DriveOf PathOf NameOf
ShortNameOf FullNameOf ExtensionOf SizeOf LastChangeOf AttributesOf
PathAndFile WithExtension RootOf FolderOf ParentOfPathOf DirOf
UNCPathOf IsLocal OnlyNameOf CreationOf LastAccessOf EnglishSizeOf
EnglishAttributesOf IsReadOnly IsHidden IsSystem IsDirectory IsArchive
IsCompressed FileTypeOf ApplicationFor VersionValueOf
VersionValueExists AskQuestion AskConfirmation AskForText AskForFile
AskForPath True False Pi AsInteger AsBoolean AsReal AsComplex IsComplex
IsEmpty IsNull IfThen RealOf ImaginaryOf ComplexFor Simplify Conjugate
Inverse TimesPosI TimesNegI Norm Angle Exp Ln SquareRoot Cos Sin Tan
ArcCos ArcSin ArcTan CosH SinH TanH ArcCosH ArcSinH ArcTanH |
Yes |
Via event | Yes |
none detected | Execute function returns False. |
? |
not compatible | Intermediate complexity |
TCalcExpress |
~630% longer than compiled code | Real |
+ - * / ^ |
cos, sin, tg, ctg, abs, sgn or
sign, sqrt, ln, exp, arcsin, arccos, arctg or arctan, arcctg, sh or
sinh, ch or cosh, th or tanh, cth or coth, heaviside |
No |
Register with parser | Examples only |
Tan function does not work
correctly. |
calls ShowMessage ('Error in
formula.'); |
No |
Should be compatible | relatively simple |