Source code for eko.runner.recipes

"""Recipes containing instructions for atomic computations."""

from typing import List

from ..io.items import Evolution, Matching, Recipe
from ..io.types import EvolutionPoint as EPoint
from ..matchings import Atlas, Segment


[docs] def elements(ep: EPoint, atlas: Atlas) -> List[Recipe]: """Determine recipes to compute a given operator.""" recipes = [] # expanded = eko.operator_card.configs.scvar_method is sv.Modes.expanded # mu2f = mu2 * eko.theory_card.xif**2 if expanded else mu2 blocks = atlas.matched_path(ep) for block in blocks: if isinstance(block, Segment): cliff = block.target in atlas.walls recipe = Evolution.from_atlas(block, cliff=cliff) else: recipe = Matching.from_atlas(block) recipes.append(recipe) return recipes
[docs] def create(evolgrid: List[EPoint], atlas: Atlas) -> List[Recipe]: """Create all associated recipes.""" recipes = [] for ep in evolgrid: recipes.extend(elements(ep, atlas)) return list(set(recipes))