Example #1
0
 def reverse_cumulative_obs_potentials(self,tblock):
     t = self.segmentstarts[tblock] + self.segmentlens[tblock]
     possible_durations = rcumsum(self.segmentlens[:tblock+1])[-TRUNC if TRUNC is not None else None:]
     return np.hstack([hmm.reverse_cumulative_obs_potentials(self.aBls[state][:t],self,t)\
             [-possible_durations][:,na]
             # [possible_durations -1][:,na]
             for state, hmm in enumerate(self.model.HMMs)])
Example #2
0
 def mf_reverse_cumulative_obs_potentials(self,tblock):
     return rcumsum(self.mf_aBl[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:]
Example #3
0
 def reverse_dur_survival_potentials(self,tblock):
     # NOTE: untested, unused
     max_dur = rcumsum(self.segmentlens[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:][0]
     return self.aDsl[max_dur -1]
Example #4
0
 def mf_reverse_cumulative_obs_potentials(self,t):
     start = 0 if self.trunc is None else max(0,t-self.trunc+1)
     return rcumsum(self.mf_aBl[start:t+1])
Example #5
0
 def expected_log_sf(self,x):
     x = np.atleast_1d(x).astype('int32')
     assert x.ndim == 1
     inf = max(2*x.max(),2*1000) # approximately infinity, we hope
     return rcumsum(self.expected_log_pmf(np.arange(1,inf)),strict=True)[x]
Example #6
0
 def _grad_log_p_beta(beta,alpha):
     # NOTE: switched argument name gamma <-> alpha
     return  -(alpha-1)*rcumsum(1./(1-cumsum(beta))) \
             + 2*rcumsum(1./(1-cumsum(beta,strict=True)),strict=True)
Example #7
0
 def _grad_log_p_beta(beta,alpha):
     # NOTE: switched argument name gamma <-> alpha
     return  -(alpha-1)*rcumsum(1./(1-cumsum(beta))) \
             + 2*rcumsum(1./(1-cumsum(beta,strict=True)),strict=True)
Example #8
0
 def mf_reverse_dur_potentials(self,tblock):
     possible_durations = rcumsum(self.segmentlens[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:]
     return self.mf_aDl[possible_durations -1]
Example #9
0
 def reverse_dur_survival_potentials(self,tblock):
     # NOTE: untested, unused
     max_dur = rcumsum(self.segmentlens[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:][0]
     return self.aDsl[max_dur -1]
Example #10
0
 def mf_reverse_cumulative_obs_potentials(self,tblock):
     return rcumsum(self.mf_aBl[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:]
Example #11
0
 def mf_reverse_cumulative_obs_potentials(self,t):
     start = 0 if self.trunc is None else max(0,t-self.trunc+1)
     return rcumsum(self.mf_aBl[start:t+1])
Example #12
0
 def reverse_dur_survival_potentials(self,tblock):
     max_dur = rcumsum(self.segmentlens[:tblock+1])[-TRUNC if TRUNC is not None else None:][0]
     return self.aDsl[max_dur -1]
Example #13
0
 def reverse_dur_potentials(self,tblock):
     possible_durations = rcumsum(self.segmentlens[:tblock+1])[-TRUNC if TRUNC is not None else None:]
     return self.aDl[possible_durations -1]
Example #14
0
 def mf_reverse_dur_potentials(self,tblock):
     possible_durations = rcumsum(self.segmentlens[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:]
     return self.mf_aDl[possible_durations -1]
Example #15
0
 def mf_reverse_dur_survival_potentials(self,tblock):
     max_dur = rcumsum(self.segmentlens[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:][0]
     return self.mf_aDsl[max_dur -1]
Example #16
0
 def mf_reverse_dur_survival_potentials(self,tblock):
     max_dur = rcumsum(self.segmentlens[:tblock+1])\
             [-self.trunc if self.trunc is not None else None:][0]
     return self.mf_aDsl[max_dur -1]
Example #17
0
 def expected_log_sf(self, x):
     x = np.atleast_1d(x).astype('int32')
     assert x.ndim == 1
     inf = max(2 * x.max(), 2 * 1000)  # approximately infinity, we hope
     return rcumsum(self.expected_log_pmf(np.arange(1, inf)),
                    strict=True)[x]