MCPcopy Index your code
hub / github.com/numpy/numpy / test_pack

Method test_pack

numpy/_core/tests/test_simd.py:199–228  ·  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

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

Callers

nothing calls this directly

Calls 2

_dataMethod · 0.95
_load_bMethod · 0.95

Tested by

no test coverage detected