pyfmmlib M2L with zero input doesn't return zero output in 3D
Within boxtree's pyfmmlib driver, if I apply this patch, which sets the multipole expansions to zero and prints the norm of the output vector, and run test_pyfmmlib_fmm
, this happens:
$ python test_fmm.py "test_pyfmmlib_fmm(cl._csc, 3, 0, 0)"
expn2 norm 0.0
expn2 norm 0.0
expn2 norm inf
expn2 norm inf
expn2 norm inf
expn2 norm inf
I get random values of the norm for most runs. In 2D it always returns zero:
$ python test_fmm.py "test_pyfmmlib_fmm(cl._csc, 2, 0, 0)"
expn2 norm 0.0
expn2 norm 0.0
expn2 norm 0.0
expn2 norm 0.0
expn2 norm 0.0
expn2 norm 0.0
expn2 norm 0.0
I'm using gfortran 4.8.5 and building pyfmmlib in in "openmp-ofast" mode, if that is helpful.
Edited by Matt Wala