Class MultivariateDivision


  • public final class MultivariateDivision
    extends Object
    Division with remainder of multivariate polynomials (multivariate reduction).
    Since:
    1.0
    • Method Detail

      • divideAndRemainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly[] divideAndRemainder​(Poly dividend,
                                                                                                                                           Poly... dividers)
        Performs multivariate division with remainder. The resulting array of quotients and remainder (last element of the returned array) satisfies dividend = quotient_1 * divider_1 + quotient_2 * divider_2 + ... + remainder .
        Parameters:
        dividend - the dividend
        dividers - the dividers
        Returns:
        array of quotients and remainder in the last position
      • remainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly remainder​(Poly dividend,
                                                                                                                                Poly... dividers)
        Performs multivariate division with remainder and returns the remainder.
        Parameters:
        dividend - the dividend
        dividers - the dividers
        Returns:
        the remainder
      • pseudoRemainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly pseudoRemainder​(Poly dividend,
                                                                                                                                      Poly... dividers)
        Performs multivariate pseudo division with remainder and returns the remainder.
        Parameters:
        dividend - the dividend
        dividers - the dividers
        Returns:
        the "pseudo" remainder
      • divideAndRemainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly[] divideAndRemainder​(Poly dividend,
                                                                                                                                           Poly divider)
        Performs multivariate division with remainder.
        Parameters:
        dividend - the dividend
        divider - the divider
        Returns:
        array of quotient and remainder
      • remainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly remainder​(Poly dividend,
                                                                                                                                Collection<Poly> dividers)
        Performs multivariate division with remainder and rerurns the remainder.
        Parameters:
        dividend - the dividend
        dividers - the dividers
        Returns:
        array of quotients and remainder at the last position
      • remainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly remainder​(Poly dividend,
                                                                                                                                Poly divider)
        Performs multivariate division with remainder and rerurns the remainder.
        Parameters:
        dividend - the dividend
        divider - the divider
        Returns:
        array of quotients and remainder at the last position
      • pseudoRemainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly pseudoRemainder​(Poly dividend,
                                                                                                                                      Collection<Poly> dividers)
        Performs multivariate division with remainder and rerurns the remainder.
        Parameters:
        dividend - the dividend
        dividers - the dividers
        Returns:
        array of quotients and remainder at the last position
      • pseudoRemainder

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly pseudoRemainder​(Poly dividend,
                                                                                                                                      Poly divider)
        Performs multivariate division with remainder and rerurns the remainder.
        Parameters:
        dividend - the dividend
        divider - the divider
        Returns:
        array of quotients and remainder at the last position
      • divideExact

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly divideExact​(Poly dividend,
                                                                                                                                  Poly divider)
        Divides dividend by divider or throws exception if exact division is not possible
        Parameters:
        dividend - the dividend
        divider - the divider
        Returns:
        dividend / divider
        Throws:
        ArithmeticException - if exact division is not possible
      • divideOrNull

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> Poly divideOrNull​(Poly dividend,
                                                                                                                                   Poly divider)
        Divides dividend by divider or returns null if exact division is not possible
        Parameters:
        dividend - the dividend
        divider - the divider
        Returns:
        dividend / divider or null if exact division is not possible
      • dividesQ

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> boolean dividesQ​(Poly dividend,
                                                                                                                                  Poly divider)
        Tests whether divisor is a divisor of poly
        Parameters:
        dividend - the polynomial
        divider - the divisor to check
        Returns:
        whether divisor is a divisor of poly
      • nontrivialQuotientQ

        public static <Term extends AMonomial<Term>,​Poly extends AMultivariatePolynomial<Term,​Poly>> boolean nontrivialQuotientQ​(Poly dividend,
                                                                                                                                             Poly divider)
        Tests whether there is nontrivial quotient dividend / divider
        Parameters:
        dividend - the dividend
        divider - the divider
        Returns:
        whether divisor is a divisor of poly