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

Function test_np_complex64_use

python/tests/kernel/test_kernel_complex.py:510–579  ·  view source on GitHub ↗

Test that we can use complex numbers inside kernel functions.

()

Source from the content-addressed store, hash-verified

508
509
510def test_np_complex64_use():
511 """Test that we can use complex numbers inside kernel functions."""
512
513 # Use a complex inside np in a kernel (sin)
514 @cudaq.kernel
515 def complex_np_use_real() -> np.float32:
516 v = np.sin(np.complex64((np.pi / 2. + 1) + 1j))
517 return v.real
518
519 t = np.sin(np.complex64((np.pi / 2. + 1) + 1j)).real
520 assert is_close(t, complex_np_use_real())
521
522 @cudaq.kernel
523 def complex_np_use_imag() -> np.float32:
524 v = np.sin(np.complex64((np.pi / 2. + 1) + 1j))
525 return v.imag
526
527 t = np.sin(np.complex64((np.pi / 2. + 1) + 1j)).imag
528 assert is_close(t, complex_np_use_imag())
529
530 # Use a complex inside np in a kernel (cos)
531 @cudaq.kernel
532 def complex_np_use_real() -> np.float32:
533 v = np.cos(np.complex64((np.pi / 2. + 1) + 1j))
534 return v.real
535
536 t = np.cos(np.complex64((np.pi / 2. + 1) + 1j)).real
537 assert is_close(t, complex_np_use_real())
538
539 @cudaq.kernel
540 def complex_np_use_imag() -> np.float32:
541 v = np.cos(np.complex64((np.pi / 2. + 1) + 1j))
542 return v.imag
543
544 t = np.cos(np.complex64((np.pi / 2. + 1) + 1j)).imag
545 assert is_close(t, complex_np_use_imag())
546
547 # Use a complex inside np in a kernel (sqrt)
548 @cudaq.kernel
549 def complex_np_use_real() -> np.float32:
550 v = np.sqrt(np.complex64((np.pi / 2. + 1) + 1j))
551 return v.real
552
553 t = np.sqrt(np.complex64((np.pi / 2. + 1) + 1j)).real
554 assert is_close(t, complex_np_use_real())
555
556 @cudaq.kernel
557 def complex_np_use_imag() -> np.float32:
558 v = np.sqrt(np.complex64((np.pi / 2. + 1) + 1j))
559 return v.imag
560
561 t = np.sqrt(np.complex64((np.pi / 2. + 1) + 1j)).imag
562 assert is_close(t, complex_np_use_imag())
563
564 # Use a complex inside np in a kernel (exp)
565 @cudaq.kernel
566 def complex_np_use_real() -> np.float32:
567 v = np.exp(np.complex64((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