Getting started with Corrfunc¶
Corrfunc is a set of high-performance routines to measure clustering statistics. The codes are divided conceptually into two different segments:
- theory - calculates clustering statistics on simulation volumes. Input
positions are expected to be Cartesian X/Y/Z. Periodic boundary conditions
are supported. Relevant C codes are in directory
- mocks - calculates clustering statistics on observation volumes. Input
positions are assumed to be in obverser frame,
SpeedofLight*Redshift(where required; \(\omega(\theta)\) only needs
DEC). Relevant C codes are in directory
This getting-started guide assumes you have already followed the Package Installation section of the documentation to get the package and its dependencies set up on your machine.
If you want to compute correlation functions and have installed the python extensions, then see Typical Tasks for Computing Correlation Functions for typical tasks. Otherwise, read on for the various interfaces available within Corrfunc.
Computing Clustering Statistics with Corrfunc¶
Corrfunc supports three separate mechanisms to compute the clustering statistics:
Via python (if you have
Pros: Fully flexible API to modulate code behaviour at runtime. For instance, calculations can be performed in double-precision simply by passing arrays of doubles (rather than floats).
Cons: Has fixed python overhead. For low particle numbers, can be as much as 20% slower compared to the command-line executables.
See Using the python extensions in Corrfunc for details on how to use the python interface.
Via static libraries directly in C codes
Pros: Fully flexible API to modulate code behaviour at runtime. All features supported by the python extensions are also supported here.
Cons: Requires coding in C. See example C codes invoking the
mocksin the directories:
See Using the static library interface in Corrfunc for details on how to use the static library interface.
Pros: Fastest possible implementations of all clustering statistics
Cons: API is fixed. Any changes require full re-compilation.
See Using the command-line interface in Corrfunc for details on how to use the command-line executables.