Esempio n. 1
0
        public override IBaseMathOperator Derivate()
        {
            if (IsConstant())
            {
                return(new ConstantMathOperator(0));
            }

            var topFirstMultiply = new MultiplyMathOperator();

            topFirstMultiply.Instantiate(new [] { B, A.Derivate() });

            var topSecondMultiply = new MultiplyMathOperator();

            topSecondMultiply.Instantiate(new [] { A, B.Derivate() });

            var topMin = new MinMathOperator();

            topMin.Instantiate(new IBaseMathOperator[] { topFirstMultiply, topSecondMultiply });

            var bottom = ExpotentialOperator.SetExpotentialOperator(B, 2);

            var divide = new DevideMathOperator();

            divide.Instantiate(new IBaseMathOperator[] { topMin, bottom });
            return(divide);
        }