public static void OPERATOR_DIV(MathContext m) { double b = m.STK.Pop(); double a = m.STK.Pop(); m.STK.Push(a / b); }
public static void OPERATOR_EXP(MathContext m) { double b = m.STK.Pop(); double a = m.STK.Pop(); m.STK.Push(Math.Pow(a, b)); }
static MathContext CalcInternal(List <MathOperation> mops, Dictionary <string, Tuple <int, Action <MathContext> > > functions) { MathContext math = new MathContext(); math.STK = new Stack <double>(); math.Functions = functions; for (int i = 0; i < mops.Count; i++) { if (mops[i].OpValue == MathOp.LDN) { math.STK.Push(mops[i].NumericValue); } else if (mops[i].OpValue == MathOp.FNC) { functions[mops[i].FunctionValue].Item2(math); } else { Operators[(int)mops[i].OpValue](math); } } return(math); }
static MathContext CalcInternal(List<MathOperation> mops, Dictionary<string, Tuple<int, Action<MathContext>>> functions) { MathContext math = new MathContext(); math.STK = new Stack<double>(); math.Functions = functions; for (int i = 0; i < mops.Count; i++) { if (mops[i].OpValue == MathOp.LDN) { math.STK.Push(mops[i].NumericValue); } else if (mops[i].OpValue == MathOp.FNC) { functions[mops[i].FunctionValue].Item2(math); } else { Operators[(int)mops[i].OpValue](math); } } return math; }
public static void OPERATOR_SUB(MathContext m) { double b = m.STK.Pop(); double a = m.STK.Pop(); m.STK.Push(a - b); }
public static void OPERATOR_EXP(MathContext m) { double b = m.STK.Pop(); double a = m.STK.Pop(); m.STK.Push(Math.Pow(a, b)); }
public static void FUNCTION_SIN(MathContext m) { double a = m.STK.Pop(); m.STK.Push(Math.Sin(a)); }
public static void FUNCTION_COS(MathContext m) { double a = m.STK.Pop(); m.STK.Push(Math.Cos(a)); }
public static void FUNCTION_COS(MathContext m) { double a = m.STK.Pop(); m.STK.Push(Math.Cos(a)); }
public static void FUNCTION_SIN(MathContext m) { double a = m.STK.Pop(); m.STK.Push(Math.Sin(a)); }