def __matrix_mul()

in python3/frodokem.py [0:0]


    def __matrix_mul(self, X, Y):
        """Compute matrix multiplication X * Y mod q"""
        nrows_X = len(X)
        ncols_X = len(X[0])
        nrows_Y = len(Y)
        ncols_Y = len(Y[0])
        assert ncols_X == nrows_Y, "Mismatched matrix dimensions"
        R = [[0 for j in range(ncols_Y)] for i in range(nrows_X)]
        for i in range(nrows_X):
            for j in range(ncols_Y):
                for k in range(ncols_X):
                    R[i][j] += X[i][k] * Y[k][j]
                R[i][j] %= self.q
        return R