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
64 stars 65 forks source link

ECORR problem with pta.get_ndiag #375

Closed kgrunthal closed 4 months ago

kgrunthal commented 7 months ago

When using white_signals.EcorrKernelNoise in a pta object, calling pta.get_ndiag(parameters) does not return a vector, but the following objects:

kgrunthal commented 7 months ago

The second bullet point is caused by the lines 804-807 in gp_signals:

# there are none, but to be general... @signal_base.cache_call("ndiag_params") def get_ndiag(self, params): return MarginalizingNmat(self.Mmat()[0])

Would it be possible to just comment them out? I can't see their purpose if it is for bookkeeping only...

AaronDJohnson commented 7 months ago

@kgrunthal can you explain what the expected behavior is? Are you running into an error of some sort? These objects are used in combination with other vectors/matrices for more efficient inversion of matrices.

AaronDJohnson commented 7 months ago

The second bullet point is caused by the lines 804-807 in gp_signals:

# there are none, but to be general... @signal_base.cache_call("ndiag_params") def get_ndiag(self, params): return MarginalizingNmat(self.Mmat()[0])

Would it be possible to just comment them out? I can't see their purpose if it is for bookkeeping only...

In this line, I think they are talking about @signal_base.cache_call("ndiag_params") in particular.

vhaasteren commented 4 months ago

Closing this issue. After talking to Kathrin, she was trying to do xxx / Ndiag, which is not the right way to do inverses in the Fe statistic code.