- [BETA]
virtual_distillation
: Added error mitigation algorithm based on virtual distillation, which reduces quantum noise by creating virtual copies of quantum states and performing measurements on an entangled system. - [BETA]
QuantumNeuron
: Added quantum neuron implementation based on Repeat-Until-Success (RUS) strategy, which simulates classical neuron behavior through quantum circuits by applying non-linear function rotations. - [STABLE]
qjpeg
: Added quantum image compression algorithm based on quantum Fourier transform, which can compress quantum images by reducing the number of qubits while preserving key information in the frequency domain. - [STABLE]
cnry_decompose
: Added decomposition for CnRY gate. - [STABLE]
cnrz_decompose
: Added decomposition for CnRZ gate. - [STABLE]
BSB
: Added GPU acceleration support for Ballistic Simulated Bifurcation algorithm with the three precision options:'cpu-float32'
,'gpu-float16'
,'gpu-int8'
. - [STABLE]
DSB
: Added GPU acceleration support for Discrete Simulated Bifurcation algorithm with the three precision options:'cpu-float32'
,'gpu-float16'
,'gpu-int8'
. - [STABLE]
qudit_symmetric_encoding
: Added qudit encoding functionality that maps d-level quantum states to qubit states through symmetric encoding, enabling efficient simulation of higher-dimensional quantum systems on standard qubit-based quantum computers. - [STABLE]
qudit_symmetric_decoding
: This feature introduces the ability to decode qubit symmetric states or matrices into qudit states or matrices, thereby enhancing the support for multi-level quantum systems. The decoding process involves transforming symmetric qubit states into corresponding qudit states, which facilitates efficient simulation of higher-dimensional quantum systems on standard qubit-based quantum computers. - [STABLE]
qutrit_symmetric_ansatz
: Introduced a qutrit symmetric ansatz that constructs a qubit ansatz preserving the symmetry of encoding for arbitrary qutrit gates. This feature allows for efficient simulation of higher-dimensional quantum systems on standard qubit-based quantum computers by leveraging symmetry-preserving transformations. The ansatz supports decomposition into"zyz"
or"u3"
basis and can optionally include a global phase.
- [STABLE]
MeasureResult.to_json
: for measurement result serialization and storage - [STABLE]
MeasureResult.reverse_endian
: reverse bit order in measurement results, enabling flexible endianness handling for quantum state readouts
- [STABLE]
mat_to_op
: Added function to convert matrix toQubitOperator
, supporting both little-endian and big-endian qubit ordering for seamless integration with different quantum computing frameworks.
- [STABLE] Added
Circuit.from_qcis()
andCircuit.to_qcis()
functions for QCIS format conversion - [STABLE] Added
__eq__
and__ne__
methods for circuit comparison - [STABLE]
Circuit.depth()
: Added function to calculate quantum circuit depth with options to include single-qubit gates and align gates to barriers.
- [STABLE]
QCIS
: Added quantum circuit and QCIS format conversion class
- [IMPORTANT] The byte order of
keys
andsamples
inMeasureResult
has been unified to little-endian. If your code uses these attributes, please carefully check and use the newly addedreverse_endian
method to adjust if needed.
PR2497
: Fixed potential parameter name duplication in Amplitude Encoder.PR2410
: Fixedis_measure_end
error that returnedTrue
even without measurement operations.PR2410
: Fixed incorrect calculation results after reversing qubit order in two-qubit gates.PR2377
: Fixed recursive error inDAGCircuit
when processing deep circuits, now supporting arbitrary depth circuits.PR2345
: Fixed calculation error inmqmatrix
'sget_expectation_with_grad
method when processing batch Hamiltonians and added test cases.PR2345
: Fixed error when usingreverse_qubits
with gates not added in specified order.PR2345
: Fixed error inFermionOperator.hermitian()
example code.PR2319
: Fixed measurement error in Stabilizer simulator.PR2319
: Fixed seed not properly applied in Stabilizer simulator.PR2319
: Added verification for bit string correctness in Stabilizer simulator output.PR2315
: Made MQSim and Hamiltonian serializable, supporting Python multiprocessing.PR2309
: Fixed missing imaginary terms and coefficients in some QAOA ansatzes.PR2309
: Fixed non-workingQAOAAnsatz
example.PR2309
: Modified parameter names in ansatz circuits to match formulas.PR2296
: Fixed index error inkron_factor_4x4_to_2x2s()
return values, ensuring correctness of two-qubit gate decomposition functionkak_decompose
.PR2285
: Removed unnecessary output during gradient computation.
- Optimized first-time quantum circuit execution speed for improved performance.
- Improved precision of
params_zyz()
function, enhancing ZYZ decomposition accuracy. - Removed warning for uninstalled
mqvector_gpu
, now only prompting when used. - Removed warning for uninstalled SQKQuantum, now only prompting when used.
- Added warning when Hamiltonian contains imaginary parts, alerting users to potential calculation anomalies.
- Enhanced clarity of warning messages when SQKQuantum is not installed.
- Changed
pip
source to sqk mirror.
- [STABLE]
Arbitrary axis rotation
: New single-qubit gates for arbitrary axis rotation on the Bloch sphereRn
。 - [STABLE]
matrix
: The quantum gate supports retrieving its complete matrix representation by using the interface and specifying the parameterfull=True
. This matrix representation is influenced by the target qubit and the control qubit, if applicable. - [STABLE]
Terminal relaxation channel
: Add ThermalRelaxationChannel. - [Alpha]
Quantum measurement
: The measurement gate now supports qubit reset functionality, allowing the measured quantum state to be reset to the |0⟩ state or the |1⟩ state. The execution speed of the measurement gate has been optimized for improved performance. - [STABLE]
RotPauliString
: Add arbitrary pauli string rotation gate. - [STABLE]
GroupedPauli
: Add Pauli combination gate. This gate allows for faster execution compared to individually applying single Pauli gates. - [STABLE]
GroupedPauliChannel
: Add Pauli combination channel. This channel allows for faster execution compared to applying Pauli channels individually. - [STABLE]
SX
: Add sqrt X gate. - [STABLE]
Givens
: Add Givens rotation gate.
- [STABLE]
summary
: The summary information of the quantum circuit displayed through this interface will be presented in a table format, making it more visually appealing and straightforward. - [STABLE]
svg
: Scaling the svg of quantum circuit by settingscale
of this API. - [STABLE]
openqasm
: Directly convert quantum circuit toopenqasm
or convertopenqasm
to a sqkquantum circuit.
- [STABLE]
PRGenerator
:new
is able to set temporary prefix of suffix.
- [STABLE]
Hardware efficient ansatz
: Add more hardware efficient ansatz, please refers to Physics-Constrained Hardware-Efficient Ansatz on Quantum Computers that is Universal, Systematically Improvable, and Size-consistent。
- [STABLE]
QubitsTopology
: Enable to set color of edge by set_edge_color. Enable to display the topology withshow
.
- [STABLE]
sampling
: Improve the sampling speed for quantum circuit without noise and all measurement only at end.
- [STABLE]
Progress bar
: Add two easily used progress bar based on rich, which areSingleLoopProgress
andTwoLoopsProgress
。 - [Alpha] [random_insert_gates]: Enable to randomly insert quantum gate into a quantum circuit.
- [Alpha]
MQSABRE
: A new qubit mapping algorithm that enable to set fidelity of quantum gate.
PR1971
: Fix sign bug inamplitude_encoder
.PR2094
: Fix the issue of randomness in theget_expectation_with_grad
method when using the parameter shift rule.PR2164
: Fixed an issue with passing parameters in the build script on Windows systems.PR2171
: Fixed a potential null pointer issue with the density matrix simulator when copying quantum states.PR2175
: Fixed an issue with negative probabilities for Pauli channels.PR2176
: Fixed an issue with the parameter shift rule when dealing with controlled quantum gates.PR2210
: Fixed an issue with the parameter shift rule when dealing with multi-parameter gates with some of them are constant.