コード例 #1
0
 def extend(self, keys=None, lower=True, upper=True, algorithm='linear'):
     # default algorithm
     if algorithm is None:
         algorithm = 'linear'
     # other algorithms?
     if algorithm != 'linear':
         LinVac.extend(self, keys, lower, upper, algorithm)
         return
     # number of undefined singletons?
     num_undefined = len(self.pspace) - len(self)
     if num_undefined == 0:
         # nothing to do
         return
     # sum probabilities over all defined singletons
     mass = sum(
         self.get(({
             omega: 1
         }, True), (0, 0))[0] for omega in self.pspace)
     # distribute remaining probability over remaining events
     remaining_mass = (1 - mass) / num_undefined
     value = (remaining_mass, remaining_mass)
     for omega in self.pspace:
         key = ({omega: 1}, True)
         if key not in self:
             self[key] = value
コード例 #2
0
ファイル: prob.py プロジェクト: gnustats/improb
 def extend(self, keys=None, lower=True, upper=True, algorithm='linear'):
     # default algorithm
     if algorithm is None:
         algorithm = 'linear'
     # other algorithms?
     if algorithm != 'linear':
         LinVac.extend(self, keys, lower, upper, algorithm)
         return
     # number of undefined singletons?
     num_undefined = len(self.pspace) - len(self)
     if num_undefined == 0:
         # nothing to do
         return
     # sum probabilities over all defined singletons
     mass = sum(self.get(({omega: 1}, True), (0, 0))[0]
                for omega in self.pspace)
     # distribute remaining probability over remaining events
     remaining_mass = (1 - mass) / num_undefined
     value = (remaining_mass, remaining_mass)
     for omega in self.pspace:
         key = ({omega: 1}, True)
         if key not in self:
             self[key] = value