jijzepttools.modeling.algorithm.series_decomposition.utils#
Classes#
DisjointForallHolder is a class to hold disjoint forall expression. |
Module Contents#
- class DisjointForallHolder(disjoint_forall: List[List[Tuple[jijmodeling.Element, jijzepttools.modeling.utils.type.ConditionalExpr]]])#
DisjointForallHolder is a class to hold disjoint forall expression.
- disjoint_forall#
disjoint forall expression
- Type:
tp.List[tp.List[tp.Tuple[jm.Element, ConditionalExpr]]]
- forall_indices#
forall indices
- Type:
tp.List[jm.Element]
- unique_forall_cache#
cache for unique forall
- Type:
tp.Dict[tp.Tuple[int, …], tp.Tuple[tp.List[tp.List[tp.Tuple[jm.Element, ConditionalExpr]]], tp.List[int]]]
Examples
>>> import jijmodeling as jm >>> from jijzepttools.modeling.algorithm.series_decomposition.utils import DisjointForallHolder >>> i = jm.Element("i", belong_to=(0, 100)) >>> j = jm.Element("j", belong_to=(0, 100)) >>> igroup = jm.Placeholder("igroup", ndim=1) >>> jgroup = jm.Placeholder("jgroup", ndim=1) >>> disjoint_forall = [ ... [(i, igroup[i] == 0), (j, jgroup[j] == 0)], ... [(i, igroup[i] == 1), (j, jgroup[j] == 0)], ... [(i, igroup[i] == 2), (j, jgroup[j] == 0)], ... [(i, igroup[i] == 0), (j, jgroup[j] == 1)], ... [(i, igroup[i] == 1), (j, jgroup[j] == 1)], ... [(i, igroup[i] == 2), (j, jgroup[j] == 1)], ... ] >>> disjoint_forall_holder = DisjointForallHolder(disjoint_forall) >>> disjoint_forall_holder.forall_indices [Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] >>> disjoint_forall_holder.get_unique_forall([0]) ([[(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=2))]], [0, 1, 2]) >>> disjoint_forall_holder.get_unique_forall([1]) ([[(Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0))], [(Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1))]], [0, 3]) >>> disjoint_forall_holder.get_unique_forall([0, 1]) ([[(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0)), (Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1)), (Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=2)), (Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=0)), (Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1)), (Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1))], [(Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='igroup', ndim=1)[Element(name='i', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=2)), (Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100))), Placeholder(name='jgroup', ndim=1)[Element(name='j', belong_to=(NumberLit(value=0), NumberLit(value=100)))] == NumberLit(value=1))]], [0, 1, 2, 3, 4, 5])
- disjoint_forall#
- forall_indices#
- unique_forall_cache: Dict[Tuple[int, Ellipsis], Tuple[List[List[Tuple[jijmodeling.Element, jijzepttools.modeling.utils.type.ConditionalExpr]]], List[int]]]#
- get_unique_forall(index_loc: List[int]) Tuple[List[List[Tuple[jijmodeling.Element, jijzepttools.modeling.utils.type.ConditionalExpr]]], List[int]] #