• All Implemented Interfaces:
`HenselLifting.LiftableQuintet<UnivariatePolynomial<BigInteger>>`
Enclosing class:
HenselLifting

```public static final class HenselLifting.bQuadraticLift
extends Object```
Quadratic Hensel lift for BigIntegers arithmetics. On each `HenselLifting.LiftableQuintet.lift()` operation modulus is raised as ``` modulus = modulus * modulus```.
• ### Field Summary

Fields
Modifier and Type Field Description
`protected PolyZp` `aCoFactor`
xgcd coefficients
`protected PolyZp` `aFactor`
Two factors of the initial Z[x] poly
`UnivariatePolynomial<BigInteger>` `base`
Initial Z[x] poly
`protected PolyZp` `bCoFactor`
xgcd coefficients
`protected PolyZp` `bFactor`
Two factors of the initial Z[x] poly
`IntegersZp` `ring`
The modulus
• ### Constructor Summary

Constructors
Constructor Description
```bQuadraticLift​(BigInteger modulus, UnivariatePolynomial<BigInteger> base, UnivariatePolynomial<BigInteger> aFactor, UnivariatePolynomial<BigInteger> bFactor, UnivariatePolynomial<BigInteger> aCoFactor, UnivariatePolynomial<BigInteger> bCoFactor)```
• ### Method Summary

Modifier and Type Method Description
`PolyZp` `aCoFactorMod()`
Returns first co-factor lifted
`PolyZp` `aFactorMod()`
Returns first factor lifted
`PolyZp` `bCoFactorMod()`
Returns second co-factor lifted
`PolyZp` `bFactorMod()`
Returns second factor lifted
`void` `lift()`
Performs single lift step.
`void` `liftLast()`
Performs single lift step but don't lift co-factors (xgcd coefficients).
`UnivariatePolynomial<BigInteger>` `polyMod()`
Returns initial Z[x] polynomial modulo lifted modulus
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Methods inherited from interface cc.redberry.rings.poly.univar.HenselLifting.LiftableQuintet

`lift, liftWithCoFactors`
• ### Field Detail

• #### ring

`public IntegersZp ring`
The modulus
• #### base

`public final UnivariatePolynomial<BigInteger> base`
Initial Z[x] poly
• #### aFactor

`protected PolyZp extends IUnivariatePolynomial<PolyZp> aFactor`
Two factors of the initial Z[x] poly
• #### bFactor

`protected PolyZp extends IUnivariatePolynomial<PolyZp> bFactor`
Two factors of the initial Z[x] poly
• #### aCoFactor

`protected PolyZp extends IUnivariatePolynomial<PolyZp> aCoFactor`
xgcd coefficients
• #### bCoFactor

`protected PolyZp extends IUnivariatePolynomial<PolyZp> bCoFactor`
xgcd coefficients
• ### Constructor Detail

```public bQuadraticLift​(BigInteger modulus,
UnivariatePolynomial<BigInteger> base,
UnivariatePolynomial<BigInteger> aFactor,
UnivariatePolynomial<BigInteger> bFactor,
UnivariatePolynomial<BigInteger> aCoFactor,
UnivariatePolynomial<BigInteger> bCoFactor)```
• ### Method Detail

• #### polyMod

`public UnivariatePolynomial<BigInteger> polyMod()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Returns initial Z[x] polynomial modulo lifted modulus
Returns:
initial Z[x] polynomial modulo lifted modulus
• #### aFactorMod

`public PolyZp aFactorMod()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Returns first factor lifted
Specified by:
`aFactorMod` in interface `HenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>`
Returns:
first factor lifted
• #### bFactorMod

`public PolyZp bFactorMod()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Returns second factor lifted
Specified by:
`bFactorMod` in interface `HenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>`
Returns:
second factor lifted
• #### aCoFactorMod

`public PolyZp aCoFactorMod()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Returns first co-factor lifted
Specified by:
`aCoFactorMod` in interface `HenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>`
Returns:
first co-factor lifted
• #### bCoFactorMod

`public PolyZp bCoFactorMod()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Returns second co-factor lifted
Specified by:
`bCoFactorMod` in interface `HenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>`
Returns:
second co-factor lifted
• #### lift

`public final void lift()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Performs single lift step.
Specified by:
`lift` in interface `HenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>`
• #### liftLast

`public final void liftLast()`
Description copied from interface: `HenselLifting.LiftableQuintet`
Performs single lift step but don't lift co-factors (xgcd coefficients).
Specified by:
`liftLast` in interface `HenselLifting.LiftableQuintet<PolyZp extends IUnivariatePolynomial<PolyZp>>`