Class GF2Vector
- java.lang.Object
-
- org.bouncycastle.pqc.math.linearalgebra.Vector
-
- org.bouncycastle.pqc.math.linearalgebra.GF2Vector
-
-
Constructor Summary
Constructors Modifier Constructor Description GF2Vector(int length)
Construct the zero vector of the given length.protected
GF2Vector(int[] v, int length)
Construct a newGF2Vector
of the given length and with the given element array.GF2Vector(int length, int[] v)
Construct a GF2Vector of the given length and with elements from the given array.GF2Vector(int length, int t, java.security.SecureRandom sr)
Construct a random GF2Vector of the given length with the specified number of non-zero coefficients.GF2Vector(int length, java.security.SecureRandom sr)
Construct a random GF2Vector of the given length.GF2Vector(GF2Vector other)
Copy constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Vector
add(Vector other)
Adds another GF2Vector to this vector.boolean
equals(java.lang.Object other)
Check if the given object is equal to this vector.GF2Vector
extractLeftVector(int k)
Return a new vector consisting of the first k elements of this vector.GF2Vector
extractRightVector(int k)
Return a new vector consisting of the last k elements of this vector.GF2Vector
extractVector(int[] setJ)
Return a new vector consisting of the elements of this vector with the indices given by the set setJ.int
getBit(int index)
Return the value of the bit of this vector at the specified index.byte[]
getEncoded()
Encode this vector as byte array.int
getHammingWeight()
Return the Hamming weight of this vector, i.e., compute the number of units of this vector.int[]
getVecArray()
int
hashCode()
boolean
isZero()
Return whether this is the zero vector (i.e., all elements are zero).Vector
multiply(Permutation p)
Multiply this vector with a permutation.static GF2Vector
OS2VP(int length, byte[] encVec)
Construct a new GF2Vector with the given length out of the encoded vector.void
setBit(int index)
Set the coefficient at the given index to 1.GF2mVector
toExtensionFieldVector(GF2mField field)
Rewrite this vector as a vector over GF(2m) with t elements.java.lang.String
toString()
-
-
-
Constructor Detail
-
GF2Vector
public GF2Vector(int length)
Construct the zero vector of the given length.- Parameters:
length
- the length of the vector
-
GF2Vector
public GF2Vector(int length, java.security.SecureRandom sr)
Construct a random GF2Vector of the given length.- Parameters:
length
- the length of the vectorsr
- the source of randomness
-
GF2Vector
public GF2Vector(int length, int t, java.security.SecureRandom sr)
Construct a random GF2Vector of the given length with the specified number of non-zero coefficients.- Parameters:
length
- the length of the vectort
- the number of non-zero coefficientssr
- the source of randomness
-
GF2Vector
public GF2Vector(int length, int[] v)
Construct a GF2Vector of the given length and with elements from the given array. The array is copied and unused bits are masked out.- Parameters:
length
- the length of the vectorv
- the element array
-
GF2Vector
public GF2Vector(GF2Vector other)
Copy constructor.- Parameters:
other
- anotherGF2Vector
-
GF2Vector
protected GF2Vector(int[] v, int length)
Construct a newGF2Vector
of the given length and with the given element array. The array is not changed and only a reference to the array is stored. No length checking is performed either.- Parameters:
v
- the element arraylength
- the length of the vector
-
-
Method Detail
-
OS2VP
public static GF2Vector OS2VP(int length, byte[] encVec)
Construct a new GF2Vector with the given length out of the encoded vector.- Parameters:
length
- the length of the vectorencVec
- the encoded vector- Returns:
- the decoded vector
-
getEncoded
public byte[] getEncoded()
Encode this vector as byte array.- Specified by:
getEncoded
in classVector
- Returns:
- the encoded vector
-
getVecArray
public int[] getVecArray()
- Returns:
- the int array representation of this vector
-
getHammingWeight
public int getHammingWeight()
Return the Hamming weight of this vector, i.e., compute the number of units of this vector.- Returns:
- the Hamming weight of this vector
-
isZero
public boolean isZero()
Description copied from class:Vector
Return whether this is the zero vector (i.e., all elements are zero).
-
getBit
public int getBit(int index)
Return the value of the bit of this vector at the specified index.- Parameters:
index
- the index- Returns:
- the value of the bit (0 or 1)
-
setBit
public void setBit(int index)
Set the coefficient at the given index to 1. If the index is out of bounds, do nothing.- Parameters:
index
- the index of the coefficient to set
-
multiply
public Vector multiply(Permutation p)
Multiply this vector with a permutation.
-
extractVector
public GF2Vector extractVector(int[] setJ)
Return a new vector consisting of the elements of this vector with the indices given by the set setJ.- Parameters:
setJ
- the set of indices of elements to extract- Returns:
- the new
GF2Vector
[this_setJ[0], this_setJ[1], ..., this_setJ[#setJ-1]]
-
extractLeftVector
public GF2Vector extractLeftVector(int k)
Return a new vector consisting of the first k elements of this vector.- Parameters:
k
- the number of elements to extract- Returns:
- a new
GF2Vector
consisting of the first k elements of this vector
-
extractRightVector
public GF2Vector extractRightVector(int k)
Return a new vector consisting of the last k elements of this vector.- Parameters:
k
- the number of elements to extract- Returns:
- a new
GF2Vector
consisting of the last k elements of this vector
-
toExtensionFieldVector
public GF2mVector toExtensionFieldVector(GF2mField field)
Rewrite this vector as a vector over GF(2m) with t elements.- Parameters:
field
- the finite field GF(2m)- Returns:
- the converted vector over GF(2m)
-
equals
public boolean equals(java.lang.Object other)
Check if the given object is equal to this vector.
-
hashCode
public int hashCode()
-
-