def test_reginv(self): # make sure the fancy code is equal to the more literal, but slow way k = self.ref_kernel[10, 20].copy() lm = 8. x = slow_inv(k, lm) k = self.ref_kernel[10, 20].copy() xf = GU.regularized_inverse(k, lm) assert_array_almost_equal(x, xf)
def test_reginv(self): # make sure the fancy code is equal to the more literal, but slow way k = self.ref_kernel[10,20].copy() lm = 8. x = slow_inv(k, lm) k = self.ref_kernel[10,20].copy() xf = GU.regularized_inverse(k, lm) assert_array_almost_equal(x, xf)
def test_getkernel(self): (ns, M2, M1) = self.fmap.shape N2 = M2 fmap = np.swapaxes(self.fmap, -1, -2) chi = np.swapaxes(self.chi, -1, -2) b = np.arange(M2) - M2 / 2 n2 = np.arange(M2) - M2 / 2 Tl = 0.000742 K = GU.get_kernel(M2, Tl, b, n2, fmap, chi) assert_array_almost_equal(K, self.ref_kernel)
def test_getkernel(self): (ns, M2, M1) = self.fmap.shape N2 = M2 fmap = np.swapaxes(self.fmap, -1, -2) chi = np.swapaxes(self.chi, -1, -2) b = np.arange(M2)-M2/2 n2 = np.arange(M2)-M2/2 Tl = 0.000742 K = GU.get_kernel(M2, Tl, b, n2, fmap, chi) assert_array_almost_equal(K, self.ref_kernel)
def test_invspeed(self): nsl, nfe = self.ref_kernel.shape[:2] lm = 8.0 slcs = range(nsl) cols = range(nfe) t0_slow = time.time() for s in slcs: for fe in cols: ik = slow_inv(self.ref_kernel[s, fe], lm) tf_slow = time.time() t0_fast = time.time() for s in slcs: for fe in cols: ik = GU.regularized_inverse(self.ref_kernel[s, fe], lm) tf_fast = time.time() print "literal numpy solution for %d inverses: %2.4fs" % ( nsl * nfe, tf_slow - t0_slow) print "slick solution for %d inverses: %2.4fs" % (nsl * nfe, tf_fast - t0_fast) print "speedup:", (tf_slow - t0_slow) / (tf_fast - t0_fast)
def test_invspeed(self): nsl, nfe = self.ref_kernel.shape[:2] lm = 8.0 slcs = range(nsl) cols = range(nfe) t0_slow = time.time() for s in slcs: for fe in cols: ik = slow_inv(self.ref_kernel[s,fe], lm) tf_slow = time.time() t0_fast = time.time() for s in slcs: for fe in cols: ik = GU.regularized_inverse(self.ref_kernel[s,fe], lm) tf_fast = time.time() print "literal numpy solution for %d inverses: %2.4fs"%(nsl*nfe, tf_slow-t0_slow) print "slick solution for %d inverses: %2.4fs"%(nsl*nfe, tf_fast-t0_fast) print "speedup:", (tf_slow-t0_slow)/(tf_fast-t0_fast)