示例#1
0
        /// <summary>
        /// Sum
        /// </summary>
        /// <param name="p">First term</param>
        /// <param name="q">Second term</param>
        /// <returns>Sum</returns>
        static public RealPolynom operator +(RealPolynom p, RealPolynom q)
        {
            RealPolynom r = new RealPolynom(0);

            if (p.coeffs.Length < q.coeffs.Length)
            {
                for (int i = 0; i < p.coeffs.Length; i++)
                {
                    r.coeffs[i] = p.coeffs[i] + q.coeffs[i];
                }
                for (int i = p.coeffs.Length - 1; i < q.coeffs.Length; i++)
                {
                    r.coeffs[i] = q.coeffs[i];
                }
                return(r);
            }

            for (int i = 0; i < q.coeffs.Length; i++)
            {
                r.coeffs[i] = p.coeffs[i] + q.coeffs[i];
            }
            for (int i = q.coeffs.Length - 1; i < p.coeffs.Length; i++)
            {
                r.coeffs[i] = p.coeffs[i];
            }

            r.Reduce();

            return(r);
        }
示例#2
0
        /// <summary>
        /// Plus constant left
        /// </summary>
        /// <param name="d">Constant</param>
        /// <param name="p">Polynom</param>
        /// <returns>Result polynom</returns>
        static public RealPolynom operator +(double d, RealPolynom p)
        {
            RealPolynom r = p.Clone() as RealPolynom;

            r.coeffs[0] += d;
            r.Reduce();
            return(r);
        }
示例#3
0
        /// <summary>
        /// Multiply to constant left
        /// </summary>
        /// <param name="d">Constant</param>
        /// <param name="p">Polynom</param>
        /// <returns>Result polynom</returns>
        static public RealPolynom operator *(double d, RealPolynom p)
        {
            RealPolynom r = p.Clone() as RealPolynom;

            for (int i = 0; i < r.coeffs.Length; i++)
            {
                r.coeffs[i] *= d;
            }
            r.Reduce();
            return(r);
        }