MCPcopy Create free account
hub / github.com/NVIDIA/cuda-quantum / test_np_complex128_use

Function test_np_complex128_use

python/tests/kernel/test_kernel_complex.py:332–401  ·  view source on GitHub ↗

Test that we can use complex numbers inside kernel functions.

()

Source from the content-addressed store, hash-verified

330
331
332def test_np_complex128_use():
333 """Test that we can use complex numbers inside kernel functions."""
334
335 # Use a complex inside np in a kernel (sin)
336 @cudaq.kernel
337 def complex_np_use_real() -> float:
338 v = np.sin(np.complex128(np.pi / 2 + 1 + 1j))
339 return v.real
340
341 t = np.sin(np.complex128(np.pi / 2 + 1 + 1j)).real
342 assert is_close(t, complex_np_use_real())
343
344 @cudaq.kernel
345 def complex_np_use_imag() -> float:
346 v = np.sin(np.complex128(np.pi / 2 + 1 + 1j))
347 return v.imag
348
349 t = np.sin(np.complex128(np.pi / 2 + 1 + 1j)).imag
350 assert is_close(t, complex_np_use_imag())
351
352 # Use a complex inside np in a kernel (cos)
353 @cudaq.kernel
354 def complex_np_use_real() -> float:
355 v = np.cos(np.complex128(np.pi / 2 + 1 + 1j))
356 return v.real
357
358 t = np.cos(np.complex128(np.pi / 2 + 1 + 1j)).real
359 assert is_close(t, complex_np_use_real())
360
361 @cudaq.kernel
362 def complex_np_use_imag() -> float:
363 v = np.cos(np.complex128(np.pi / 2 + 1 + 1j))
364 return v.imag
365
366 t = np.cos(np.complex128(np.pi / 2 + 1 + 1j)).imag
367 assert is_close(t, complex_np_use_imag())
368
369 # Use a complex inside np in a kernel (sqrt)
370 @cudaq.kernel
371 def complex_np_use_real() -> float:
372 v = np.sqrt(np.complex128(np.pi / 2 + 1 + 1j))
373 return v.real
374
375 t = np.sqrt(np.complex128(np.pi / 2 + 1 + 1j)).real
376 assert is_close(t, complex_np_use_real())
377
378 @cudaq.kernel
379 def complex_np_use_imag() -> float:
380 v = np.sqrt(np.complex128(np.pi / 2 + 1 + 1j))
381 return v.imag
382
383 t = np.sqrt(np.complex128(np.pi / 2 + 1 + 1j)).imag
384 assert is_close(t, complex_np_use_imag())
385
386 # Use a complex inside np in a kernel (exp)
387 @cudaq.kernel
388 def complex_np_use_real() -> float:
389 v = np.exp(np.complex128(np.pi / 2 + 1 + 1j))

Callers

nothing calls this directly

Calls 3

complex_np_use_realFunction · 0.85
complex_np_use_imagFunction · 0.85
is_closeFunction · 0.70

Tested by

no test coverage detected