summaryrefslogtreecommitdiffstats
path: root/polymatrix/denserepr/utils/monomialtoindex.py
blob: a40f2eea0d1ff21a8e04de8e8ed10e231fdc8c2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
import itertools


def variable_indices_to_column_index(
    n_var: int,
    variable_indices: tuple[int, ...],
) -> int:
    variable_indices_perm = itertools.permutations(variable_indices)

    return set(
        sum(idx * (n_var**level) for level, idx in enumerate(monomial))
        for monomial in variable_indices_perm
    )