Skip to content

Releases: secdec-research/secdec

pySecDec 1.6.6

23 Oct 16:37

Choose a tag to compare

Fixed

  • fixed a bug in the contour deformations encountered in some integrals with numerator
  • make -jN build now works in parallel

pySecDec 1.6.5

08 Jul 12:43

Choose a tag to compare

Added

  • loop_integral.leading_order() which returns the leading degree of divergence of a loop integral.
  • Non-trivial remainder_expression support when choosing the decomposition method geometric_infinity_no_primary.
  • disteval supports complex parameters passed with native python syntax.
  • disteval parses coefficient files with all available cpu cores even when gpu workers are used for integration.

Changed

  • Speedup squash_symmetry_redundant_sectors_dreadnaut (e.g. box_2L_numerator 22s -> 3.7s)
  • Updated exparse to 0.1.1, Nauty to 2.8.9, normaliz to 3.10.4, GiNaC to 1.8.9, CLN to 1.3.7, zlib to 1.3.1, GSL to 2.8, and GMP to 6.3.0.
  • Updated Cuba to 4.2.2p1 (4.2.2 with a custom patch to fix a segfault in cuhre)

Fixed

  • Internal power functions are now available on GPU.
  • The sqrt function output by sympy is now correctly handled in FORM scripts.
  • split=True now functions correctly when choosing decomposition method geometric_infinity_no_primary.
  • Memory leaks in coefficient_parser.
  • numpy deprecations.

pySecDec 1.6.4

16 Jul 16:41

Choose a tag to compare

Added

  • disteval.clear_eval() and integral_interface.DistevalLibrary.close() to clean up disteval resources.
  • make source-mma to output integrals in Mathematica-compatible format (experimental).

Changed

  • Minor code style changes.

Fixed

  • SecDecInternalNPow() would previously not compile on the CPU.
  • Premature end of disteval integration in rare cases with few integrals.
  • Typos and spelling.

pySecDec 1.6.3

10 Apr 22:57

Choose a tag to compare

Added

  • The command line integration interface of disteval now supports variable values specified as rational numbers (e.g. 1/3 instead of 0.3333).
  • DistevalLibrary now supports variable values specified as strings (e.g. "0.3333"), and as sympy numeric objects (e.g. sympy.sympify("1/3")).
  • pySecDec.algebra now defines the exponential function in the class Exp, which enables remainder_expression in MakePackage to include exp() factors and use their derivatives to define subtraction terms.
  • High level test massive_ft_integral. Evaluates a massive flow-time integral which requires the newly added Exp class.
  • Unit tests in test_algebra for the newly added Exp class.

Changed

  • FORM updated to 4.3.1.
  • Require recent version of numpy>=1.23.

Fixed

  • The expansion order of the integrals key of the json format from disteval, in cases when the leading order of the prefactor is not zero.
  • GPU results being slightly off in very rare cases with disteval.

pySecDec 1.6.2

01 Sep 17:05

Choose a tag to compare

Added

  • format option for IntegralLibrary, allows the integral result to be output in ginac, sympy, mathematica, maple and json compatible formats.
  • Example nodist_examples/BNP6_wu. A 2-loop 4-point non-planar integral that requires a rescaling of the Feynman parameters.

Changed

  • GiNaC updated to 1.8.7.
  • Updated "Installation", "Getting Started" and "FAQ" documentation to reflect current usage guidelines.

Fixed

  • The final integration error reported by disteval in cases when either the sum coefficients, or the integral prefactors have non-zero imaginary parts. In such cases the total requested error bound would be satisfied correctly, but the reporting of it would be incorrect.
  • Crash when using median QMC rules with disteval with the assertion error assert np.all(nmin > 0).

pySecDec 1.6.1

04 Jul 08:31

Choose a tag to compare

Added

  • The json output format of Disteval now includes the values of the integrals in addition to the values of the sums.
  • zlib version 1.2.13, needed by FORM.
  • Example nodist_examples/ggh. Demonstrates the computation of the 1- and 2-loop amplitudes for Higgs production in gluon fusion.
  • Example nodist_examples/triangle2L_wu. Integral that requires a rescaling of the Feynman parameters.

Changed

  • FORM is now configured using --with-zlib, to avoid FORM issue 95.
  • If lattice_candidates is even and non-zero, use lattice_candidates+1 candidates.
  • The default decomposition_method of make_package and code_writer.make_package to geometric_no_primary.
  • The default decomposition_method of loop_integral.loop_package to geometric.
  • GiNaC updated to 1.8.6+ (commit 4bc2092 from Jun 21 2023).

Fixed

  • Critical bug in disteval introduced in 1.6 when using the median QMC lattice rules. Bug led to incorrect results for integrals with a severely underestimated error after recomputing with a larger lattice.
  • Parsing of the coefficient expressions with ginsh. Previously, mixing the exponentiation operator ^ and the unary + and/or - operators would result in ginsh misparsing the coefficients.

