VakintEvaluationMethod

Symbolica documentation for getting started, symbolic expressions, numerical evaluation, pattern matching, and APIs in Python and Rust.

VakintEvaluationMethod

class VakintEvaluationMethod

One configured backend in a Vakint instance’s evaluation order.

Methods

Name Description
__str__ String representation of the evaluation method.
new_alphaloop_method Create a new VakintEvaluationMethod instance representing the AlphaLoop method
new_fmft_method Create a new VakintEvaluationMethod instance representing the FMFT method.
new_matad_method Create a new VakintEvaluationMethod instance representing the MATAD method.
new_pysecdec_method Create a new VakintEvaluationMethod instance representing the numerical pySecDec method.

__str__

VakintEvaluationMethod.__str__() -> builtins.str

String representation of the evaluation method.

new_alphaloop_method

VakintEvaluationMethod.new_alphaloop_method() -> VakintEvaluationMethod

Create a new VakintEvaluationMethod instance representing the AlphaLoop method. This method does not take any parameters.

Examples

>>> from symbolica.community.hepkit.vakint import VakintEvaluationMethod
>>> alphaloop_method = VakintEvaluationMethod.new_alphaloop_method()
>>> "AlphaLoop" in str(alphaloop_method)
True

new_fmft_method

VakintEvaluationMethod.new_fmft_method(
    expand_masters: typing.Optional[builtins.bool] = None,
    susbstitute_masters: typing.Optional[builtins.bool] = None,
) -> VakintEvaluationMethod

Create a new VakintEvaluationMethod instance representing the FMFT method.

Examples

>>> from symbolica.community.hepkit.vakint import VakintEvaluationMethod
>>> fmft_method = VakintEvaluationMethod.new_fmft_method(
...     expand_masters=True,
...     susbstitute_masters=True,
... )
>>> "FMFT" in str(fmft_method)
True

Parameters

  • expand_masters (Optional[bool]) Whether to expand master integrals. Default is True.
  • susbstitute_masters (Optional[bool]) Whether to substitute master integrals. Default is True.

Notes

susbstitute_masters retains its historical misspelling for API compatibility; it means substitute_masters.

new_matad_method

VakintEvaluationMethod.new_matad_method(
    expand_masters: typing.Optional[builtins.bool] = None,
    susbstitute_masters: typing.Optional[builtins.bool] = None,
    substitute_hpls: typing.Optional[builtins.bool] = None,
    direct_numerical_substition: typing.Optional[builtins.bool] = None,
) -> VakintEvaluationMethod

Create a new VakintEvaluationMethod instance representing the MATAD method.

Examples

>>> from symbolica.community.hepkit.vakint import VakintEvaluationMethod
>>> matad_method = VakintEvaluationMethod.new_matad_method(
...     expand_masters=True,
...     susbstitute_masters=True,
...     substitute_hpls=True,
...     direct_numerical_substition=True,
... )
>>> "MATAD" in str(matad_method)
True

Parameters

  • expand_masters (Optional[bool]) Whether to expand master integrals. Default is True.
  • susbstitute_masters (Optional[bool]) Whether to substitute master integrals. Default is True.
  • substitute_hpls (Optional[bool]) Whether to substitute harmonic polylogarithms. Default is True.
  • direct_numerical_substition (Optional[bool]) Whether to perform direct numerical substitution. Default is True.

Notes

susbstitute_masters and direct_numerical_substition retain their historical misspellings for API compatibility. They mean substitute_masters and direct_numerical_substitution, respectively.

new_pysecdec_method

VakintEvaluationMethod.new_pysecdec_method(
    quiet: typing.Optional[builtins.bool] = None,
    relative_precision: typing.Optional[builtins.float] = None,
    min_n_evals: typing.Optional[builtins.int] = None,
    max_n_evals: typing.Optional[builtins.int] = None,
    reuse_existing_output: typing.Optional[builtins.str] = None,
    numerical_parameters: typing.Optional[typing.Mapping[builtins.str, tuple[builtins.float, builtins.float]]] = None,
    numerical_external_momenta: typing.Optional[typing.Mapping[builtins.int, tuple[builtins.float, builtins.float, builtins.float, builtins.float]]] = None,
) -> VakintEvaluationMethod

Create a new VakintEvaluationMethod instance representing the numerical pySecDec method.

Examples

>>> from symbolica.community.hepkit.vakint import VakintEvaluationMethod
>>> pysecdec_method = VakintEvaluationMethod.new_pysecdec_method(
...     quiet=True,
...     relative_precision=1e-7,
...     min_n_evals=10_000,
...     max_n_evals=1_000_000_000_000,
...     reuse_existing_output=None,
...     numerical_parameters={"muvsq": (1.0, 0.0), "coupling": (1.0, 2.0)},
...     numerical_external_momenta={
...         1: (1.0, 0.0, 0.0, 0.0),
...         2: (0.0, 1.0, 0.0, 0.0),
...     },
... )
>>> "PySecDec" in str(pysecdec_method)
True

pySecDec performs numerical evaluation, so every required mass, numerator parameter and external momentum must have a numerical value. Constructing this method does not run pySecDec; evaluation requires a working Python/pySecDec installation.

Parameters

  • quiet (Optional[bool]) Whether to suppress output from pySecDec. Default is True.
  • relative_precision (Optional[float]) The relative precision to be achieved in the numerical integration. Default is 1e-7.
  • min_n_evals (Optional[int]) The minimum number of evaluations to be performed in the numerical integration. Default is 10,000.
  • max_n_evals (Optional[int]) The maximum number of evaluations to be performed in the numerical integration. Default is 1,000,000,000,000.
  • reuse_existing_output (Optional[str]) Path to existing pySecDec output to reuse. Default is None.
  • numerical_parameters (Optional[Dict[str, Tuple[float, float]]]) Mass and numerator parameter values as (real, imaginary) pairs. Pole masses must be real. Default is an empty dictionary.
  • numerical_external_momenta (Optional[Dict[int, Tuple[float, float, float, float]]]) A dictionary mapping external momentum indices to their numerical 4-vector values. Default is an empty dictionary.