Closed vallis closed 3 years ago
Merging #288 (7e0192b) into master (a06d1f6) will increase coverage by
0.32%
. The diff coverage is96.90%
.
@@ 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.
This PR implements the same algebra as #286, but confines it to a smart
MarginalizingTimingModel
object that does two things:get_ndiag()
, returns aMarginalizingNmat
object with asolve()
method that returns (r^T D^-1 r), (T D^-1 r), (T D^-1 T^t) for the matrix D = N + M E M^T (with E formally infinite variance).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.