Internal Test: Verifies correct results with multiple variables and a function call within a tight loop using a pre-parsed expression.

ID: 1194

				
					using uCalcSoftware;

var uc = new uCalc();
uc.DefineFunction("Calc(a, b) = a * 2 - b");
var x_var = uc.DefineVariable("x");
var y_var = uc.DefineVariable("y");
var i = 0;

var expr = uc.Parse("Calc(x, y) + Sqrt(x)");
for ( i = 1; i <= 4; i++) {
   x_var.Value(i * i); // Use squared values for x
   y_var.Value(i);     // Use linear values for y
   Console.WriteLine(expr.Evaluate());
}
				
			
2
8
18
32
				
					#include <iostream>
#include "uCalc.h"

using namespace std;
using namespace uCalcSoftware;

int main() {
   uCalc uc;
   uc.DefineFunction("Calc(a, b) = a * 2 - b");
   auto x_var = uc.DefineVariable("x");
   auto y_var = uc.DefineVariable("y");
   auto i = 0;

   auto expr = uc.Parse("Calc(x, y) + Sqrt(x)");
   for ( i = 1; i <= 4; i++) {
      x_var.Value(i * i); // Use squared values for x
      y_var.Value(i);     // Use linear values for y
      cout << expr.Evaluate() << endl;
   }
}
				
			
2
8
18
32
				
					Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      uc.DefineFunction("Calc(a, b) = a * 2 - b")
      Dim x_var = uc.DefineVariable("x")
      Dim y_var = uc.DefineVariable("y")
      Dim i = 0
      
      Dim expr = uc.Parse("Calc(x, y) + Sqrt(x)")
      For i  = 1 To 4
         x_var.Value(i * i) '// Use squared values for x
         y_var.Value(i)     '// Use linear values for y
         Console.WriteLine(expr.Evaluate())
      Next
   End Sub
End Module
				
			
2
8
18
32