function direct_bound global nstate nstate = 2; global lenseq lenseq = 2; global A C A = rand(nstate,nstate); C = zeros(nstate,1); C(2) = 1; global ALLSEQ ALLSEQ = list_all_ind(repmat(nstate,1,lenseq)); N = 4; n = 2; G = 0; Xk = zeros(nstate,N); for k=1:nstate x = randx(N); Xk(k,:) = x; gam = gamma(n,x); G = G + gam(k); end Xk B = bound(A,Xk,n); if (abs(G) <= B + 1e-10) 'good' else 'bad' keyboard end return function y = Y(Xi) % Y1 = E[f(X)|X_i] - E[f(X)|X_{i-1}] Ef1 = E(Xi); Ef0 = E(Xi(1:end-1)); y = Ef1 - Ef0; return function Ef = E(Xi) % E[f(X)|Xi] global ALLSEQ global A Ef = 0; i = length(Xi); n = size(ALLSEQ,2); for k=1:size(ALLSEQ,1) x = ALLSEQ(k,:); p = P(x); if (i & (i