mindquantum.utils
Utils.
- mindquantum.utils.fdopen(fname, mode, perms=420)[source]
Context manager for opening files with correct permissions.
- mindquantum.utils.ket_string(state, tol=1e-07)[source]
Get the ket format of the quantum state.
- Parameters
state (numpy.ndarray) – The input quantum state.
tol (float) – The ignore tolence for small amplitude. Default: 1e-7.
- Returns
str, the ket format of the quantum state.
Examples
>>> import numpy as np >>> from mindquantum.utils import ket_string >>> state = np.array([1, -1j])/np.sqrt(2) >>> print(ket_string(state)) ['√2/2¦0⟩', '-√2/2j¦1⟩']
- mindquantum.utils.mod(vec_in, axis=0)[source]
Calculate the mod of input vectors.
- Parameters
vec_in (Union[list[numbers.Number], numpy.ndarray]) – The vector you want to calculate mod.
axis (int) – Along which axis you want to calculate mod. Default: 0.
- Returns
numpy.ndarray, The mod of input vector.
Examples
>>> from mindquantum.utils import mod >>> vec_in = np.array([[1, 2, 3], [4, 5, 6]]) >>> mod(vec_in) array([[4.12310563, 5.38516481, 6.70820393]]) >>> mod(vec_in, 1) array([[3.74165739], [8.77496439]])
- mindquantum.utils.normalize(vec_in, axis=0)[source]
Normalize the input vectors based on specified axis.
- Parameters
vec_in (Union[list[number], numpy.ndarray]) – Vector you want to normalize.
axis (int) – Along which axis you want to normalize your vector. Default: 0.
- Returns
numpy.ndarray, Vector after normalization.
Examples
>>> from mindquantum.utils import normalize >>> vec_in = np.array([[1, 2, 3], [4, 5, 6]]) >>> normalize(vec_in) array([[0.24253563, 0.37139068, 0.4472136 ], [0.9701425 , 0.92847669, 0.89442719]]) >>> normalize(vec_in, 1) array([[0.26726124, 0.53452248, 0.80178373], [0.45584231, 0.56980288, 0.68376346]])
- mindquantum.utils.random_circuit(n_qubits, gate_num, sd_rate=0.5, ctrl_rate=0.2, seed=None)[source]
Generate a random circuit.
- Parameters
Examples
>>> from mindquantum.utils import random_circuit >>> random_circuit(3, 4, 0.5, 0.5, 100) q1: ──Z────RX(0.944)────────●────────RX(-0.858)── │ │ │ │ q2: ──●────────●────────RZ(-2.42)────────●───────
- mindquantum.utils.random_state(shapes, norm_axis=0, comp=True, seed=None)[source]
Generate some random quantum state.
- Parameters
shapes (tuple) – shapes = (m, n) means m quantum states with each state formed by \(\log_2(n)\) qubits.
norm_axis (int) – which axis you want to apply normalization. Default: 0.
comp (bool) – if True, each amplitude of the quantum state will be a complex number. Default: True.
seed (int) – the random seed. Default: None.
- Returns
numpy.ndarray, A normalized random quantum state.
Examples
>>> from mindquantum.utils import random_state >>> random_state((2, 2), seed=42) array([[0.44644744+0.18597239j, 0.66614846+0.10930256j], [0.87252821+0.06923499j, 0.41946926+0.60691409j]])