public override object Evaluate()
        {
            CPolynomial poly1 = LeftExpression.EvaluateAsCPolynomial();
            CPolynomial poly2 = RightExpression.EvaluateAsCPolynomial();

            return(new CMatrix(CPolynomial.Modulus(poly1, poly2).ToArray()));
        }
        public override object Evaluate()
        {
            CPolynomial poly  = LeftExpression.EvaluateAsCPolynomial();
            int         order = RightExpression.EvaluateAsInt32();

            return(new CMatrix(poly.NthDerivative(order).ToArray()));
        }
        public override object Evaluate()
        {
            CPolynomial poly = LeftExpression.EvaluateAsCPolynomial();
            Object      x    = RightExpression.Evaluate();

            if (x is Complex)
            {
                return(poly.Evaluate((Complex)x));
            }
            else if (x is CMatrix)
            {
                return(poly.Evaluate((CMatrix)x));
            }
            else
            {
                throw ExceptionHelper.ThrowWrongArgumentType(x);
            }
        }