Class DenseTernaryPolynomial
java.lang.Object
org.bouncycastle.pqc.legacy.math.ntru.polynomial.IntegerPolynomial
org.bouncycastle.pqc.legacy.math.ntru.polynomial.DenseTernaryPolynomial
- All Implemented Interfaces:
Polynomial
,TernaryPolynomial
A
TernaryPolynomial
with a "high" number of nonzero coefficients.-
Field Summary
Fields inherited from class org.bouncycastle.pqc.legacy.math.ntru.polynomial.IntegerPolynomial
coeffs
-
Constructor Summary
ConstructorDescriptionDenseTernaryPolynomial
(int[] coeffs) Constructs a newDenseTernaryPolynomial
with a given set of coefficients.DenseTernaryPolynomial
(IntegerPolynomial intPoly) Constructs aDenseTernaryPolynomial
from aIntegerPolynomial
. -
Method Summary
Modifier and TypeMethodDescriptionstatic DenseTernaryPolynomial
generateRandom
(int N, int numOnes, int numNegOnes, SecureRandom random) Generates a random polynomial withnumOnes
coefficients equal to 1,numNegOnes
coefficients equal to -1, and the rest equal to 0.static DenseTernaryPolynomial
generateRandom
(int N, SecureRandom random) Generates a polynomial with coefficients randomly selected from{-1, 0, 1}
.int[]
int[]
getOnes()
mult
(IntegerPolynomial poly2, int modulus) Multiplies the polynomial with another, taking the values mod modulus and the indices mod Nint
size()
Returns the maximum number of coefficients the polynomial can haveMethods inherited from class org.bouncycastle.pqc.legacy.math.ntru.polynomial.IntegerPolynomial
add, add, center0, centeredNormSq, clear, clone, count, div, ensurePositive, equals, equalsOne, fromBinary, fromBinary, fromBinary3Sves, fromBinary3Tight, fromBinary3Tight, invertF3, invertFq, mod, mod3, modPositive, mult, mult, mult, mult3, resultant, resultant, resultantMultiThread, rotate1, sub, sub, sumCoeffs, toBinary, toBinary3Sves, toBinary3Tight, toIntegerPolynomial
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.bouncycastle.pqc.legacy.math.ntru.polynomial.Polynomial
mult, toIntegerPolynomial
Methods inherited from interface org.bouncycastle.pqc.legacy.math.ntru.polynomial.TernaryPolynomial
clear, mult
-
Constructor Details
-
DenseTernaryPolynomial
Constructs aDenseTernaryPolynomial
from aIntegerPolynomial
. The two polynomials are independent of each other.- Parameters:
intPoly
- the original polynomial
-
DenseTernaryPolynomial
public DenseTernaryPolynomial(int[] coeffs) Constructs a newDenseTernaryPolynomial
with a given set of coefficients.- Parameters:
coeffs
- the coefficients
-
-
Method Details
-
generateRandom
public static DenseTernaryPolynomial generateRandom(int N, int numOnes, int numNegOnes, SecureRandom random) Generates a random polynomial withnumOnes
coefficients equal to 1,numNegOnes
coefficients equal to -1, and the rest equal to 0.- Parameters:
N
- number of coefficientsnumOnes
- number of 1'snumNegOnes
- number of -1's
-
generateRandom
Generates a polynomial with coefficients randomly selected from{-1, 0, 1}
.- Parameters:
N
- number of coefficients
-
mult
Description copied from class:IntegerPolynomial
Multiplies the polynomial with another, taking the values mod modulus and the indices mod N- Specified by:
mult
in interfacePolynomial
- Overrides:
mult
in classIntegerPolynomial
- Parameters:
poly2
- a polynomialmodulus
- a modulus to apply- Returns:
- the product of the two polynomials
-
getOnes
public int[] getOnes()- Specified by:
getOnes
in interfaceTernaryPolynomial
-
getNegOnes
public int[] getNegOnes()- Specified by:
getNegOnes
in interfaceTernaryPolynomial
-
size
public int size()Description copied from interface:TernaryPolynomial
Returns the maximum number of coefficients the polynomial can have- Specified by:
size
in interfaceTernaryPolynomial
-