Пример #1
0
    def at_y(self, y):
        v0 = self[0]
        v1 = self[1]
        if v1 == v0:
            return 0.5

        t0 = (y - v0) / (v1 - v0)
        if 1:
            from solve_cubic_ext import solve_cubic
            tc = solve_cubic(t0, y, *self.points_y)
            #assert abs(self[tc]-y)<1e-10,`abs(self[tc]-y),tc,self[tc],y,t0,self[t0]`
        else:
            r = numpy.real_if_close(self._solve_cubic(y, *self.points_y),
                                    tol=1e5)
            tc = r[abs(r - t0).argmin()]
            if isinstance(tc, complex):
                tc = tc.real
            elif isinstance(tc, float):
                pass
            else:
                raise NotImplementedError( ` tc, type(tc) `)

            #assert abs(tc-t)<1e-10,`t0,tc,t,self[tc], self[t],y`

        return tc
Пример #2
0
 def at_y(self, y):
     dP1, dP2, P1, P2 = self.points_y
     from solve_cubic_ext import solve_cubic
     y0 = self[0]
     y1 = self[1]
     t0 = (y - y0) / (y1 - y0)
     tc = solve_cubic(t0, y, *self.points_y)
     return tc
Пример #3
0
 def at_y(self, y):
     dP1, dP2, P1, P2 = self.points_y
     from solve_cubic_ext import solve_cubic
     y0 = self[0]
     y1 = self[1]
     t0 = (y-y0)/(y1-y0)
     tc = solve_cubic(t0, y, *self.points_y)
     return tc
Пример #4
0
    def at_y(self, y):
        v0 = self[0]
        v1 = self[1]
        if v1==v0:
            return 0.5

        t0 = (y-v0)/(v1-v0)
        if 1:
            from solve_cubic_ext import solve_cubic
            tc = solve_cubic(t0, y, *self.points_y)
            #assert abs(self[tc]-y)<1e-10,`abs(self[tc]-y),tc,self[tc],y,t0,self[t0]`
        else:
            r = numpy.real_if_close(self._solve_cubic(y, *self.points_y), tol=1e5)
            tc = r[abs(r-t0).argmin()]
            if isinstance (tc, complex):
                tc = tc.real
            elif isinstance (tc, float):
                pass
            else:
                raise NotImplementedError (`tc, type(tc)`)

            #assert abs(tc-t)<1e-10,`t0,tc,t,self[tc], self[t],y`

        return tc