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

Method test_arithmetic_fused

numpy/core/tests/test_simd.py:367–390  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

365 To test all float vector types at once
366 """
367 def test_arithmetic_fused(self):
368 vdata_a, vdata_b, vdata_c = [self.load(self._data())]*3
369 vdata_cx2 = self.add(vdata_c, vdata_c)
370 # multiply and add, a*b + c
371 data_fma = self.load([a * b + c for a, b, c in zip(vdata_a, vdata_b, vdata_c)])
372 fma = self.muladd(vdata_a, vdata_b, vdata_c)
373 assert fma == data_fma
374 # multiply and subtract, a*b - c
375 fms = self.mulsub(vdata_a, vdata_b, vdata_c)
376 data_fms = self.sub(data_fma, vdata_cx2)
377 assert fms == data_fms
378 # negate multiply and add, -(a*b) + c
379 nfma = self.nmuladd(vdata_a, vdata_b, vdata_c)
380 data_nfma = self.sub(vdata_cx2, data_fma)
381 assert nfma == data_nfma
382 # negate multiply and subtract, -(a*b) - c
383 nfms = self.nmulsub(vdata_a, vdata_b, vdata_c)
384 data_nfms = self.mul(data_fma, self.setall(-1))
385 assert nfms == data_nfms
386 # multiply, add for odd elements and subtract even elements.
387 # (a * b) -+ c
388 fmas = list(self.muladdsub(vdata_a, vdata_b, vdata_c))
389 assert fmas[0::2] == list(data_fms)[0::2]
390 assert fmas[1::2] == list(data_fma)[1::2]
391
392 def test_abs(self):
393 pinf, ninf, nan = self._pinfinity(), self._ninfinity(), self._nan()

Callers

nothing calls this directly

Calls 3

_dataMethod · 0.45
addMethod · 0.45
mulMethod · 0.45

Tested by

no test coverage detected