sign_pbc¶
- halotools.mock_observables.sign_pbc(x1, x2, period=None, equality_fill_val=0.0, return_pbc_correction=False)[source]¶
Return the sign of the unit vector pointing from x2 towards x1, that is, the sign of (x1 - x2), accounting for periodic boundary conditions.
If x1 > x2, returns 1. If x1 < x2, returns -1. If x1 == x2, returns equality_fill_val.
- Parameters:
- x1array
1-d array of length Npts. If period is not None, all values must be contained in [0, Lbox)
- x2array
1-d array of length Npts. If period is not None, all values must be contained in [0, Lbox)
- periodfloat, optional
Size of the periodic box. Default is None for non-periodic case.
- equality_fill_valfloat, optional
Value to return for cases where x1 == x2. Default is 0.
- return_pbc_correctionbool, optional
If True, the
sign_pbc
function will additionally return a length Npts boolean array storing whether or not the input points had a PBC correction applied. Default is False.
- Returns:
- sgnarray
1-d array of length Npts.
Examples
>>> Lbox = 250.0 >>> x1 = 1. >>> x2 = 249. >>> result = sign_pbc(x1, x2, period=Lbox) >>> assert result == 1
>>> result = sign_pbc(x1, x2, period=None) >>> assert result == -1
>>> npts = 100 >>> x1 = np.random.uniform(0, Lbox, npts) >>> x2 = np.random.uniform(0, Lbox, npts) >>> result = sign_pbc(x1, x2, period=Lbox)