MCPcopy Create free account
hub / github.com/numpy/numpy / test_max_min

Method test_max_min

numpy/core/tests/test_simd.py:487–554  ·  view source on GitHub ↗

Test intrinsics: npyv_max_##sfx npyv_maxp_##sfx npyv_maxn_##sfx npyv_min_##sfx npyv_minp_##sfx npyv_minn_##sfx npyv_reduce_max_##sfx npyv_reduce_maxp_##sfx npyv_reduce_maxn_##sfx

(self, intrin)

Source from the content-addressed store, hash-verified

485 "max", "maxp", "maxn", "min", "minp", "minn"
486 ])
487 def test_max_min(self, intrin):
488 """
489 Test intrinsics:
490 npyv_max_##sfx
491 npyv_maxp_##sfx
492 npyv_maxn_##sfx
493 npyv_min_##sfx
494 npyv_minp_##sfx
495 npyv_minn_##sfx
496 npyv_reduce_max_##sfx
497 npyv_reduce_maxp_##sfx
498 npyv_reduce_maxn_##sfx
499 npyv_reduce_min_##sfx
500 npyv_reduce_minp_##sfx
501 npyv_reduce_minn_##sfx
502 """
503 pinf, ninf, nan = self._pinfinity(), self._ninfinity(), self._nan()
504 chk_nan = {"xp": 1, "np": 1, "nn": 2, "xn": 2}.get(intrin[-2:], 0)
505 func = eval(intrin[:3])
506 reduce_intrin = getattr(self, "reduce_" + intrin)
507 intrin = getattr(self, intrin)
508 hf_nlanes = self.nlanes//2
509
510 cases = (
511 ([0.0, -0.0], [-0.0, 0.0]),
512 ([10, -10], [10, -10]),
513 ([pinf, 10], [10, ninf]),
514 ([10, pinf], [ninf, 10]),
515 ([10, -10], [10, -10]),
516 ([-10, 10], [-10, 10])
517 )
518 for op1, op2 in cases:
519 vdata_a = self.load(op1*hf_nlanes)
520 vdata_b = self.load(op2*hf_nlanes)
521 data = func(vdata_a, vdata_b)
522 simd = intrin(vdata_a, vdata_b)
523 assert simd == data
524 data = func(vdata_a)
525 simd = reduce_intrin(vdata_a)
526 assert simd == data
527
528 if not chk_nan:
529 return
530 if chk_nan == 1:
531 test_nan = lambda a, b: (
532 b if math.isnan(a) else a if math.isnan(b) else b
533 )
534 else:
535 test_nan = lambda a, b: (
536 nan if math.isnan(a) or math.isnan(b) else b
537 )
538 cases = (
539 (nan, 10),
540 (10, nan),
541 (nan, pinf),
542 (pinf, nan),
543 (nan, nan)
544 )

Callers

nothing calls this directly

Calls 5

_pinfinityMethod · 0.80
_ninfinityMethod · 0.80
_nanMethod · 0.80
funcFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected