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

Method test_mask_conditional

numpy/core/tests/test_simd.py:1255–1288  ·  view source on GitHub ↗

Conditional addition and subtraction for all supported data types. Test intrinsics: npyv_ifadd_##SFX, npyv_ifsub_##SFX

(self)

Source from the content-addressed store, hash-verified

1253 assert vsum == data_sum
1254
1255 def test_mask_conditional(self):
1256 """
1257 Conditional addition and subtraction for all supported data types.
1258 Test intrinsics:
1259 npyv_ifadd_##SFX, npyv_ifsub_##SFX
1260 """
1261 vdata_a = self.load(self._data())
1262 vdata_b = self.load(self._data(reverse=True))
1263 true_mask = self.cmpeq(self.zero(), self.zero())
1264 false_mask = self.cmpneq(self.zero(), self.zero())
1265
1266 data_sub = self.sub(vdata_b, vdata_a)
1267 ifsub = self.ifsub(true_mask, vdata_b, vdata_a, vdata_b)
1268 assert ifsub == data_sub
1269 ifsub = self.ifsub(false_mask, vdata_a, vdata_b, vdata_b)
1270 assert ifsub == vdata_b
1271
1272 data_add = self.add(vdata_b, vdata_a)
1273 ifadd = self.ifadd(true_mask, vdata_b, vdata_a, vdata_b)
1274 assert ifadd == data_add
1275 ifadd = self.ifadd(false_mask, vdata_a, vdata_b, vdata_b)
1276 assert ifadd == vdata_b
1277
1278 if not self._is_fp():
1279 return
1280 data_div = self.div(vdata_b, vdata_a)
1281 ifdiv = self.ifdiv(true_mask, vdata_b, vdata_a, vdata_b)
1282 assert ifdiv == data_div
1283 ifdivz = self.ifdivz(true_mask, vdata_b, vdata_a)
1284 assert ifdivz == data_div
1285 ifdiv = self.ifdiv(false_mask, vdata_a, vdata_b, vdata_b)
1286 assert ifdiv == vdata_b
1287 ifdivz = self.ifdivz(false_mask, vdata_a, vdata_b)
1288 assert ifdivz == self.zero()
1289
1290bool_sfx = ("b8", "b16", "b32", "b64")
1291int_sfx = ("u8", "s8", "u16", "s16", "u32", "s32", "u64", "s64")

Callers

nothing calls this directly

Calls 3

_is_fpMethod · 0.80
_dataMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected