Releases: secdec-research/secdec
Releases · secdec-research/secdec
pySecDec 1.6.6
pySecDec 1.6.5
Added
loop_integral.leading_order()which returns the leading degree of divergence of a loop integral.- Non-trivial
remainder_expressionsupport when choosing the decomposition methodgeometric_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_numerator22s -> 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
sqrtfunction output bysympyis now correctly handled in FORM scripts. split=Truenow functions correctly when choosing decomposition methodgeometric_infinity_no_primary.- Memory leaks in
coefficient_parser. numpydeprecations.
pySecDec 1.6.4
Added
disteval.clear_eval()andintegral_interface.DistevalLibrary.close()to clean up disteval resources.make source-mmato 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
Added
- The command line integration interface of disteval now supports variable values specified as rational numbers (e.g.
1/3instead of0.3333). DistevalLibrarynow supports variable values specified as strings (e.g."0.3333"), and as sympy numeric objects (e.g.sympy.sympify("1/3")).pySecDec.algebranow defines the exponential function in the classExp, which enablesremainder_expressioninMakePackageto includeexp()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 addedExpclass. - Unit tests in
test_algebrafor the newly addedExpclass.
Changed
- FORM updated to 4.3.1.
- Require recent version of
numpy>=1.23.
Fixed
- The expansion order of the
integralskey of thejsonformat 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
Added
formatoption forIntegralLibrary, allows the integral result to be output inginac,sympy,mathematica,mapleandjsoncompatible 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
distevalin 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
distevalwith the assertion errorassert np.all(nmin > 0).
pySecDec 1.6.1
Added
- The
jsonoutput format ofDistevalnow 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_candidatesis even and non-zero, uselattice_candidates+1candidates. - The default
decomposition_methodofmake_packageandcode_writer.make_packagetogeometric_no_primary. - The default
decomposition_methodofloop_integral.loop_packagetogeometric. - GiNaC updated to 1.8.6+ (commit 4bc2092 from Jun 21 2023).
Fixed
- Critical bug in
distevalintroduced 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 inginshmisparsing the coefficients.
pySecDec 1.6
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_exponentfunction, returns a list of suggested extra regulators sufficient to regularise a loop integral.extra_regulator_constraintsfunction, returns a dict of inequalities which must be obeyed by the extra regulators in order to regularise a loop integral.form_memory_useargument forloop_regions, tailorsform.setto use approximately the requested amount of memory.form_threadsargument forloop_regions, the number of threads TFORM will use.extra_regulator_name,extra_regulator_exponentforloop_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
prefactorinIntegralLibraryoutput. ginshbinary 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 ofsuggested_extra_regulator_exponent,extra_regulator_constraintsandfind_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
ginshrather than SymPy (while still using the SymPy syntax). - Coefficient parsing now relies on
ginsh, allows much more general coefficients than the previously requirednum/denrational function form. sum_packageaccepts much more general coefficients, which can be provided simply as strings with arbitrary arithmetic expressions (to be parsed byginsh).sum_packageaccepts sum coefficients as dictionaries of the form{'sum name' : terms}, wheretermsis 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_packagechanged fromiterativetogeometric. - Use
forminstead oftformandform_threads=1by default, parallelisation is provided by the build system instead. - Disabled
ContinuationLinesin FORM output. - Various scripts
export_sector,formwrapper,write_contour_deformation,write_integrandmoved topySecDecContrib. git_idchanged to__commit__to be more consistent with naming of other metadata (e.g.__authors__and__version__).- Print
test.logfor failed high level tests. - Require recent version of
numpy>=1.23. - Require recent version of
sympy>=1.10.1andsympy<1.11(due to a bug in the sympy series expansion). - Python binary can be set with
PYTHONvariable. - Replaced python testing framework
nosewithpytest. - Catch2 version 3.3.2 is now included in
high_level_testsand used as our C++ testing framework. - Normaliz version 3.9.2 is now included in
pySecDecContrib;normaliz_executableandnormalizarguments tomake_packageand 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_powerargument forloop_regions, replaced byextra_regulator_nameandextra_regulator_exponent.
Fixed
- GPU support for CUDA 11, removed incorrect use of
shared_ptrin device functions. geometric_kunow 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
polytopeclass, 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
Fixed
- Critical bug in
expand_singularintroduced 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
Fixed
- Release version number
pySecDec 1.5.4
Fixed
- Critical bug in
_make_FORM_function_definitionintroduced 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).