def unpack()

in python3/frodokem.py [0:0]


    def unpack(self, b, n1, n2):
        """Unpack a bitstring (represented in Python as a bytes object) into a 
        matrix mod q (FrodoKEM specification, Algorithm 4)"""
        C = [[0 for j in range(n2)] for i in range(n1)]
        bbits = bitstring.Bits(b)
        # 1. for i = 0; i < n1; i += 1
        for i in range(n1):
            # 2. for j = 0; j < n2; j += 1
            for j in range(n2):
                # 3. Cij = sum_{l=0}^{D-1} b_{(i*n2+j)*D+l} * 2^{D-1-l}
                for l in range(self.D):
                    if bbits[(i * n2 + j) * self.D + l]: C[i][j] += 2 ** (self.D - 1 - l)
        return C