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

Function test_complex_use

python/tests/kernel/test_kernel_complex.py:154–223  ·  view source on GitHub ↗

Test that we can use complex numbers inside kernel functions.

()

Source from the content-addressed store, hash-verified

152
153
154def test_complex_use():
155 """Test that we can use complex numbers inside kernel functions."""
156
157 # Use a complex inside np in a kernel (sin)
158 @cudaq.kernel
159 def complex_np_use_real() -> float:
160 v = np.sin(np.pi / 2 + 0j)
161 return v.real
162
163 t = np.sin(np.pi / 2 + 0j).real
164 assert is_close(t, complex_np_use_real())
165
166 @cudaq.kernel
167 def complex_np_use_imag() -> float:
168 v = np.sin(np.pi / 2 + 0j)
169 return v.imag
170
171 t = np.sin(np.pi / 2 + 0j).imag
172 assert is_close(t, complex_np_use_imag())
173
174 # Use a complex inside np in a kernel (cos)
175 @cudaq.kernel
176 def complex_np_use_real() -> float:
177 v = np.cos(np.pi / 2 + 0j)
178 return v.real
179
180 t = np.cos(np.pi / 2 + 0j).real
181 assert is_close(t, complex_np_use_real())
182
183 @cudaq.kernel
184 def complex_np_use_imag() -> float:
185 v = np.cos(np.pi / 2 + 0j)
186 return v.imag
187
188 t = np.cos(np.pi / 2 + 0j).imag
189 assert is_close(t, complex_np_use_imag())
190
191 # Use a complex inside np in a kernel (sqrt)
192 @cudaq.kernel
193 def complex_np_use_real() -> float:
194 v = np.sqrt(np.pi / 2 + 0j)
195 return v.real
196
197 t = np.sqrt(np.pi / 2 + 0j).real
198 assert is_close(t, complex_np_use_real())
199
200 @cudaq.kernel
201 def complex_np_use_imag() -> float:
202 v = np.sqrt(np.pi / 2 + 0j)
203 return v.imag
204
205 t = np.sqrt(np.pi / 2 + 0j).imag
206 assert is_close(t, complex_np_use_imag())
207
208 # Use a complex inside np in a kernel (exp)
209 @cudaq.kernel
210 def complex_np_use_real() -> float:
211 v = np.exp(np.pi / 2 + 0j)

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