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