Add `SymmetricMvLaplace` distribution
As per title, I needed a multivariate Laplace distribution in some applications, Distributions.jl didn't seem to have it, so here is one of its versions (of the few possible). This PR follows the mathematical description provided here. A lot of the code is based on MvNormal implementation because externally they have lots of similarities.
Stuff done/to do (trying to follow the requirements outlined in the docs:
- [x]
length - [ ]
sampler- it wasn't immediately obvious to me that a more efficient sampler for batches exists, so I didn't implement one. If I am missing something, please let me know and I'll try to implement it. - [x]
eltype - [x]
Distributions._rand! - [x]
Distributions._logpdf - [x]
mean - [x]
var - [x]
cov - [x]
invcov
Feedback welcome!
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 86.44%. Comparing base (bbdd4f1) to head (b3a6400).
Additional details and impacted files
@@ Coverage Diff @@
## master #2004 +/- ##
==========================================
+ Coverage 86.35% 86.44% +0.08%
==========================================
Files 146 147 +1
Lines 8782 8835 +53
==========================================
+ Hits 7584 7637 +53
Misses 1198 1198
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.