def test_input_indices_same_inputs(self): A = cl.array.to_device(self.queue,numpy.array(range(5)*2).astype('float32')) B = cl.array.empty_like(A) differ = symbolic.map(self.ctx,self.differece, input=[A,A], output=[B], input_indices=lambda n,i,j: [i+1,i-1], ) differ() self.assertEqual(list(B.get()), [1., 2., 2., 2.,-3.,-3., 2., 2., 2.,1.] )
def test_reverse(self): A = cl.array.to_device(self.queue,numpy.arange(0,10).astype('float32')) B = cl.array.empty_like(A) noper = symbolic.map(self.ctx,self.nop, input=[A], output=[B], iterations=1, output_indices=lambda n,i,j: [n-i-1], ) noper() self.assertEqual(list(B.get()),range(9,-1,-1))
def test_oddeven(self): A = cl.array.to_device(self.queue,numpy.array(range(5)*2).astype('float32')) B = cl.array.empty_like(A) C = cl.array.empty_like(A) noper = symbolic.map(self.ctx,self.nop, input=[A], output=[B,B], output_indices=lambda n,i,j: [(2*i)%n,(2*i+1)%n], ) noper() self.assertEqual(list(B.get()),[0,0,1,2,2,4,3,6,4,8])