Пример #1
0
	def testSparseReduce(self):
		ref_env = CPUEnvironment()

		tests = (
			(128, 16),
			(128, 1024 * 8),
			(50, 531),
			(40, 24),
			(457, 389),
			(457, 5)
		)

		for final_length, multiplier in tests:
			for dtype in (numpy.float32, numpy.complex64):
				data = getTestArray((final_length * multiplier,), dtype, 1)
				d_data = self.env.toDevice(data)
				ref_data = ref_env.toDevice(data)

				reduce = createReduce(self.env, dtype)
				ref_reduce = createReduce(ref_env, dtype)

				d_result = reduce.sparse(d_data, final_length=final_length)
				ref_result = ref_reduce.sparse(ref_data, final_length=final_length)

				self.assert_(diff(self.env.fromDevice(d_result),
					ref_env.fromDevice(ref_result)) < 1e-3)
Пример #2
0
	def testFullReduce(self):

		for size in (140, 512 * 512 + 150, 512 * 231):
			for dtype in (numpy.float32, numpy.complex64):
				data = getTestArray((size,), dtype, 1)
				d_data = self.env.toDevice(data)
				reduce = createReduce(self.env, dtype)

				# FIXME: for some reason, error here is very high
				# is it because of the many additions?
				self.assert_(diff(reduce(d_data), numpy.sum(data)) < 1e-3)