1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
function can = mpot_to_cpot(mom)
% MPOT_TO_CPOT Convert a moment potential to canonical form.
% mom = mpot_to_cpot(can)
[g, h, K] = moment_to_canonical(mom.logp, mom.mu, mom.Sigma);
can = cpot(mom.domain, mom.sizes, g, h, K);
%%%%%%%%%%%
function [g, h, K] = moment_to_canonical(logp, mu, Sigma)
% MOMENT_TO_CANONICAL Convert moment characteristics to canonical form.
% [g, h, K] = moment_to_canonical(logp, mu, Sigma)
K = inv(Sigma);
h = K*mu;
n = length(K);
if isempty(mu)
g = logp + 0.5*(log(det(K)) - n*log(2*pi));
else
g = logp + 0.5*(log(det(K)) - n*log(2*pi) - mu'*K*mu);
end
|