Beispiel #1
0
        public static void OPERATOR_DIV(MathContext m)
        {
            double b = m.STK.Pop();
            double a = m.STK.Pop();

            m.STK.Push(a / b);
        }
Beispiel #2
0
        public static void OPERATOR_EXP(MathContext m)
        {
            double b = m.STK.Pop();
            double a = m.STK.Pop();

            m.STK.Push(Math.Pow(a, b));
        }
Beispiel #3
0
        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));
 }
Beispiel #9
0
        public static void FUNCTION_COS(MathContext m)
        {
            double a = m.STK.Pop();

            m.STK.Push(Math.Cos(a));
        }
Beispiel #10
0
        public static void FUNCTION_SIN(MathContext m)
        {
            double a = m.STK.Pop();

            m.STK.Push(Math.Sin(a));
        }