You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.