diff --git a/Project.toml b/Project.toml index dda54a6..221221e 100644 --- a/Project.toml +++ b/Project.toml @@ -4,6 +4,7 @@ authors = ["Mykola Lukashchuk and contributors"] version = "0.2.0" [deps] +Bessels = "0e736298-9ec6-45e8-9647-e4fc86a2fe38" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" ExponentialFamily = "62312e5e-252a-4322-ace9-a5f4bf9b357b" LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" @@ -12,6 +13,7 @@ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [compat] Aqua = "0.8.4" +Bessels = "0.2.8" CpuId = "0.3.1" Distributions = "0.25" ExponentialFamily = "1.4.1" diff --git a/src/ClosedFormExpectations.jl b/src/ClosedFormExpectations.jl index 720043e..bd058a4 100644 --- a/src/ClosedFormExpectations.jl +++ b/src/ClosedFormExpectations.jl @@ -48,6 +48,7 @@ include("expressions/Square.jl") include("expressions/Power.jl") include("expressions/xlog2x.jl") include("expressions/Abs.jl") +include("expressions/LogBesselk.jl") # rules for computing expectations include("Exponential/Exponential.jl") diff --git a/src/expressions/LogBesselk.jl b/src/expressions/LogBesselk.jl new file mode 100644 index 0000000..032b85c --- /dev/null +++ b/src/expressions/LogBesselk.jl @@ -0,0 +1,11 @@ +export LogBesselk + +import Bessels: besselkx + +struct LogBesselk <: Expression + ν::Number +end + +function (f::LogBesselk)(x) + return log(besselkx(f.ν, x)) - x +end \ No newline at end of file diff --git a/test/Normal/mean_test.jl b/test/Normal/mean_test.jl index aa0fe47..ee2bf51 100644 --- a/test/Normal/mean_test.jl +++ b/test/Normal/mean_test.jl @@ -47,4 +47,4 @@ end @test log(0.5*1/θ) - 1/θ * value ≈ value_laplace end -end \ No newline at end of file +end