Open
Description
General information
- Corrfunc version: 2.4.0
- platform: MacOS
- installation method (pip/source/other?): pip
Issue description
When I perform pair counts on a random distribution with float32 precision using Corrfunc.mocks.DDtheta_mocks with 20 log bins between 0.01 and 10 degrees, I always get zero pairs in the second bin. Using float64 alleviates this problem. I'm not sure if this is a bug as such, but users should be strongly advised to only use float64 coordinates.
Expected behavior
Would not expect significantly different results betweein flloat32 and float64 coords for angular precision > 0.01 deg.
Actual behavior
Zero pair counts in second bin using float32.
What have you tried so far?
Using float64 precision avoids this problem. In fact, pair counts in all bins change.
Minimal failing example
import Corrfunc
import numpy as np
from numpy.random import default_rng
rng = default_rng()
def corrfunc_test(nran=10000, tmin=0.01, tmax=10, nbins=20):
"""Random-random pair count test."""
bins = np.logspace(np.log10(tmin), np.log10(tmax), nbins + 1)
ra = 20*rng.random(nran)
dec = 20*rng.random(nran)
counts = Corrfunc.mocks.DDtheta_mocks(1, 1, bins, ra, dec)
print(counts)
counts = Corrfunc.mocks.DDtheta_mocks(1, 1, bins, ra.astype('float32'), dec.astype('float32'))
print(counts)
Metadata
Metadata
Assignees
Labels
No labels