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

Method test_pack

numpy/core/tests/test_simd.py:194–223  ·  view source on GitHub ↗

Pack multiple vectors into one Test intrinsics: npyv_pack_b8_b16 npyv_pack_b8_b32 npyv_pack_b8_b64

(self)

Source from the content-addressed store, hash-verified

192 assert bin_tobits == bin(data_bits)
193
194 def test_pack(self):
195 """
196 Pack multiple vectors into one
197 Test intrinsics:
198 npyv_pack_b8_b16
199 npyv_pack_b8_b32
200 npyv_pack_b8_b64
201 """
202 if self.sfx not in ("b16", "b32", "b64"):
203 return
204 # create the vectors
205 data = self._data()
206 rdata = self._data(reverse=True)
207 vdata = self._load_b(data)
208 vrdata = self._load_b(rdata)
209 pack_simd = getattr(self.npyv, f"pack_b8_{self.sfx}")
210 # for scalar execution, concatenate the elements of the multiple lists
211 # into a single list (spack) and then iterate over the elements of
212 # the created list applying a mask to capture the first byte of them.
213 if self.sfx == "b16":
214 spack = [(i & 0xFF) for i in (list(rdata) + list(data))]
215 vpack = pack_simd(vrdata, vdata)
216 elif self.sfx == "b32":
217 spack = [(i & 0xFF) for i in (2*list(rdata) + 2*list(data))]
218 vpack = pack_simd(vrdata, vrdata, vdata, vdata)
219 elif self.sfx == "b64":
220 spack = [(i & 0xFF) for i in (4*list(rdata) + 4*list(data))]
221 vpack = pack_simd(vrdata, vrdata, vrdata, vrdata,
222 vdata, vdata, vdata, vdata)
223 assert vpack == spack
224
225 @pytest.mark.parametrize("intrin", ["any", "all"])
226 @pytest.mark.parametrize("data", (

Callers

nothing calls this directly

Calls 2

_dataMethod · 0.95
_load_bMethod · 0.95

Tested by

no test coverage detected