PrecessingFisherMatrix API Reference

RIFT.physics.PrecessingFisherMatrix.ApproximatePrecessingFisherMatrixElement(P, p1, p2, psd, return_intermediate=False, phase_deriv_cache=None, break_out_beta=False, **kwargs)
RIFT.physics.PrecessingFisherMatrix.ApproximatePrecessingFisherMatrixElementFactor(P, p1, p2, m, s, psd, phase_deriv_cache=None, omit_geometric_factor=False, break_out_beta=False, **kwargs)

ApproximatePrecessingFisherMatrixElementFactor computes the weighted integral appearing in the sum, and the SNR weight.

Ideally this calculation should CACHE existing phase derivatives (eg. by top-level user) Arguments:

  • phase_deriv_cache : derivative of dphase/dlambda for different parameters

  • omit_geometric_factor :

RIFT.physics.PrecessingFisherMatrix.EffectiveFisherMatrixElement(P, p1, p2, psd, max_t=True, **kwargs)
RIFT.physics.PrecessingFisherMatrix.FisherProject(mtx, indx_list_preserve)

returns mtxAA - mtxAB*(mtxBB^(-1))*mtxBA calculated using matrix algebra

RIFT.physics.PrecessingFisherMatrix.NumericalFisherMatrixElement(P, p1, p2, psd, max_t=False, **kwargs)

Full, no-approximations use of <d h | d h>

NOT RELIABLE – requires OBSCENELY small step to make deltas of phase resolved.

RIFT.physics.PrecessingFisherMatrix.OverlapGridVersusChangingParameter(P, p1, p2, psd, max_t=False, cut_P=0.95, **kwargs)

Extract <h1|h2>/|h1||h2| as a function of one parameter (Intent here is for plotting or fitting, to extract diagonal fisher components)

RIFT.physics.PrecessingFisherMatrix.OverlapVersusChangingParameter(P, p1, psd, max_t=False, cut_P=0.95, **kwargs)

Extract <h1|h2>/|h1||h2| as a function of one parameter (Intent here is for plotting or fitting, to extract diagonal fisher components)

RIFT.physics.PrecessingFisherMatrix.PhaseDerivativeSeries(P, p1, skip_fast_derivative=False)

Using the waveform, constructs an array on a full range of f values which is nonzero only for f>0

RIFT.physics.PrecessingFisherMatrix.PhaseSequenceLeadingOrder(P)

Like lalsimutils.PrecessingOrbitModesOfFrequencyApproximate(return_phase=True), but based on leading-order expressions, calculated using V.

  • One-sided.

  • irregular frequency sampling (not identical to what will be generated by that code)

RIFT.physics.PrecessingFisherMatrix.array_to_symmetric_matrix(gamma)

Given a flat array of length N*(N+1)/2 consisting of the upper right triangle of a symmetric matrix, return an NxN numpy array of the symmetric matrix

Example:

gamma = [1, 2, 3, 4, 5, 6] array_to_symmetric_matrix(gamma)

array([[1,2,3],

[2,4,5], [3,5,6]])

RIFT.physics.PrecessingFisherMatrix.effectiveFisher(residual_func, *flat_grids)

Fit a quadratic to the ambiguity function tabulated on a grid. Inputs:

  • a pointer to a function to compute residuals, e.g. z(x1, …, xN) - fit for N-dimensions, this is called ‘residualsNd’

  • N+1 flat arrays of length K. N arrays for each on N parameters, plus 1 array of values of the overlap

Returns:
  • flat array of upper-triangular elements of the effective Fisher matrix

Example: x1s = [x1_1, …, x1_K] x2s = [x2_1, …, x2_K] … xNs = [xN_1, …, xN_K]

gamma = effectiveFisher(residualsNd, x1s, x2s, …, xNs, rhos) gamma

[g_11, g_12, …, g_1N, g_22, …, g_2N, g_33, …, g_3N, …, g_NN]

RIFT.physics.PrecessingFisherMatrix.residuals2d(gamma, y, x1, x2)