Exemplo n.º 1
0
def findPointOfHalfM(modelData, fract=0.5):
    M = modelData['m'][-1]
    Mfract = M * fract
    #i = lookupIndexBisect(M / 2.0, modelData['m'])
    rho = linInterp(Mfract, modelData['m'], modelData['rho'])
    r = linInterp(Mfract, modelData['m'], modelData['r'])
    p = linInterp(Mfract, modelData['m'], modelData['p'])

    return {'rho': rho, 'r': r, 'p': p}
Exemplo n.º 2
0
    def predict_conditionalParams(self, idx, t):
        # interpolate points off grid
        T = t.size()[0]
        b_linp = torch.zeros(T, 1, self.nLatent).type(float_type)
        A_linp = torch.zeros(T, self.nLatent, self.nLatent).type(float_type)
        for i in range(T):
            b_linp[i, :, :] = linInterp(t[i], self.b_grid[idx],
                                        self.t_grid[idx])
            A_linp[i, :, :] = linInterp(t[i], self.A_grid[idx],
                                        self.t_grid[idx])

        return A_linp, b_linp
Exemplo n.º 3
0
    def predict_marginals(self, idx, t):
        # function to evaluate GP at new points for trial idx
        # solve for m, S on grid
        m, S = self.solveForward_GaussMarkov_grid(self.initialMean[idx],
                                                  self.initialCov[idx], idx)

        # interpolate points off grid
        T = t.size()[0]
        m_linp = torch.zeros(T, 1, self.nLatent).type(float_type)
        S_linp = torch.zeros(T, self.nLatent, self.nLatent).type(float_type)
        for i in range(T):
            m_linp[i, :, :] = linInterp(t[i], m, self.t_grid[idx])
            S_linp[i, :, :] = linInterp(t[i], S, self.t_grid[idx])

        return m_linp, S_linp
Exemplo n.º 4
0
 def rhobFromEdCached(self, ed):
     """
     Does linear interpolation in logspace of self.cachedRhobVsEd
     to invert rhob from given ed
     """
     answer = linInterp(numpy.log10(ed),
                        self.cachedRhobVsEd[0],
                        self.cachedRhobVsEd[1])
     return numpy.power(10.0, answer)
Exemplo n.º 5
0
        def quantityOfSolveVar(x):
            #Here we construct the point to interpolate at, but we
            # must do it carefully since we don't know apriori what
            # solveVar is
            point = []
            #todo factor this for out of quantityOfSolveVar
            for indVar in self.indVars:
                if indVar not in pointDict:
                    #print "NOT", indVar
                    value = x
                else:
                    value = pointDict[indVar]
                    if indVar == 'logtemp':
                        value = pointAsFunctionOfSolveVar(x)
                #print indVar, value
                point.append(value)
            point = tuple(point)
            if setBetaEqInSolve:
#                tempPointDict = {self.indVars[i]: point[i]
#                                 for i in range(len(self.indVars)) if not self.indVars[i] == 'ye'}
                for i in range(len(self.indVars)):
                    print self.indVars[i]
                tempPointDict = []
                print "Should not have gotten to this point; debug me!"
                sys.exit()
                yeForSolve = linInterp(tempPointDict['logrho'],
                                       cachedBetaEqYeVsRhos[0],
                                       cachedBetaEqYeVsRhos[1])
                tempPointDict.update({'ye': yeForSolve})
                point = self.pointFromDict(tempPointDict)
                del tempPointDict
            answer = function(x, multidimInterp(point, indVarsTable,
                                                self.h5file[quantity][...],
                                                linInterp, 2)
                              ) - target
            return answer