Beispiel #1
0
        public override void execute(MK52_Host components, string command)
        {
            RPN_Stack s = _dealWithClergy1(components);

            if (s == null)
            {
                return;
            }
            s.storeBx();
            switch (s.XtoOctant())
            {
            case -1:
                break;

            case 0:
            case 4:
                s.X.fromInt(0);
                return;

            case 1:
            case 5:
                s.X.fromInt(1);
                return;

            case 2:
                s.X.fromReal(double.PositiveInfinity);
                return;

            case 3:
            case 7:
                s.X.fromInt(-1);
                return;

            case 6:
                s.X.fromReal(double.NegativeInfinity);
                return;

            default:
                break;
            }
            double result = s.XtoRadian();

            if (double.IsInfinity(result))
            {
                s.X.fromReal(double.NaN);
                return;
            }
            s.setTrigAccuracyWarning(result);
            result = Math.Tan(result);
            s.X.fromReal(result);
        }