-
Notifications
You must be signed in to change notification settings - Fork 37
Closed
Description
wrong type argument to unary minus (FFV functions should not use "-COUPs" as argument)
I have seen this issue in two places
- first in a SUSY process gg_tt of PR fix susy gg_tt builds and add it to the repo #625 (specifically 586195d), so I thought it was specifically a SUSY issue
- but then I also saw the same in a SM process gq_ttllq in PR Add SM gq to ttq (and gq to ttllq) - example of a process with DSIG1 and DSIG2 #626 (specifically 2f571a1), so actually it is not a SUSY issue
For SUSY for instance
586195d
The CUDA_HOME=none HRDCOD=0 build also fails with
ccache g++ -O3 -std=c++17 -I. -I../../src -I../../../../../tools -Wall -Wshadow -Wextra -ffast-math -fopenmp -march=skylake-avx512 -mprefer-vector-width=256 -DMGONGPU_FPTYPE_DOUBLE -DMGONGPU_FPTYPE2_DOUBLE -DMGONGPU_HARDCODE_PARAM -DMGONGPU_HAS_NO_CURAND -fPIC -c CPPProcess.cc -o CPPProcess.o
CPPProcess.cc: In function ‘void mg5amcCpu::calculate_wavefunctions(int, const fptype*, const fptype*, mgOnGpu::fptype*, fptype_sv*, int)’:
CPPProcess.cc:241:81: error: wrong type argument to unary minus
241 | FFV1_0<W_ACCESS, A_ACCESS, CD_ACCESS>( w_fp[3], w_fp[2], w_fp[4], -COUPs[1], &_fp[0] );
| ~~~~~~~^
CPPProcess.cc:251:62: error: wrong type argument to unary minus
251 | FFV1_1<W_ACCESS, CD_ACCESS>( w_fp[2], w_fp[0], -COUPs[1], cIPD[0], cIPD[1], w_fp[4] );
| ~~~~~~~^
CPPProcess.cc:254:81: error: wrong type argument to unary minus
254 | FFV1_0<W_ACCESS, A_ACCESS, CD_ACCESS>( w_fp[3], w_fp[4], w_fp[1], -COUPs[1], &_fp[0] );
| ~~~~~~~^
CPPProcess.cc:263:62: error: wrong type argument to unary minus
263 | FFV1_2<W_ACCESS, CD_ACCESS>( w_fp[3], w_fp[0], -COUPs[1], cIPD[0], cIPD[1], w_fp[4] );
| ~~~~~~~^
CPPProcess.cc:266:81: error: wrong type argument to unary minus
266 | FFV1_0<W_ACCESS, A_ACCESS, CD_ACCESS>( w_fp[4], w_fp[2], w_fp[1], -COUPs[1], &_fp[0] );
| ~~~~~~~^
This is potentially tough to solve. I see two ways
- either we keep the APIs the same, but then the value inside COUPs[1] must be replaced by their opposite... this whoever only works if ALL FFV functions use the same sign for the coupling
- alternatively (ugly, cumbersome - and worse performance), must pass an extra parameter to the FFV functions to say that the couplings must be taken with the opposite sign
Copying @zeniheisser as I understand this might be a showstopper for SUSY studies. Sopying also @oliviermattelaer
Metadata
Metadata
Assignees
Labels
No labels