def function(self,p): height = p.size width = p.aspect_ratio*height return bitwise_or( bitwise_and(bitwise_and( (self.pattern_x-p.x1)<=p.x1+width/4.0, (self.pattern_x-p.x1)>=p.x1-width/4.0), bitwise_and( (self.pattern_y-p.y1)<=p.y1+width/4.0, (self.pattern_y-p.y1)>=p.y1-width/4.0)), bitwise_and(bitwise_and( (self.pattern_x-p.x2)<=p.x2+width/4.0, (self.pattern_x-p.x2)>=p.x2-width/4.0), bitwise_and( (self.pattern_y-p.y2)<=p.y2+width/4.0, (self.pattern_y-p.y2)>=p.y2-width/4.0)))
if myid == 0: print "Skipping product-reduce - try again with numproc < 20" pypar.raw_reduce(testArray, X, pypar.LAND, 0, 0) if myid == 0: Y = Numeric.ones(N) for i in range(numproc): Y = Numeric.logical_and(Y, Numeric.array(range(N))*(i+1)) assert Numeric.allclose(X, Y) print "Raw reduce using pypar.LAND OK" pypar.raw_reduce(testArray, X, pypar.BAND, 0, 0) if myid == 0: Y = Numeric.ones(N)*255 #Neutral element for & for i in range(numproc): Y = Numeric.bitwise_and(Y, Numeric.array(range(N))*(i+1)) assert Numeric.allclose(X, Y) print "Raw reduce using pypar.BAND OK" pypar.raw_reduce(testArray, X, pypar.LOR, 0, 0) if myid == 0: Y = Numeric.zeros(N) for i in range(numproc): Y = Numeric.logical_or(Y, Numeric.array(range(N))*(i+1)) assert Numeric.allclose(X, Y) print "Raw reduce using pypar.LOR OK" pypar.raw_reduce(testArray, X, pypar.BOR, 0, 0) if myid == 0: Y = Numeric.zeros(N) #Neutral element for | for i in range(numproc):
def function(self,p): height = p.size width = p.aspect_ratio*height return bitwise_and(abs(self.pattern_x)<=width/2.0, abs(self.pattern_y)<=height/2.0)