wolffd@0: function can = mpot_to_cpot(mom) wolffd@0: % MPOT_TO_CPOT Convert a moment potential to canonical form. wolffd@0: % mom = mpot_to_cpot(can) wolffd@0: wolffd@0: [g, h, K] = moment_to_canonical(mom.logp, mom.mu, mom.Sigma); wolffd@0: can = cpot(mom.domain, mom.sizes, g, h, K); wolffd@0: wolffd@0: %%%%%%%%%%% wolffd@0: wolffd@0: function [g, h, K] = moment_to_canonical(logp, mu, Sigma) wolffd@0: % MOMENT_TO_CANONICAL Convert moment characteristics to canonical form. wolffd@0: % [g, h, K] = moment_to_canonical(logp, mu, Sigma) wolffd@0: wolffd@0: K = inv(Sigma); wolffd@0: h = K*mu; wolffd@0: n = length(K); wolffd@0: if isempty(mu) wolffd@0: g = logp + 0.5*(log(det(K)) - n*log(2*pi)); wolffd@0: else wolffd@0: g = logp + 0.5*(log(det(K)) - n*log(2*pi) - mu'*K*mu); wolffd@0: end