about summary refs log tree commit diff
path: root/sourcecodes/bnt-master/BNT/potentials/@cpot/Old/cpot_to_mpot.m
blob: 05899b999cc7fbf2b4ec515d03e41a3185e22a54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function mom = cpot_to_mpot(can)
% CPOT_TO_MPOT Convert a canonical potential to moment form.
% mom = cpot_to_mpot(can)

[logp, mu, Sigma] = canonical_to_moment(can.g, can.h, can.K);
mom = mpot(can.domain, can.sizes, logp, mu, Sigma);

%%%%%%%

function [logp, mu, Sigma] = canonical_to_moment(g, h, K)
% CANONICAL_TO_MOMENT Convert canonical characteristics to moment form.
% [logp, mu, Sigma] = canonical_to_moment(g, h, K)

if det(K)==0
  Sigma = inf*size(K);
else
  Sigma = inv(K);
end
mu = Sigma*h;
n = length(mu);
if isempty(mu)
  logp = g - 0.5*(log(det(K)) - n*log(2*pi));
else
  logp = g - 0.5*(log(det(K)) - n*log(2*pi) - mu'*K*mu);
end