| Gary Beene's Information Centers | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser Code Comparison | eoeq.dll | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 June 2007 | Note: Include files are part of the product installation package. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clsMathParser | Simple Expression Evaluator | MTParser | muParser | Formula One | MSScript | AxEval | bcParser | TFunctionParser | ecMathExpr | Cioina | Precision Expression Evaluator | #Calculation Component | USPExpress | EquTranslator | uCalc | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | Basic Code: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim Parser As New clsMathParser | Equation = "x + y" 'set the equation | Dim Parser As New MTParser | hParser = mupCreate | Equation = "x + y" | sc1.ExecuteStatement "x = " & iX | txtAxHidden.Text = "x = " & iX & vbCrLf & "y = " & iY & vbCrLf & Equation | Dim WithEvents bcParser As BCPARSERLib.Parser | Dim FunctionParser As Object | ecMathExpr1.compile Formula | PEE.Expression = Equation | EvalResult = SharpCalc1.Evaluate("x=" & iX & ",y=" & iY & "," & Equation) | Dim iEq As USPExpression, iErr As Integer, sVariables(1 To 2) As String | Dim arg(1) As Double, Formula As String | xPtr = ucDefineVariable("x As Long", VarPtr(X)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.StoreExpression Equation | Equation = Replace(Equation, "x", iX) 'set X | Dim X As New MTDouble, Y As New MTDouble | Equation = Replace(LCase(Equation), "exp", "qqq") 'remove x references | sc1.ExecuteStatement "y = " & iY | AxEval.Evaluate txtAxHidden.Text, d(1) | Set bcParser = New BCPARSERLib.Parser | Set FunctionParser = CreateObject("mhgspars.FunctionParser") | Dim Saved8087CW As Integer | Dim dValues(1 To 2) As Double, Index As Integer, sExpression As String | BuildEqu "f(x,y)=" & Equation | yPtr = ucDefineVariable("y As Long", VarPtr(Y)) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Equation = Replace(Equation, "y", iY) 'set Y | X.Create "x", 1 | mupDefineVar hParser, "x", VarPtr(X) | EvalResult = sc1.Eval(Equation) | bcParser.OptimizationOn = True | FunctionParser.Term = Equation | ecMathExpr1.Variable("x") = iX 'set X | Saved8087CW = GetFPU8087CW | PEE.SetVariable "x", X 'set X | ExprPtr = ucParse(Equation) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.VarValue(1) = iX 'set X | EvalResult = ParseVB(Formula3) 'evaluate equation | Y.Create "y", 1 | mupDefineVar hParser, "y", VarPtr(Y) | Formula1 = Replace(LCase(Formula1), "x", str$(iX)) 'replace x with values | bcParser.Expression = Formula | ecMathExpr1.Variable("y") = iY 'set Y | SetFPU8087CW 4978 | PEE.SetVariable "y", Y 'set Y | Set iEq = New USPExpression | arg(0) = iX 'set X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.VarValue(2) = iY 'set Y | Parser.defineVar X | mupSetExpr hParser, Equation | Formula2 = Replace(LCase(Formula1), "y", str$(iY)) 'replace y with values | FunctionParser.SetVarValue "x", iX 'set X | EvalResult = ecMathExpr1.Value 'evaluate expression with new values | CreateList | sVariables(1) = "x": sVariables(2) = "y" | arg(1) = iY 'set Y | EvalResult = ucEvaluate(ExprPtr) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = Parser.Eval 'evalute results | Parser.defineVar Y | Formula2 = Replace(LCase(Formula1), "qqq", "EXP") 'restore x references | bcParser.X = iX 'set X | FunctionParser.SetVarValue "y", iY 'set Y | AddMathExpressionWithUserFunctions | EvalResult = PEE.Evaluate 'evaluate expression | sExpression = txtUSPEquation.Text | EvalResult = CalcFor(arg(0)) 'evaluate expression | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.compile txtMTEquation.Text | X = iX 'set X | F1.FormulaRC(1, 1) = Formula2 'put equation in cells | bcParser.Y = iY 'set Y | EvalResult = FunctionParser.Result 'evaluate expression | Index = iEq.Parse(sExpression, sVariables, iErr) | ucReleaseItem ExprPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Y = iY 'set Y | EvalResult = F1.NumberRC(1, 1) 'read value from cell | EvalResult = bcParser.Evaluate 'evaluate expression | SetProtectVariablesEndedWithoutNumber 0, True | ucReleaseItem xPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| X.Value = iX 'set X | EvalResult = mupEval(hParser) 'evaluate expression | Parse 0, txtCioEquation.Text, "x,y", False | dValues(1) = X | ucReleaseItem yPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Y.Value = iY 'set Y | dValues(2) = Y | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = Parser.evaluateCompiled() 'evaluate expression | mupRelease (hParser) | SetVariableValue 0, 1, iX | EvalResult = iEq.Evaluate(dValues) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SetVariableValue 0, 2, iY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = DoMathExpression(0) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include files: | Include Files: | Include files: | Include files: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clsMathParsr.cls | ExpEval.bas | MTParserCOM.dll | muParser.dll | ttf16.ocx | inv.dll | msscript.ocx | AxEval.dll | bcParser.dll | mhgspars.dll | ecMathExpr.ocx | cioina.bdll | EquTranslator.bas | uCalcVB.Bas (declarations/supporting functions) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mMathSpecFun.bas | invr.dll | cioina.bas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| invw.dll | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | Complete Code: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Private Sub cmdCLS_Click() | Private Sub cmdSE_Click() | Private Sub cmdMTParser_Click() | Private Sub cmdmuParser_Click() | Private Sub cmdOne_Click() | Private Sub cmdMSS_Click() | Private Sub cmdAx_Click() | Private Sub cmdBC_Click() | Private Sub cmdTFP_Click() | Private Sub cmdEC_Click() | Private Sub cmdCioina_Click() | Private Sub cmdPEE_Click() | Private Sub cmdSHR_Click() | Private Sub cmdUSP_Click() | Private Sub cmdEqu_Click() | Private Sub cmduCalc_Click() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'time-keeping code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'time-keeping code | 'time-keeping code | 'time-keeping code | Dim iStart As Long, iEnd As Long | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code | 'time-keeping code (put here so the popu EquTranslator window won't affect timing | 'time-keeping code | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | iStart = GetTickCount | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | Dim iStart As Long, iEnd As Long | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | iStart = GetTickCount | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'example code initialization | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'example code initialization | 'example code initialization | 'example code initialization | Dim iX As Long, iY As Long | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | 'example code initialization | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long, Formula As String | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | Dim iX As Long, iY As Long | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim CombinedResult As Double, EvalResult As Double | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim i As Long, iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | Dim iRepeatsX As Long, iRepeatsY As Long | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | iRepeatsX = txtMURepeatsX.Text 'get from user | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | Dim CombinedResult As Double, EvalResult As Double | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iRepeatsX = txtCLSRepeatsX.Text 'get from user | iRepeatsX = txtSERepeatsX.Text 'get from user | iRepeatsX = txtMTRepeatsX.Text 'get from user | iRepeatsY = txtMURepeatsY.Text 'get from user | iRepeatsX = txtOneRepeatsX.Text 'get from user | iRepeatsX = txtMSSRepeatsX.Text 'get from user | iRepeatsX = txtAxRepeatsX.Text 'get from user | iRepeatsX = txtBCRepeatsX.Text 'get from user | iRepeatsX = txtTFPRepeatsX.Text 'get from user | iRepeatsX = txtECRepeatsX.Text 'get from user | iRepeatsX = txtCioRepeatsX.Text 'get from user | iRepeatsX = txtPEERepeatsX.Text 'get from user | iRepeatsX = txtSHRRepeatsX.Text 'get from user | iRepeatsX = txtUSPRepeatsX.Text 'get from user | iRepeatsX = txtEquRepeatsX.Text 'get from user | iRepeatsX = txtDCRepeatsX.Text 'get from user | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iRepeatsY = txtCLSRepeatsY.Text 'get from user | iRepeatsY = txtSERepeatsY.Text 'get from user | iRepeatsY = txtMTRepeatsY.Text 'get from user | iRepeatsY = txtOneRepeatsY.Text 'get from user | iRepeatsY = txtMSSRepeatsY.Text 'get from user | iRepeatsY = txtAxRepeatsY.Text 'get from user | iRepeatsY = txtBCRepeatsY.Text 'get from user | iRepeatsY = txtTFPRepeatsY.Text 'get from user | iRepeatsY = txtECRepeatsY.Text 'get from user | iRepeatsY = txtCioRepeatsY.Text 'get from user | iRepeatsY = txtPEERepeatsY.Text 'get from user | iRepeatsY = txtSHRRepeatsY.Text 'get from user | iRepeatsY = txtUSPRepeatsY.Text 'get from user | iRepeatsY = txtEquRepeatsY.Text 'get from user | iRepeatsY = txtDCRepeatsY.Text 'get from user | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'muParser-specific initialization | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'clsMathParser-specific initialization | 'Simple Expression Evaluator-specific initialization | 'MTParser-specific initialization | Dim X As Double, Y As Double | 'uCalc-specific initializations | 'uCalc-specific initializations | 'AxEval-specific initializations | 'bcParser-specific initializations | 'TFunctionParser-specific initializations | 'ecMathExpr-specific initializations | 'Cioina Parser-specific initialization | 'Precision Expression Calculator-specific initializations | '#Calculator-specific initializations | 'USPExpressParser-specific initialization | 'EquTranslator Parser-specific initialization | 'uCalc-specific initializations | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dim Parser As New clsMathParser | Dim Formula1 As String, Formula2 As String, Formula3 As String | Dim Parser As New MTParser | Dim hParser As Long, Equation As String | Dim X As Long, xPtr As Long | Dim X As Long, xPtr As Long | Dim X As Double, Y As Double, Formula As String, d(1) As Double | Dim X As Double, Y As Double | Dim X As Long, Y As Long | Dim X As Double, Y As Double | Dim X As Long, Y As Long | PEE.Expression = txtPEEEquation.Text | Dim X As Double, Y As Double | Dim iEq As USPExpression, lErr As Integer, sVariables(1 To 2) As String | Dim arg(1) As Double, Formula As String | Dim X As Long, xPtr As Long | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.StoreExpression txtCLSEquation.Text | Formula1 = txtSEEquation.Text | Dim X As New MTDouble, Y As New MTDouble | Equation = txtMUEquation.Text | Dim Y As Long, yPtr As Long | Dim Y As Long, yPtr As Long | Formula = Replace(txtAxEquation.Text, "sqrt", "sqr") | Dim Formula As String | Dim FunctionParser As Object | Formula = txtECEquation.Text | Dim Saved8087CW As Integer | Dim Equation As String | Dim dValues(1 To 2) As Double, lIndex As Integer | Formula = txtEquEquation.Text | Dim Y As Long, yPtr As Long | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| X.Create "x", 1 | hParser = mupCreate | Dim Equation As String, Formula1 As String | Dim Equation As String, Formula1 As String, Formula2 As String | Formula = txtBCEquation.Text | ' Creating FunctionParser Automation Object | Formula = Replace(Formula, "sqrt", "sqr") | Saved8087CW = GetFPU8087CW | 'initialization | Dim dValue As Double, sExpression As String | BuildEqu "f(x,y)=" & Formula | Dim ExprPtr As Long | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'initialization | 'initialization | Y.Create "y", 1 | Dim Formula2 As String, Formula3 As String | 'initialization | bcParser.OptimizationOn = True | Set FunctionParser = CreateObject("mhgspars.FunctionParser") | ecMathExpr1.compile Formula | SetFPU8087CW 4978 | txtPEEResult.Text = "<in work>" 'progress report | 'initialization | Set iEq = New USPExpression | xPtr = ucDefineVariable("x As Long", VarPtr(X)) 'define "x" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSResult.Text = "<in work>" 'report progress | txtSEResult.Text = "<in work>" 'progress report | Parser.defineVar X | mupDefineVar hParser, "x", VarPtr(X) | 'initialization | txtAxResult.Text = "<in work>" 'to let user know something is happening | bcParser.Expression = Formula | FunctionParser.Term = txtTFPEquation.Text | CreateList | txtPEETime.Text = "<in work>" | Equation = txtSHREquation.Text | sVariables(1) = "x": sVariables(2) = "y" | 'initialization | yPtr = ucDefineVariable("y As Long", VarPtr(Y)) 'define "y" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSTime.Text = "<in work>" | txtSETime.Text = "<in work>" | Parser.defineVar Y | mupDefineVar hParser, "y", VarPtr(Y) | 'initialization | Equation = txtOneEquation.Text | txtAxTime.Text = "<in work>" | 'initialization | AddMathExpressionWithUserFunctions | txtPEESpeed.Text = "<in work>" | txtSHRResult.Text = "<in work>" 'progress report | sExpression = txtUSPEquation.Text | txtEquResult.Text = "<in work>" 'progress report | ExprPtr = ucParse(txtDCEquation.Text) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSSpeed.Text = "<in work>" | txtSESpeed.Text = "<in work>" | Parser.compile txtMTEquation.Text | mupSetExpr hParser, Equation | Equation = txtOneEquation.Text | Equation = Replace(Equation, "sqrt", "sqr") | txtAxSpeed.Text = "<in work>" | 'initialization | 'initialization | txtECResult.Text = "<in work>" 'progress report | SetProtectVariablesEndedWithoutNumber 0, True | DoEvents | txtSHRTime.Text = "<in work>" | lIndex = iEq.Parse(sExpression, sVariables, lErr) | txtEquTime.Text = "<in work>" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DoEvents | DoEvents | Equation = Replace(LCase(Equation), "exp", "qqq") | txtMSSResult.Text = "<in work>" 'progress report | DoEvents | txtBCResult.Text = "<in work>" 'progress report | txtTFPResult.Text = "<in work>" 'progress report | txtECTime.Text = "<in work>" | Parse 0, txtCioEquation.Text, "x,y", False | txtSHRSpeed.Text = "<in work>" | txtEquSpeed.Text = "<in work>" | 'initialization | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'initialization | 'initialization | txtMSSTime.Text = "<in work>" | txtBCTime.Text = "<in work>" | txtTFPTime.Text = "<in work>" | txtECSpeed.Text = "<in work>" | 'Loop | DoEvents | 'initialization | DoEvents | txtDCResult.Text = "<in work>" 'progress report | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'Loop | 'Loop | txtMTResult.Text = "<in work>" 'progress report | txtMUResult.Text = "<in work>" 'progress report | txtOneResult.Text = "<in work>" 'progress report | txtMSSSpeed.Text = "<in work>" | 'Loop | txtBCSpeed.Text = "<in work>" | txtTFPSpeed.Text = "<in work>" | DoEvents | 'initialization | For iX = 1 To iRepeatsX | txtUSPResult.Text = "<in work>" 'progress report | txtDCTime.Text = "<in work>" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| For iX = 1 To iRepeatsX | For iX = 1 To iRepeatsX | txtMTTime.Text = "<in work>" | txtMUTime.Text = "<in work>" | txtOneTime.Text = "<in work>" | DoEvents | For iX = 1 To iRepeatsX | DoEvents | DoEvents | txtCioResult.Text = "<in work>" 'progress report | PEE.SetVariable "x", iX 'set X | 'Loop | txtUSPTime.Text = "<in work>" | 'Loop | txtDCSpeed.Text = "<in work>" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.VarValue(1) = iX 'set X | Formula2 = Replace(Formula1, "x", iX) | txtMTSpeed.Text = "<in work>" | txtMUSpeed.Text = "<in work>" | txtOneSpeed.Text = "<in work>" | For iY = 1 To iRepeatsY | 'Loop | txtCioTime.Text = "<in work>" | For iY = 1 To iRepeatsY | For iX = 1 To iRepeatsX | txtUSPSpeed.Text = "<in work>" | For iX = 1 To iRepeatsX | DoEvents | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| For iY = 1 To iRepeatsY | For iY = 1 To iRepeatsY 'set X | DoEvents | DoEvents | DoEvents | 'Loop | txtAxHidden.Text = "x = " & iX & vbCrLf & "y = " & iY & vbCrLf & Formula | 'Loop | 'Loop | For iX = 1 To iRepeatsX | txtCioSpeed.Text = "<in work>" | PEE.SetVariable "y", iY 'set Y | For iY = 1 To iRepeatsY | DoEvents | arg(0) = iX 'set X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Parser.VarValue(2) = iY 'set Y | Formula3 = Replace(Formula2, "y", iY) 'set Y | For iX = 1 To iRepeatsX | AxEval.Evaluate txtAxHidden.Text, d(1) | For iX = 1 To iRepeatsX | For iX = 1 To iRepeatsX | ecMathExpr1.Variable("x") = iX 'set X | DoEvents | EvalResult = PEE.Evaluate 'evaluate expression | EvalResult = SharpCalc1.Evaluate("x=" & iX & ",y=" & iY & "," & Equation) | For iY = 1 To iRepeatsY | 'Loop | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| EvalResult = Parser.Eval 'evalute results | EvalResult = ParseVB(Formula3) 'evaluate equation | 'Loop | 'Loop | 'Loop | sc1.ExecuteStatement "x = " & iX | CombinedResult = CombinedResult + Val(d(1)) 'save results | bcParser.X = iX 'set X | FunctionParser.SetVarValue "x", iX 'set X | For iY = 1 To iRepeatsY | CombinedResult = CombinedResult + EvalResult 'keep results | CombinedResult = CombinedResult + EvalResult 'save results | 'Loop | arg(1) = iY 'set Y | For X = 1 To iRepeatsX | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CombinedResult = CombinedResult + EvalResult 'keep resuls | CombinedResult = CombinedResult + EvalResult 'keep results | For iX = 1 To iRepeatsX | For iX = 1 To iRepeatsX | For iX = 1 To iRepeatsX | For iY = 1 To iRepeatsY | Next iY | For iY = 1 To iRepeatsY | For iY = 1 To iRepeatsY | ecMathExpr1.Variable("y") = iY 'set Y | 'Loop | Next iY | Next iY | For iX = 1 To iRepeatsX | EvalResult = CalcFor(arg(0)) 'evaluate expression | For Y = 1 To iRepeatsY | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Next iY | Next iY | X.Value = iX 'set X | X = iX 'set X | Formula1 = Replace(LCase(Formula1), "x", str$(iX)) | sc1.ExecuteStatement "y = " & iY | Next iX | bcParser.Y = iY 'set Y | FunctionParser.SetVarValue "y", iY 'set Y | EvalResult = ecMathExpr1.Value 'evaluate expression with new values | For iX = 1 To iRepeatsX | Next iX | Next iX | dValues(1) = iX | CombinedResult = CombinedResult + EvalResult 'save results | EvalResult = ucEvaluate(ExprPtr) 'evaluate expression | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Next iX | Next iX | For iY = 1 To iRepeatsY | For iY = 1 To iRepeatsY | For iY = 1 To iRepeatsY | EvalResult = sc1.Eval(Equation) | EvalResult = bcParser.Evaluate 'evaluate expression | EvalResult = FunctionParser.Result 'evaluate expression | CombinedResult = CombinedResult + EvalResult 'save results | SetVariableValue 0, 1, iX | For iY = 1 To iRepeatsY | Next iY | CombinedResult = CombinedResult + EvalResult 'keep results | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Y.Value = iY 'set Y | Y = iY 'set Y | Formula2 = Replace(LCase(Formula1), "y", str$(iY)) | CombinedResult = CombinedResult + EvalResult | 'time-keeping code | CombinedResult = CombinedResult + EvalResult 'save results | CombinedResult = CombinedResult + EvalResult 'save results | Next iY | For iY = 1 To iRepeatsY | 'time-keeping code | 'time-keeping code | dValues(2) = iY 'set X | Next iX | Next Y | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 'time-keeping code | 'time-keeping code | EvalResult = Parser.evaluateCompiled() 'evaluate expression | EvalResult = mupEval(hParser) 'evaluate expression | Formula2 = Replace(LCase(Formula1), "qqq", "EXP") | Next iY | iEnd = GetTickCount | Next iY | Next iY | Next iX | SetVariableValue 0, 2, iY | iEnd = GetTickCount | iEnd = GetTickCount | EvalResult = iEq.Evaluate(dValues) 'evalute expression | Next X | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iEnd = GetTickCount | iEnd = GetTickCount | CombinedResult = CombinedResult + EvalResult 'keep results | CombinedResult = CombinedResult + EvalResult 'keep results | F1.FormulaRC(1, 1) = Formula2 | Next iX | txtAxResult.Text = Format$(CombinedResult, "###,###,###,##0") | Next iX | Next iX | EvalResult = DoMathExpression(0) | txtPEEResult.Text = Format$(CombinedResult, "###,###,###,##0") | txtSHRResult.Text = Format$(CombinedResult, "###,###,###,##0") | CombinedResult = CombinedResult + EvalResult 'keep results | 'time-keeping code | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSResult.Text = Format$(CombinedResult, "###,###,###,##0") | txtSEResult.Text = Format$(CombinedResult, "###,###,###,##0") | Next iY | Next iY | CombinedResult = CombinedResult + F1.NumberRC(1, 1) | txtAxTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | 'time-keeping code | CombinedResult = CombinedResult + EvalResult | txtPEETime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | txtSHRTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | Next iY | iEnd = GetTickCount | ucReleaseItem ExprPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | txtSETime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | Next iX | Next iX | Next iY | 'time-keeping code | If (iEnd - iStart) > 0 Then | 'time-keeping code | 'time-keeping code | iEnd = GetTickCount | Next iY | If (iEnd - iStart) > 0 Then | If (iEnd - iStart) > 0 Then | Next iX | txtEquResult.Text = Format$(CombinedResult, "###,###,###,##0") | ucReleaseItem xPtr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If (iEnd - iStart) > 0 Then | If (iEnd - iStart) > 0 Then | Next iX | iEnd = GetTickCount | txtAxSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | iEnd = GetTickCount | iEnd = GetTickCount | txtECResult.Text = Format$(CombinedResult, "###,###,###,##0") | Next iX | txtPEESpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | txtSHRSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | txtEquTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | ucReleaseItem yPtr | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | txtSESpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | 'time-keeping code | mupRelease (hParser) | txtMSSResult.Text = Format$(CombinedResult, "###,###,###,##0") | / 1000) / 1000000, "###,###,###,##0.0000") & " Mips/sec" | txtBCResult.Text = Format$(CombinedResult, "###,###,###,##0") | txtTFPResult.Text = Format$(CombinedResult, "###,###,###,##0") | txtECTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | / 1000) / 1000000, "###,###,###,##0.0000") & " Mips/sec" | 'time-keeping code | If (iEnd - iStart) > 0 Then | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | / 1000) / 1000000, "###,###,###,##0.000") & " Mips/sec" | iEnd = GetTickCount | 'time-keeping code | txtMSSTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | Else | txtBCTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | txtTFPTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | If (iEnd - iStart) > 0 Then | 'time-keeping code | Else | Else | iEnd = GetTickCount | txtEquSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | 'time-keeping code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Else | Else | txtMTResult.Text = Format$(CombinedResult, "###,###,###,##0") | 'time-keeping code | iEnd = GetTickCount | If (iEnd - iStart) > 0 Then | txtAxSpeed.Text = "<large>" | If (iEnd - iStart) > 0 Then | If (iEnd - iStart) > 0 Then | txtECSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | iEnd = GetTickCount | txtPEESpeed.Text = "<large>" | txtSHRSpeed.Text = "<large>" | txtUSPResult.Text = Format$(CombinedResult, "###,###,###,##0") | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | iEnd = GetTickCount | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtCLSSpeed.Text = "<large>" | txtCLSSpeed.Text = "<large>" | txtMTTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | iEnd = GetTickCount | txtOneResult.Text = Format$(CombinedResult, "###,###,###,##0") | txtMSSSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | End If | txtBCSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | txtTFPSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | txtCioResult.Text = Format$(CombinedResult, "###,###,###,##0") | End If | End If | txtUSPTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | Else | txtDCResult.Text = Format$(CombinedResult, "###,###,###,##0") | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| End If | End If | If (iEnd - iStart) > 0 Then | txtMUResult.Text = Format$(CombinedResult, "###,###,###,##0") | txtOneTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | / 1000) / 1000000, "###,###,###,##0.000") & " Mips/sec" | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | Else | txtCioTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | If (iEnd - iStart) > 0 Then | txtEquSpeed.Text = "<large>" | txtDCTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtMTSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | txtMUTime.Text = FormatNumber((iEnd - iStart) / 1000, 3) & " seconds " | If (iEnd - iStart) > 0 Then | Else | End Sub | Else | Else | txtECSpeed.Text = "<large>" | If (iEnd - iStart) > 0 Then | End Sub | End Sub | txtUSPSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | End If | If (iEnd - iStart) > 0 Then | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| End Sub | End Sub | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | If (iEnd - iStart) > 0 Then | txtOneSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | txtMSSSpeed.Text = "<large>" | txtBCSpeed.Text = "<large>" | txtTFPSpeed.Text = "<large>" | End If | txtCioSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | txtDCSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Else | txtMUSpeed.Text = Format$(iRepeatsX * iRepeatsY / ((iEnd - iStart) _ | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | End If | End If | End If | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | Else | End Sub | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtMTSpeed.Text = "<large>" | / 1000) / 1000000, "###,###,###,##0.00") & " Mips/sec" | Else | End Sub | Else | txtUSPSpeed.Text = "<large>" | Else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| End If | Else | txtOneSpeed.Text = "<large>" | End Sub | End Sub | End Sub | txtCioSpeed.Text = "<large>" | End If | txtDCSpeed.Text = "<large>" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| txtMTSpeed.Text = "<large>" | End If | End If | End If | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| End Sub | End If | End Sub | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| End Sub | End Sub | End Sub | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| End Sub | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||