pySecDec 1.6

29 May 20:11

Choose a tag to compare

Added

  • New integrator Disteval.
  • Integration based on median QMC rule implemented, can be enabled with option lattice_candidates.
  • Numerator support for expansion by regions.
  • suggested_extra_regulator_exponent function, returns a list of suggested extra regulators sufficient to regularise a loop integral.
  • extra_regulator_constraints function, returns a dict of inequalities which must be obeyed by the extra regulators in order to regularise a loop integral.
  • form_memory_use argument for loop_regions, tailors form.set to use approximately the requested amount of memory.
  • form_threads argument for loop_regions, the number of threads TFORM will use.
  • extra_regulator_name, extra_regulator_exponent for loop_regions, the name to be used for the extra regulator required to obtain well defined integrals and a list of exponents of the extra regulator.
  • Documentation for prefactor in IntegralLibrary output.
  • ginsh binary built for GiNaC, now used for coefficient parsing.
  • Example examples/pentabox_offshell. A 2-loop penta-box integral.
  • Example examples/hexatriangle. A massive 2-loop qq->ttH master integral
  • Example examples/region_tools. Demonstrates the standalone usage of suggested_extra_regulator_exponent, extra_regulator_constraints and find_regions.
  • Added jupyter examples in examples/jupyter.

Changed

  • Vastly improved computation of the Newton polytopes, speeding up some steps required for expansion by regions and geometric sector decomposition.
  • Prefactors now expanded with ginsh rather than SymPy (while still using the SymPy syntax).
  • Coefficient parsing now relies on ginsh, allows much more general coefficients than the previously required num/den rational function form.
  • sum_package accepts much more general coefficients, which can be provided simply as strings with arbitrary arithmetic expressions (to be parsed by ginsh).
  • sum_package accepts sum coefficients as dictionaries of the form {'sum name' : terms}, where terms is either a list of coefficient expressions (one per integral), or a dictionary of the form {integral_index : coefficient}, allowing for sparse coefficient matrices.
  • The default sector decomposition method in loop_package changed from iterative to geometric.
  • Use form instead of tform and form_threads=1 by default, parallelisation is provided by the build system instead.
  • Disabled ContinuationLines in FORM output.
  • Various scripts export_sector, formwrapper, write_contour_deformation, write_integrand moved to pySecDecContrib.
  • git_id changed to __commit__ to be more consistent with naming of other metadata (e.g. __authors__ and __version__).
  • Print test.log for failed high level tests.
  • Require recent version of numpy>=1.23.
  • Require recent version of sympy>=1.10.1 and sympy<1.11 (due to a bug in the sympy series expansion).
  • Python binary can be set with PYTHON variable.
  • Replaced python testing framework nose with pytest.
  • Catch2 version 3.3.2 is now included in high_level_tests and used as our C++ testing framework.
  • Normaliz version 3.9.2 is now included in pySecDecContrib; normaliz_executable and normaliz arguments to make_package and other functions are now optional (and should probably not be used).
  • GiNaC updated to 1.8.4.
  • CLN updated to 1.3.6-b4d44895.
  • FORM updated to 4.3.0.
  • Cuba updated to 4.2.2.
  • Nauty and Traces updated to 2.8.6.
  • GSL updated to 2.7.1.

Removed

  • Support for Python versions 3.6 and 3.7.
  • A C++17 compliant compiler is now required (previously C++14 was sufficient).
  • add_monomial_reglator_power argument for loop_regions, replaced by extra_regulator_name and extra_regulator_exponent.

Fixed

  • GPU support for CUDA 11, removed incorrect use of shared_ptr in device functions.
  • geometric_ku now correctly handles 0-dimensional cones.
  • Handling of the imaginary unit i_ when they appear e.g. in user-provided polynomials.
  • Expansion by regions for cases where the resulting expansion is trivial.
  • Provide more useful error messages in polytope class, relevant when using expansion by regions or geometric sector decomposition methods.
  • Deprecation warnings emitted by SymPy due to calls of type sympify(str)
  • The Cuba examples are not built during installation

pySecDec 1.5.6

15 Nov 12:05

Choose a tag to compare

Fixed

  • Critical bug in expand_singular introduced in alpha_v0.1, which could lead to subtly incorrect analytic and numerical results. The series expansion of rational functions was incorrectly truncated if the expansion happened to be zero at some order in the expansion. (Thanks to Christoph Greub)

pySecDec 1.5.5

12 Aug 15:29

Choose a tag to compare

Fixed

  • Release version number

pySecDec 1.5.4

10 Aug 20:24

Choose a tag to compare

Fixed

  • Critical bug in _make_FORM_function_definition introduced in v1.5, which could lead to subtly incorrect numerical results when polynomials with one term and a large coefficient (more than 10^6 characters) were encountered in intermediate stages of the decomposition (Thanks to Christoph Greub).