Package cc.redberry.rings.poly.multivar
Class MultivariateDivision
- java.lang.Object
-
- cc.redberry.rings.poly.multivar.MultivariateDivision
-
public final class MultivariateDivision extends Object
Division with remainder of multivariate polynomials (multivariate reduction).- Since:
- 1.0
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Poly[]divideAndRemainder(Poly dividend, Poly divider)Performs multivariate division with remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Poly[]divideAndRemainder(Poly dividend, Poly... dividers)Performs multivariate division with remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolydivideExact(Poly dividend, Poly divider)Dividesdividendbydivideror throws exception if exact division is not possiblestatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolydivideOrNull(Poly dividend, Poly divider)Dividesdividendbydivideror returns null if exact division is not possiblestatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
booleandividesQ(Poly dividend, Poly divider)Tests whetherdivisoris a divisor ofpolystatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
booleannontrivialQuotientQ(Poly dividend, Poly divider)Tests whether there is nontrivial quotientdividend / dividerstatic <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolypseudoRemainder(Poly dividend, Collection<Poly> dividers)Performs multivariate division with remainder and rerurns the remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolypseudoRemainder(Poly dividend, Poly divider)Performs multivariate division with remainder and rerurns the remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
PolypseudoRemainder(Poly dividend, Poly... dividers)Performs multivariate pseudo division with remainder and returns the remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Polyremainder(Poly dividend, Collection<Poly> dividers)Performs multivariate division with remainder and rerurns the remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Polyremainder(Poly dividend, Poly divider)Performs multivariate division with remainder and rerurns the remainder.static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>>
Polyremainder(Poly dividend, Poly... dividers)Performs multivariate division with remainder and returns the remainder.
-
-
-
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) satisfiesdividend = quotient_1 * divider_1 + quotient_2 * divider_2 + ... + remainder.- Parameters:
dividend- the dividenddividers- 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 dividenddividers- 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 dividenddividers- 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 dividenddivider- 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 dividenddividers- 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 dividenddivider- 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 dividenddividers- 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 dividenddivider- 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)
Dividesdividendbydivideror throws exception if exact division is not possible- Parameters:
dividend- the dividenddivider- 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)
Dividesdividendbydivideror returns null if exact division is not possible- Parameters:
dividend- the dividenddivider- the divider- Returns:
dividend / divideror 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 whetherdivisoris a divisor ofpoly- Parameters:
dividend- the polynomialdivider- the divisor to check- Returns:
- whether
divisoris a divisor ofpoly
-
nontrivialQuotientQ
public static <Term extends AMonomial<Term>,Poly extends AMultivariatePolynomial<Term,Poly>> boolean nontrivialQuotientQ(Poly dividend, Poly divider)
Tests whether there is nontrivial quotientdividend / divider- Parameters:
dividend- the dividenddivider- the divider- Returns:
- whether
divisoris a divisor ofpoly
-
-