Imports System
Imports uCalcSoftware
Public Module Program
   Public Sub Main()
      Dim uc As New uCalc()
      '// Check default data type
      Console.WriteLine(uc.DefaultDataType.Name)
      
      '// This examples shows setting the default data type in 3
      '// different ways: by BuiltInType enum, DataType ojbect,
      '// or data type by name (string)
      
      '// Change default default data type
      uc.DefaultDataType = uc.DataTypeOf(BuiltInType.Integer_16)
      Console.WriteLine(uc.DefaultDataType.Name)
      
      '// Test new default (returns integers instead of double)
      
      uc.DefineFunction("ff(x, y) = (x + y)/3")
      '// same as ff(x As int16, y As int16) As int16 = ...
      
      uc.DefineFunction("gg(x) = x*100")
      '// same as gg(x As int16) As int16 = ...
      
      Console.WriteLine(uc.Eval("ff(4, 12)"))
      Console.WriteLine(uc.Eval("gg(6.1)"))
      
      uc.SetDefaultDataType("Single")
      Console.WriteLine(uc.DefaultDataType.Name)
      
      '// Change back to original default (double)
      uc.SetDefaultDataType(BuiltInType.Float_Double)
      
      '// Verify that default is now double
      Console.WriteLine(uc.DefaultDataType.Name)
   End Sub
End Module