def test_empty(self): speeds = num.zeros((0, 0)) times = num.zeros((0, 0)) delta = 1.0 with self.assertRaises(eikonal_ext.EikonalExtError): eikonal_ext.eikonal_solver_fmm_cartesian(speeds, times, delta)
def test_empty(self): speeds = num.zeros((0, 0)) times = num.zeros((0, 0)) delta = 1.0 with self.assertRaises(eikonal_ext.EikonalExtError): eikonal_ext.eikonal_solver_fmm_cartesian(speeds, times, delta)
def test_nd(self): ndim_max = 3 n = 51 for ndim in range(1, ndim_max + 2): shape = (n, ) * ndim speeds = num.ones(shape) times = num.zeros(shape) - 1.0 delta = 2.0 / (n - 1) iseed = tuple(i // 2 for i in shape) times[iseed] = 0.0 if ndim <= ndim_max: @benchmark.labeled('test_nd: %iD' % ndim) def run(): eikonal_ext.eikonal_solver_fmm_cartesian( speeds, times, delta) run() fshapes = [] for idim in range(ndim): fshape = [1] * ndim fshape[idim] = n fshapes.append(tuple(fshape)) xs = [ num.linspace(-1.0, 1.0, n).reshape(fshape) for fshape in fshapes ] times_ref = num.sqrt(sum(x**2 for x in xs)) assert num.max(num.abs(times-times_ref)) \ < 1e6 + (ndim-1) * delta else: with self.assertRaises(eikonal_ext.EikonalExtError): eikonal_ext.eikonal_solver_fmm_cartesian( speeds, times, delta)
def test_nd(self): ndim_max = 3 n = 51 for ndim in range(1, ndim_max+2): shape = (n,) * ndim speeds = num.ones(shape) times = num.zeros(shape) - 1.0 delta = 2.0 / (n-1) iseed = tuple(i//2 for i in shape) times[iseed] = 0.0 if ndim <= ndim_max: @benchmark.labeled('test_nd: %iD' % ndim) def run(): eikonal_ext.eikonal_solver_fmm_cartesian( speeds, times, delta) run() fshapes = [] for idim in range(ndim): fshape = [1] * ndim fshape[idim] = n fshapes.append(tuple(fshape)) xs = [ num.linspace(-1.0, 1.0, n).reshape(fshape) for fshape in fshapes] times_ref = num.sqrt(sum(x**2 for x in xs)) assert num.max(num.abs(times-times_ref)) \ < 1e6 + (ndim-1) * delta else: with self.assertRaises(eikonal_ext.EikonalExtError): eikonal_ext.eikonal_solver_fmm_cartesian( speeds, times, delta)
def run(): eikonal_ext.eikonal_solver_fmm_cartesian( speeds, times, delta)
def fm(): eikonal_ext.eikonal_solver_fmm_cartesian(speeds, times_fm, delta)
def run(): eikonal_ext.eikonal_solver_fmm_cartesian( speeds, times, delta)
def fm(): eikonal_ext.eikonal_solver_fmm_cartesian(speeds, times_fm, delta)