# tripy A package for efficient[^1] likelihood evaluation and sampling for Multivariate Normal distributions where the covariance matrix: * Is Separable, i.e. can be expressed as the [Kronecker product](https://en.wikipedia.org/wiki/Kronecker_product) of the covariance over different dimensions (e.g. space and time); * May have Exponential correlation (i.e. [(block-) tridiagonal](https://en.wikipedia.org/wiki/Tridiagonal_matrix) precision matrix) in one or more dimensions (see {cite}`Meurant1992` and {cite}`Rue2005`; * Is polluted with uncorrelated scalar or vector noise. The work of {cite}`Cheong2016`, {cite}`Stegle2011` and {cite}`Gilboa2015` is extensively used. [^1]: In the general case, exact likelihood evaluation has *O(N3)* computational complexity and *O(N2)* memory requirements. The term "efficient" is used here to refer to the reduction of complexity and memory usage by utilizing the sparsity and Kronecker product structure of the covariance matrix. ## Structure **base**: Base class for problem formulation, taken from [taralli](https://gitlab.com/tno-bim/taralli). Likely to be removed in a future update. **utils**: Utility functions for efficient linear algebra invovling tridiagonal and Kronecker product matrices. **loglikelihood**: Functions for efficient loglikelihood evaluation. **kernels**: Formulation of commonly used kernels. **sampling**: Functions for efficient sampling. ```{toctree} --- hidden: --- installation methods api references ``` ```{toctree} --- hidden: maxdepth: 1 caption: Development --- for_contributors ```