Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make_package with split=True fails for trivial examples #43

Open
spj101 opened this issue Sep 12, 2024 · 0 comments
Open

make_package with split=True fails for trivial examples #43

spj101 opened this issue Sep 12, 2024 · 0 comments
Labels

Comments

@spj101
Copy link
Collaborator

spj101 commented Sep 12, 2024

Reported to me by: Matteo Marcoli

The code generation for simple integrals with make_package and split=True fails.

Example:

from pySecDec import make_package

if __name__ == "__main__":

   make_package(
       name = 'A30b',
       integration_variables = ['z'],
       prefactor = '1',
       regulators = ['eps'],
       requested_orders = [0],
       polynomials_to_decompose = ['(1-z)^(-1-eps)'],
       split=True,
       
       # Bug in symmetry finder in pySecDec v1.6.4
       use_iterative_sort=True, # works if set to False
       use_light_Pak=False,
       use_dreadnaut=False,
       use_Pak=False,
   )

Gives:

running "sum_package" for A30b
running "make_package" for "A30b_integral"
number of primary sectors before symmetry finding: 1
Traceback (most recent call last):
  File "/Users/sj/Documents/repo/secdec-private/nodist_examples/marcoli/makepkg.py", line 5, in <module>
    make_package(
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/make_package.py", line 375, in make_package
    sum_package(
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/code_writer/sum_package.py", line 480, in sum_package
    template_replacements = [_generate_one_term(
                            ^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/code_writer/sum_package.py", line 480, in <listcomp>
    template_replacements = [_generate_one_term(
                             ^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/code_writer/sum_package.py", line 171, in _generate_one_term
    mp = make_package(**package_generator._asdict())
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/code_writer/make_package.py", line 1988, in make_package
    for primary_sector_index, primary_sector in enumerate(primary_sectors_to_consider):
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/code_writer/make_package.py", line 1856, in primary_decomposition_with_splitting
    primary_sectors = _reduce_sectors_by_symmetries\
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/code_writer/make_package.py", line 1432, in _reduce_sectors_by_symmetries
    sectors = decomposition.squash_symmetry_redundant_sectors_sort(sectors, iterative_sort, indices)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/decomposition/common.py", line 658, in squash_symmetry_redundant_sectors_sort
    replaced_sectors = _remove_variables(sectors, indices)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/decomposition/common.py", line 575, in _remove_variables
    output.append( Sector(new_cast, new_other, new_Jacobian) )
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/decomposition/common.py", line 53, in __init__
    initial_monomial_factor = Polynomial([ [0]*self.number_of_variables ], [1], poly.polysymbols)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sj/Documents/repo/secdec-private/pySecDec/algebra.py", line 381, in __init__
    raise TypeError('All entries in `expolist` must be integer.')
TypeError: All entries in `expolist` must be integer.

The problem seems to be that split is implemented as a kind of primary decomposition and the symmetry finder ends up trying to (incorrectly) create a Sector that has the 1 variable z eliminated.

Disabling the symmetry finder gives reasonable looking results.

@spj101 spj101 added the bug label Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant