nanograv / enterprise

ENTERPRISE (Enhanced Numerical Toolbox Enabling a Robust PulsaR Inference SuitE) is a pulsar timing analysis code, aimed at noise analysis, gravitational-wave searches, and timing model analysis.
https://enterprise.readthedocs.io
MIT License
65 stars 67 forks source link

Implementation of fast likelihood with MarginalizingTimingModel #288

Closed vallis closed 3 years ago

vallis commented 3 years ago

This PR implements the same algebra as #286, but confines it to a smart MarginalizingTimingModel object that does two things:

All operations are cached appropriately. This means that the TimingModel will not participate in the GP basis and Phi inversion. Note that MarginalizingTimingModel should be placed first when assembling a model.

The PR also modifies the standard Loglikelihood to accept a parameter cholesky_sparse=False that disables the sparse Cholesky of the combined Sigma matrix, and that caches the combined TNr and TNT. These steps are required to get the full benefits of MarginalizingTimingModel.

codecov[bot] commented 3 years ago

Codecov Report

Merging #288 (7e0192b) into master (a06d1f6) will increase coverage by 0.32%. The diff coverage is 96.90%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #288      +/-   ##
==========================================
+ Coverage   86.44%   86.76%   +0.32%     
==========================================
  Files          12       12              
  Lines        2730     2819      +89     
==========================================
+ Hits         2360     2446      +86     
- Misses        370      373       +3     
Impacted Files Coverage Δ
enterprise/signals/gp_signals.py 88.00% <95.38%> (+1.24%) :arrow_up:
enterprise/signals/signal_base.py 89.75% <100.00%> (+0.33%) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update a06d1f6...7e0192b. Read the comment docs.