Source code for prodigy.analysis.evtinvariants.heuristics.positivity.heuristics_factory

from enum import Enum

from prodigy.analysis.evtinvariants.heuristics.positivity.individual_sum_terms import SumPositivity
from prodigy.analysis.evtinvariants.heuristics.positivity.iterate_terms import IterateTermsHeuristic
from prodigy.analysis.evtinvariants.heuristics.positivity.logical import OrHeuristic, AndHeuristic, NotHeuristic
from prodigy.analysis.evtinvariants.heuristics.positivity.polynomial_positivity import FinitePolynomialPositivity
from prodigy.analysis.evtinvariants.heuristics.positivity.positivity import PositivityHeuristic
from prodigy.analysis.evtinvariants.heuristics.positivity.rational_function import SingleRationalFunction, \
    RationalFunctionDenomSign


[docs] class PositivityHeuristics(Enum): INDIVIDUAL_SUM = SumPositivity ITERATE_TERMS = IterateTermsHeuristic OR = OrHeuristic AND = AndHeuristic NOT = NotHeuristic POLYNOMIAL = FinitePolynomialPositivity TRUE_RAT_FUNC = SingleRationalFunction MIXED_RAT_FUNC = RationalFunctionDenomSign DEFAULT = RationalFunctionDenomSign
[docs] @staticmethod def create(heuristic_type: 'PositivityHeuristics', *args, **kwargs) -> PositivityHeuristic: return heuristic_type.value(*args, **kwargs)