EvaluateInt32Method

Applies to:Fast Math Parser
Class:uCalc.ParsedExpr
Rapidly evaluates expression that was parsed as integer with Parse or passed By Expression
Syntax
EvaluateInt32()
Remarks
This is similar to Evaluate, but applies only to integer expressions.

Example 1: Displaying a different Integer (Int32) result for each value of x based on the expression parsed with Parse

Dim VariableX = uc.DefineVariable("x")
Dim Expression As string
Console.Write("Enter an expression (Ex: x / 2): ")

Dim ParsedExpr = uc.Parse(Expression, "Integer"): ' NOTE: Expression must be parsed as a 32-bit integer for EvaluateInt32 to work;

Dim x As double
for x = 1 To 10
VariableX.SetVariableValue(x)
Console.WriteLine("x = " + x + "  Result = " + ParsedExpr.EvaluateInt32())
Next

' Output
' x = 1  Result = 0
' x = 2  Result = 1
' x = 3  Result = 1
' x = 4  Result = 2
' x = 5  Result = 2
' x = 6  Result = 3
' x = 7  Result = 3
' x = 8  Result = 4
' x = 9  Result = 4
' x = 10  Result = 5

var VariableX = uc.DefineVariable("x");
string Expression;
Console.Write("Enter an expression (Ex: x / 2): ");

var ParsedExpr = uc.Parse(Expression, "Integer"); // NOTE: Expression must be parsed as a 32-bit integer for EvaluateInt32 to work;

for (double x = 1; x <= 10; x = x + 1) {
VariableX.SetVariableValue(x);
Console.WriteLine("x = " + x + "  Result = " + ParsedExpr.EvaluateInt32());
}

// Output
// x = 1  Result = 0
// x = 2  Result = 1
// x = 3  Result = 1
// x = 4  Result = 2
// x = 5  Result = 2
// x = 6  Result = 3
// x = 7  Result = 3
// x = 8  Result = 4
// x = 9  Result = 4
// x = 10  Result = 5

ParsedExpr.Release();
VariableX.Release();

//var VariableX = uc.DefineVariable('x');
Write('Enter an expression (Ex: x / 2): ')

//var ParsedExpr = uc.Parse(Expression, 'Integer'); // NOTE: Expression must be parsed as a 32-bit integer for EvaluateInt32 to work;

for x := 1 to 10 do
begin
VariableX.SetVariableValue(x);
WriteLn('x = ' + x + '  Result = ' + ParsedExpr.EvaluateInt32());
End;

// Output
// x = 1  Result = 0
// x = 2  Result = 1
// x = 3  Result = 1
// x = 4  Result = 2
// x = 5  Result = 2
// x = 6  Result = 3
// x = 7  Result = 3
// x = 8  Result = 4
// x = 9  Result = 4
// x = 10  Result = 5

auto VariableX = uc.DefineVariable("x");
string Expression;
cout << "Enter an expression (Ex: x / 2): " << endl;
cin >> Expression; // Ex: x / 2

auto ParsedExpr = uc.Parse(Expression, "Integer"); // NOTE: Expression must be parsed as a 32-bit integer for EvaluateInt32 to work;

for (double x = 1; x <= 10; x = x + 1) {
VariableX.SetVariableValue(x);
cout << "x = " << x << "  Result = " << ParsedExpr.EvaluateInt32() << endl;
}

// Output
// x = 1  Result = 0
// x = 2  Result = 1
// x = 3  Result = 1
// x = 4  Result = 2
// x = 5  Result = 2
// x = 6  Result = 3
// x = 7  Result = 3
// x = 8  Result = 4
// x = 9  Result = 4
// x = 10  Result = 5

ParsedExpr.Release();
VariableX.Release();

auto VariableX = uc.DefineVariable("x");
string ^ Expression;
Console::Write("Enter an expression (Ex: x / 2): ");

auto ParsedExpr = uc.Parse(Expression, "Integer"); // NOTE: Expression must be parsed as a 32-bit integer for EvaluateInt32 to work;

for (double x = 1; x <= 10; x = x + 1) {
VariableX.SetVariableValue(x);
Console::WriteLine("x = " + x + "  Result = " + ParsedExpr.EvaluateInt32());
}

// Output
// x = 1  Result = 0
// x = 2  Result = 1
// x = 3  Result = 1
// x = 4  Result = 2
// x = 5  Result = 2
// x = 6  Result = 3
// x = 7  Result = 3
// x = 8  Result = 4
// x = 9  Result = 4
// x = 10  Result = 5

ParsedExpr.Release();
VariableX.Release();

DLL import code
<DllImport(uCalcDLL, CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl, EntryPoint:="EvaluateInt32")> _

Private Function EvaluateInt32__(ByVal ExprHandle As IntPtr) As  Int32
End Function

[DllImport(uCalcDLL, CharSet=CharSet.Ansi, CallingConvention=CallingConvention.Cdecl, EntryPoint="EvaluateInt32")]

protected static extern  Int32 EvaluateInt32_(IntPtr ExprHandle);

{DLLImport}function EvaluateInt32__(ExprHandle: System.Pointer):  Int32; cdecl; external uCalcDLL name 'EvaluateInt32';

typedef  int32_t (* __EvaluateInt32)(void *ExprHandle);

[DllImport(uCalcLib, CharSet=CharSet::Ansi, CallingConvention=CallingConvention::Cdecl, EntryPoint = "EvaluateInt32")]

static Int32 EvaluateInt32_(void *  ExprHandle);