Fix `ift.Field.vdot` breaking with np.uint32 and other integer types
Hi Martin,
I just stumbled over ducc0.misc.vdot
not multiplying doubles and integers, which is required in the PoissonianEnergy
. It seems Philipp Arras did so, too, a while ago, but unfortunately his mitigation was incomplete, as it did only catch np.int64
s.
Is there a double*integer
vdot
in ducc0
that we could call instead of the conversion?
While at it: I noticed ift.PoissonianEnergy
enforces integer-typed data fields (sensible for Poisson counts), but then passes them directly to vdot
, triggering an int->double
conversion in each application. Should we cast the data field to double
in the initialization of PoissonianEnergy
after the integer check to avoid this?
Cheers, Lukas