Multivariate RMT and exact brackets#
The justified sunset series and reusable formal bracket compiler are separate layers. Read Multivariate Ramanujan series for the D=2 sunset for the derivation and strict domains.
Exact Schwinger/Method-of-Brackets algebra, without convergence claims.
This module produces candidate Gamma series. A nonsingular bracket basis is
an algebraic condition only: selecting and summing the correct families needs
an independent analytic justification, as in ramanujan_qft.sunset_rmt.
- class ramanujan_qft.brackets.BracketSystem(matrix: object, offsets: object, indices: tuple, coefficients: tuple, kinetic_columns: tuple, mass_columns: tuple, u_columns: tuple, u_exponents: tuple, gamma_denominator: object, normalization: object)[source]#
Bases:
objectExact system
matrix * indices + offsets = 0.Columns first describe the kinetic polynomial F-U*sum(m_i^2*x_i), then the mass exponentials, then the monomials of U. The last bracket row comes from the multinomial expansion of U**(-D/2-sum(kinetic indices)).
- class ramanujan_qft.brackets.BracketSolution(bound_columns: tuple, free_columns: tuple, determinant: object, values: tuple, term: object)[source]#
Bases:
objectOne exact bracket basis and its formal Gamma-function summand.
valuescontains every index, with bound indices solved in terms of the free ones.termincludes free factorial indicators, coefficient powers, Gamma factors from the bound indices, and the graph normalization. It is not automatically a convergent representation of the integral.
- ramanujan_qft.brackets.schwinger_brackets(graph, D=2, *, propagator_shifts=None, max_forests=100000)[source]#
Compile graph polynomials into a formal exact Schwinger bracket system.
D and propagator_shifts may be SymPy expressions; symbolic shifts are useful for exposing coalescing poles. They are formal regulators, not an epsilon expansion implementation. Numeric input conversion uses SymPy. Graph construction itself enforces positive masses and powers.
Convergent multivariate Gamma/Ramanujan series for the D=2 massive sunset.
Two analytically justified charts are implemented: p_E > m1+m2+m3 and M > m_a+m_b+p_E. Coalescing Gamma poles are resolved symbolically into harmonic numbers and logarithms. Evaluation uses no quadrature, QMC, numerical regulator, or analytic-continuation fallback. See docs/user_guide/sunset_rmt.md.
- class ramanujan_qft.sunset_rmt.SunsetRMTSeries(graph: object, bracket_system: object, families: tuple, gamma_terms: tuple, summation_indices: tuple, regulator: object, chart: str, scale: object, ratios: tuple, mass_order: tuple, rho_upper: object, domain_digits: int, coefficient_expression: object)[source]#
Bases:
objectGraph-compiled sunset chart, exact bracket families, and finite pole limit.
bracket_system and families expose the formal regulated Gamma expressions. gamma_terms uses common summation_indices and the symbolic regulator eta. coefficient_expression is their finite, coalesced D=2 limit. The numerical evaluator uses that limit directly, avoiding subtraction of divergent poles.
- coefficient(indices, *, dps=30)[source]#
One finite summand, including the overall normalization 4/scale.
- evaluate(*, dps=30, max_shells=128, max_terms=250000, max_dps=None)[source]#
Sum complete total-degree shells with an analytic tail bound.
Working precision is raised against cancellation. Acceptance requires agreement at two working precisions and an error estimate below 10^-dps relative to the result. All budgets are per summation/precision pass. The result is rounded to dps decimal digits; no quadrature is used.
- class ramanujan_qft.sunset_rmt.RMTSeriesResult(value: object, error_estimate: object, truncation_bound: object, terms: int, shells: int, working_dps: int, chart: str, convergence_ratio: object, converged: bool = True, method: str = 'multivariate RMT / coalesced Gamma series')[source]#
Bases:
objectAn arbitrary-precision series value and convergence diagnostics.
truncation_bound bounds the mathematical series tail (evaluated at working precision). error_estimate also includes estimated arithmetic error, agreement between two precisions, and final rounding. It is not an interval arithmetic certificate. terms/shells refer to the final summation, not the cumulative cost of precision checks.
- exception ramanujan_qft.sunset_rmt.RMTDomainError[source]#
Bases:
ValueErrorNo implemented series chart has a certified convergence domain here.
- exception ramanujan_qft.sunset_rmt.RMTSeriesConvergenceError(message, result=None)[source]#
Bases:
ArithmeticErrorA valid chart exceeded its work/precision budget; result may be partial.
- ramanujan_qft.sunset_rmt.compile_sunset_rmt(graph, D=2, *, chart='auto')[source]#
Compile a unit-power, massive D=2 sunset into a justified Gamma series.
chart='momentum'requires p_E > m1+m2+m3.chart='mass'requires the largest mass M > the other two masses + p_E.autoselects a valid chart. Boundaries and the intervening domain are explicitly refused. In particular, the equal-mass vacuum point is outside these charts.
- ramanujan_qft.sunset_rmt.integrate_graph_rmt(graph, D=2, *, chart='auto', dps=30, max_shells=128, max_terms=250000, max_dps=None)[source]#
Compile and evaluate the supported sunset RMT chart; no numerical fallback.
Returns
RMTSeriesResult. For inspection or repeated precision requests, usecompile_sunset_rmt()and its evaluate method instead.