@.hr proc pisub @ @--------------------------------------------------------------------@ @ Proc for selected rows of probability transition matrix @ @--------------------------------------------------------------------@ proc pisub(jvec,xmat,nsx,ymat,nsy); Local st, xx, x, conexp, piout, k, j, nr; nr = rows(jvec); piout = zeros(nr,nsy); j = 1; st = decode(jvec,nsx,nlag); Do while (j le nr); xx = xmat[st[j,.],1:nvar]; x = reshape( xx ,1, nvar*nlag); piout[j,.] = pifn(x); j=j+1; Endo; piout = piout./sumc(piout'); retp(piout); Endp; @.hr proc pifn @ @@ @--------------------------------------------------------------------@ @ proc for transition probabilites as a function of x @ @--------------------------------------------------------------------@ Proc pifn(xmat); Local pival, temp, j, x, conexp, k ; pival = zeros(rows(xmat),ns); temp = wvec./phimat(ymat,exval,siginv,detsigma) ; j = 1; Do while ( j le rows(xmat) ); x = xmat[j,.]; conexp = x*auto'+ b' ; pival[j,.] = ( phimat(ymat,conexp,siginv,detsigma).*temp )'; j = j + 1; Endo; retp(pival); Endp; @.hr proc reachrow @ @@ @--------------------------------------------------------------------@ @ Proc Reachrow @ @--------------------------------------------------------------------@ proc reachrow(ivec,ns,nlag); If ( cols(ivec) eq 1 ); retp( seqa(1,1,ns)' ); Else; retp( code( seqa(1,1,ns)~ ( ones(ns,1).*.ivec[1,1:(cols(ivec)-1)] ),nlag) '); Endif; Endp; @.hr proc hzdirpr @ @@ @--------------------------------------------------------------------@ @ Proc hzdirpr @ @--------------------------------------------------------------------@ Proc hzdirpr(x,y); Local nrx, ncx, ncy, z; nrx = rows(x); ncx = cols(x); ncy = cols(y); z = zeros(nrx,ncx*ncy); callexe hdpc(x,nrx,ncx,y,ncy,z); retp(z); Endp;