halomod.halo_exclusion.Exclusion

class halomod.halo_exclusion.Exclusion(m, density, Ifunc, bias, r, delta_halo, mean_density)[source]

Base class for exclusion models.

All models will need to perform single or double integrals over arrays that may have an extra two dimensions. The maximum possible size is k*r*m*m, which for normal values of the vectors equates to ~ 1000*50*500*500 = 12,500,000,000 values, which in 64-bit reals is 1e11 bytes = 100GB. We thus limit this to a maximum of either k*r*m or r*m*m, both of which should be less than a GB of memory.

It is possibly better to limit it to k*r or m*m, which should be quite memory efficient, but then without accelerators (ie. Numba), these will be very slow.

Methods

__init__(m, density, Ifunc, bias, r, …)

Initialize self.

get_models()

Get a dictionary of all implemented models for this component.

integrate()

Integrate the raw_integrand() over mass.

raw_integrand()

Return either a 2d (k,m) or 3d (r,k,m) array with the general integrand.