diff --git a/src/eko/evolution_operator/__init__.py.patch b/src/eko/evolution_operator/__init__.py.patch index e956f5ca9..75fa0bf82 100644 --- a/src/eko/evolution_operator/__init__.py.patch +++ b/src/eko/evolution_operator/__init__.py.patch @@ -1,5 +1,5 @@ diff --git a/src/eko/evolution_operator/__init__.py b/src/eko/evolution_operator/__init__.py -index fe07ade9..0f58c9e5 100644 +index bd1b19d6..f543f7bc 100644 --- a/src/eko/evolution_operator/__init__.py +++ b/src/eko/evolution_operator/__init__.py @@ -3,16 +3,16 @@ r"""Contains the central operator classes. @@ -21,10 +21,10 @@ index fe07ade9..0f58c9e5 100644 import ekore.anomalous_dimensions.polarized.space_like as ad_ps import ekore.anomalous_dimensions.unpolarized.space_like as ad_us -@@ -30,92 +30,10 @@ from ..kernels import singlet_qed as qed_s - from ..kernels import valence_qed as qed_v - from ..matchings import Segment, lepton_number +@@ -32,91 +32,10 @@ from ..matchings import Segment, lepton_number from ..member import OpMember + from ..scale_variations import expanded as sv_expanded + from ..scale_variations import exponentiated as sv_exponentiated +from .quad_ker import cb_quad_ker_qcd logger = logging.getLogger(__name__) @@ -48,9 +48,9 @@ index fe07ade9..0f58c9e5 100644 - complex - singlet integration kernel element - """ -- k = 0 if mode0 == 100 else 1 -- l = 0 if mode1 == 100 else 1 -- return ker[k, l] +- j = 0 if mode0 == 100 else 1 +- k = 0 if mode1 == 100 else 1 +- return ker[j, k] - - -@nb.njit(cache=True) @@ -91,8 +91,7 @@ index fe07ade9..0f58c9e5 100644 - -@nb.njit(cache=True) -def select_QEDvalence_element(ker, mode0, mode1): -- """ -- Select element of the QEDvalence matrix. +- """Select element of the QEDvalence matrix. - - Parameters - ---------- @@ -115,7 +114,7 @@ index fe07ade9..0f58c9e5 100644 spec = [ ("is_singlet", nb.boolean), ("is_QEDsinglet", nb.boolean), -@@ -187,421 +105,6 @@ class QuadKerBase: +@@ -188,421 +107,6 @@ class QuadKerBase: return self.path.prefactor * pj * self.path.jac @@ -537,7 +536,7 @@ index fe07ade9..0f58c9e5 100644 OpMembers = Dict[OperatorLabel, OpMember] """Map of all operators.""" -@@ -792,50 +295,6 @@ class Operator(sv.ScaleVariationModeMixin): +@@ -792,49 +296,6 @@ class Operator(sv.ScaleVariationModeMixin): """Return the evolution method.""" return ev_method(EvolutionMethod(self.config["method"])) @@ -557,7 +556,6 @@ index fe07ade9..0f58c9e5 100644 - ------- - functools.partial - partially initialized integration kernel -- - """ - return functools.partial( - quad_ker, @@ -588,7 +586,7 @@ index fe07ade9..0f58c9e5 100644 def initialize_op_members(self): """Init all operators with the identity or zeros.""" eye = OpMember( -@@ -858,10 +317,7 @@ class Operator(sv.ScaleVariationModeMixin): +@@ -857,10 +318,7 @@ class Operator(sv.ScaleVariationModeMixin): else: self.op_members[n] = zero.copy() @@ -600,7 +598,7 @@ index fe07ade9..0f58c9e5 100644 """Run the integration for each grid point. Parameters -@@ -876,18 +332,56 @@ class Operator(sv.ScaleVariationModeMixin): +@@ -875,18 +333,56 @@ class Operator(sv.ScaleVariationModeMixin): """ column = [] k, logx = log_grid @@ -626,8 +624,8 @@ index fe07ade9..0f58c9e5 100644 + cfg.is_threshold = self.is_threshold + # iterate basis functions - for l, bf in enumerate(self.int_disp): - if k == l and l == self.grid_size - 1: + for j, bf in enumerate(self.int_disp): + if k == j and j == self.grid_size - 1: continue + # add emtpy labels with 0s + if bf.is_below_x(np.exp(logx)):