wolffd@0: function pot = scgcpot(cheadsize, ctailsize, p, A, B, C) wolffd@0: % SCGCPOT Make a base object of stable conditional gaussian potential. wolffd@0: % pot = scgcpot(cheadsize, ctailsize, p, A, B, C) wolffd@0: % wolffd@0: % cheadsize is the demension of head nodes. wolffd@0: % ctailsize is the demension of tail nodes. wolffd@0: % r = cheadsize, s = ctailsize wolffd@0: % p is discrete probability. wolffd@0: % A is table of r*1 vectors; wolffd@0: % B is r*s matrices wolffd@0: % C is r*r positive semidefinite symmetric matrices wolffd@0: wolffd@0: if nargin < 3 wolffd@0: p = 1; wolffd@0: end wolffd@0: if nargin < 4 wolffd@0: A = zeros(cheadsize,1); wolffd@0: end wolffd@0: if nargin < 5 wolffd@0: B = zeros(cheadsize,ctailsize); wolffd@0: end wolffd@0: if nargin < 6 wolffd@0: C = zeros(cheadsize,cheadsize); wolffd@0: end wolffd@0: wolffd@0: if isempty(A) wolffd@0: A = zeros(cheadsize,1); wolffd@0: end wolffd@0: if isempty(B) wolffd@0: B = zeros(cheadsize,ctailsize); wolffd@0: end wolffd@0: if isempty(C) wolffd@0: C = zeros(cheadsize,cheadsize); wolffd@0: end wolffd@0: wolffd@0: pot.cheadsize = cheadsize; wolffd@0: pot.ctailsize = ctailsize; wolffd@0: wolffd@0: pot.p = p; wolffd@0: pot.A = A; wolffd@0: pot.B = B; wolffd@0: pot.C = C; wolffd@0: %if cheadsize == 0 wolffd@0: % pot.A = []; wolffd@0: %end wolffd@0: %if ctailsize == 0 wolffd@0: % pot.B = []; wolffd@0: %end wolffd@0: pot = class(pot, 'scgcpot');