1function [SAMPLES,LAST,FIRST]=det_sample(DET,nSamples,initState,seed)
4% pi=map_piq(DET); % time stationary initialization
5 pi=map_pie(DET); % interval stationary initialization
8 initState=min(find(r<=x));
9elseif length(initState)>1
13 initState=min(find(r<=x));
15RUNS=floor(nSamples/10000);
21 [S,L,F]=sub_map_sample(DET,10000,LS);
22 SAMPLES(end+1:end+length(S),1)=S(:);
23 LAST(end+1:end+length(L),1)=L(:);
24 FIRST(end+1:end+length(L),1)=F(:);
26[S,L,F]=sub_map_sample(DET,mod(nSamples,10000),LS);
27SAMPLES(end+1:end+length(S),1)=S(:);
28LAST(end+1:end+length(L),1)=L(:);
29FIRST(end+1:end+length(L),1)=F(:);
32function [SAMPLES,LAST,FIRST]=sub_map_sample(DET,nSamples,initState)
34nStates=length(DET{1});
38 p(i,b*nStates+j)=DET{b+1}(i,j)/abs(DET{1}(i,i));
47 cdf(i,:)=cumsum(p(i,:));
58 destState=find(cdf(curState,:)>=rand,1,
'first');
61 destState=destState-nStates;
69 maxpathlen=maxpathlen+5;
74holdTimes=-1./diag(DET{1});
80 H(find(
visits==i))=holdTimes(i);
85 SAMPLES=SAMPLES+(H(:,i));