Skip to content

feynlag 0.2.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 21:22
· 9 commits to main since this release
c13c28c

Added

  • diagonalize_takagi(method="auto"|"symbolic"|"numeric", dps=50): for a
    numeric matrix larger than 2×2, auto factorises with mpmath's eigsy at
    high precision (columns by increasing mass, round-off eigenvalues as exact
    zero modes), so a generic 3+2 seesaw 5×5 finishes instead of stalling in the
    exact route. Exact 2×2 and symbolic calls are unchanged.
  • Per-symbol LaTeX: component_tex=[...] on Scalar, WeylFermion/
    MajoranaFermion, GaugeBoson and GaugeGroup.bosons(), tex= on
    conjugate_pair, and a parameter's existing tex= now reach plain
    sympy.latex through the symbol itself (TexSymbol), so downstream code
    needs no name→LaTeX map. A one-component field's tex= also names its
    component, and fermion bar legs print as \overline{…}.
  • Opt-in LaTeX names in the SM builders and Scalar.expand_vev: each takes
    tex=, a map from the name of a symbol it creates to a LaTeX name
    (electroweak_gauge, higgs_doublet, electroweak_scaffold,
    weinberg_rotation, charged_current_rotation, to_physical_basis,
    standard_ckm), so one global table covers the couplings, the Higgs
    parameters, the doublet and its fluctuations (H0_r→h), and the physical
    Z, A, W±, G⁻. Names missing from the map stay plain. An explicit
    symbol_names printer setting still overrides a symbol's own tex.
    GaugeGroup.bosons() raises if a later call asks for a different tex than
    the cached bosons carry.
  • A TexSymbol sorts exactly like a plain Symbol of the same name, so
    adding a tex never reorders vertex legs or printed terms.

Fixed

  • The UFO writer now escapes texname/antitexname. It wrote them as bare
    '...' literals, so a tex containing a quote (g') made parameters.py
    a SyntaxError, and a backslash was read as a Python escape (\tau →
    TAB + au).

Changed

  • A field component or parameter declared with a tex is a TexSymbol, which
    is not equal to a plain Symbol of the same name. Code that rebuilds such a
    symbol by name (sp.Symbol("lam")) must use the object instead. Without a
    tex nothing changes.