Esempio n. 1
0
def diag_product(s1, s2):
    """ Does product, but iterates over the diagonal first """
    s1 = list(s1)
    s2 = list(s2)
    if len(s1) > len(s2):
        for _ in range(len(s1)):
            for a, b in zip(s1, s2):
                yield (a, b)
            s1 = ut.list_roll(s1, 1)
    else:
        for _ in range(len(s2)):
            for a, b in zip(s1, s2):
                yield (a, b)
            s2 = ut.list_roll(s2, 1)
Esempio n. 2
0
 def get_row(rowx):
     row_offset = self.col_offset_list[rowx]
     row_nonrotate_part = self.get_non_rotating_columns(rowx)
     row_rotate_part_ = self.get_rotating_columns(rowx)
     row_rotate_part = ut.list_roll(row_rotate_part_, -row_offset)
     row = row_nonrotate_part + row_rotate_part
     return row
Esempio n. 3
0
 def get_row(rowx):
     row_offset = self.col_offset_list[rowx]
     row_nonrotate_part = self.get_non_rotating_columns(rowx)
     row_rotate_part_ = self.get_rotating_columns(rowx)
     row_rotate_part = ut.list_roll(row_rotate_part_, -row_offset)
     row = row_nonrotate_part + row_rotate_part
     return row