Beispiel #1
0
        public static MultivariatePolynomial Pow(MultivariatePolynomial poly, int exponent)
        {
            if (exponent < 0)
            {
                throw new NotImplementedException("Raising a polynomial to a negative exponent not supported.");
            }
            else if (exponent == 0)
            {
                return(new MultivariatePolynomial(new Term[] { new Term(1, new Indeterminate[0]) }));
            }
            else if (exponent == 1)
            {
                return(poly.Clone());
            }

            MultivariatePolynomial result = poly.Clone();

            int counter = exponent - 1;

            while (counter != 0)
            {
                result   = MultivariatePolynomial.Multiply(result, poly);
                counter -= 1;
            }
            return(new MultivariatePolynomial(result.Terms));
        }
Beispiel #2
0
        public static MultivariatePolynomial Product(IEnumerable <MultivariatePolynomial> polys)
        {
            MultivariatePolynomial result = null;

            foreach (MultivariatePolynomial p in polys)
            {
                if (result == null)
                {
                    result = p.Clone();
                }
                else
                {
                    result = MultivariatePolynomial.Multiply(result, p);
                }
            }
            return(result);
        }