Version 5.0.0
This is a major version update to TreeCorr, since it contains a number of non-backwards-compatible changes to the API.
The most important change involves the three-point correlations. TreeCorr now implements the multipole algorithm of Porth et al, 2023 (arXiv:2309.08601), which is much faster than the previous 3-cell recursion over triangles. Enough so that I don't anticipate people ever wanting to use the old algorithm. However, this algorithm requires a different binning than we used to use -- it requires binning according to two sides of the triangle and the angle between them, rather than the three side lengths (using a somewhat awkward formulation in terms of ratios of side lengths).
The new three-point binning scheme is called bin_type="LogSAS". This is now the default binning for all three-point correlation classes. Furthermore, the default algorithm is algo="multipole", which first computes the multipole version of the correlation function using the Porth et al algorithm. Then it converts back to regular configuration space the the LogSAS binning.
The old versions are still available in case there are use cases for which they are superior in some way. I do use them in the test suite still for comparison purposes. To use the old binning, you now need to explicitly specify bin_type="LogRUV" in the Correlation class, and to use the old algorithm of accumulating triangle directly, use algo="triangle" when calling Corr3.process.
I also changed how three-point cross correlations are handled, since I wasn't very happy with my old implementation. Now, you can indicate whether or not you want the three points to keep their ordering in the triangle with the parameter ordered in the Corr3.process function. If ordered=False, then points from the (2 or 3) catalogs are allowed to take any position in the triangle. If ordered=True (the default), then points from the first catalog will only for point P1 in the triangle, points from the second catalog will only be at P2, and points from the third will only be at P3. This seems to be a more intuitive way to control this than the old CrossCorrelation classes.
Another big change in this release is the addition of more fields for the two-point correlations. TreeCorr now implements correlations of spin-1 vector fields, as well as complex-valued fields with spin=0, 3, or 4. (TreeCorr had already implemented spin-2 of course.) The letters for each of these are V, Z, T, and Q respectively. I only did the pairings of each of these with itself, counts (N), and real scalar fields (K). However, it would not be too hard to add more if someone has a use case for a pairing of two complex fields with different spins.
A complete list of all new features and changes is given here: https://github.com/rmjarvis/TreeCorr/blob/v5.0.0/CHANGELOG.rst
Full documentation is here: https://rmjarvis.github.io/TreeCorr/_build/html/index.html