-
Fix installation issue with tensorflow requirements on MACOS with M1 chip
-
Improve M1 macOS compayibility with unjit tensorflow ops
-
Fixed SVD backprop bug on jax backend of wide matrix
-
mps_input
dtype auto correction enabled
-
Add
quoperator
method to getQuOperator
representation of the circuit unitary -
Add
coo_sparse_matrix_from_numpy
method on backend, where the scipy coo matrix is converted to sparse tensor in corresponding backend -
Add sparse tensor to scipy coo matrix implementation in
numpy
method
tc.quantum.PauliStringSum2COO
,tc.quantum.PauliStringSum2Dense
, andtc.quantum.heisenberg_hamiltonian
now return the tensor in current backend format ifnumpy
option sets to False. (Breaking change: previously, the return are fixed in TensorFlow format)
DMCircuit
also supports array instead of gate as the operator
-
fix translation issue to qiskit when the input parameter is in numpy form
-
type conversion in measure API when high precision is set
-
fix bug in to_qiskit with new version qiskit
- Add
eigvalsh
method on backend
-
post_select
method return the measurement result int tensor now, consistent withcond_measure
-
Circuit.measure
now point tomeasure_jit
-
Add
expectation_ps
method forDMCircuit
-
Add
measure
andsample
forDMCircuit
-
With
Circuit.vis_tex
, for the Circuit has customized input state, the default visualization is psi instead of all zeros now -
general_kraus
is synced withapply_general_kraus
forDMCircuit
-
Fix dtype incompatible issue in kraus methods between status and prob
-
add
utils.append
to build function pipeline -
add
mean
method on backends -
add trigonometric methods on backends
-
add
conditional_gate
to support quantum ops based on previous measurment results -
add
expectation_ps
as shortcut to get Pauli string expectation -
add
append
andprepend
to compose circuits -
add
matrix
method to get the circuit unitary matrix
-
change the return information of
unitary_kraus
andgeneral_kraus
methods -
add alias for any gate as unitary
- add QuOperator convert tools which can convert MPO in the form of TensorNetwork and Quimb into MPO in the form of QuOperator
- quantum Hamiltonian generation now support the direct return of numpy form matrix
- unitary_kraus and general_kraus API now supports the mix input of array and Node as kraus list
-
add gradient free scipy interface for optimization
-
add qiskit circuit to tensorcircuit circuit methods
-
add draw method on circuit from qiskit transform pipeline
-
futher refactor VQNHE code in applications
-
add alias
sample
forperfect_sampling
method -
optimize VQNHE pipeline for a more stable training loop (breaking changes in some APIs)
- Circuit inputs will convert to tensor first
-
add sigmoid method on backends
-
add MPO expectation template function for MPO evaluation on circuit
-
add
operator_expectation
in templates.measurements for a unified expectation interface -
add
templates.chems
module for interface between tc and openfermion on quantum chemistry related tasks -
add tc.Circuit to Qiskit QuantumCircuit transformation
-
fix the bug in QuOperator.from_local_tensor where the dtype should always be in numpy context
-
fix MPO copy when apply MPO gate on the circuit
- allow multi-qubit gate in multicontrol gate
-
new universal contraction analyse tools and pseudo contraction rehearsals for debug
-
add
gather1d
method on backends for 1d tensor indexing -
add
dataset
module in template submodule for dataset preprocessing and embedding -
MPO format quantum gate is natively support now
-
add multicontrol gates in MPO format
- fixed real operation on some methods in templates.measurements
- add gatef key in circuit IR dict for the gate function, while replace gate key with the gate node or MPO (breaking change)
-
add
td
andsd
gates for dagger version of T gate and S gate -
add
argmax
andargmin
as backend methods -
add
expectation_before
methods fortc.Circuit
for further manipulation on the tensornetwork
-
refined repr for
tc.gates.Gate
-
expectation API now supports int index besides list indexes
-
make consistent
Gate
return for channels -
fixed bug on list optimizer for contraction
-
stability for QR operator in terms of automatic differentiation
-
add
hessian
method on backends -
add further automatic pipelines for visualization by generating pdf or images
-
add
reshape2
method on backends as a short cut to reshape a tensor with all legs 2-d -
add
reshapem
method on backends to reshape any tensor as a square matrix -
add
controlled
andocontrolled
API to generate more gates -
add
crx
,cry
,crz
gate onCircuit
-
add
__repr__
and__str__
for backend object -
tc.expectation
now support ket arg as quvector form
-
sizen
correctly returns 1 for tensor of no shape -
fixed
convert_to_tensor
bug in numpy backend in TensorNetwork -
any_gate
also support Gate format instead of matrix -
matrix_for_gate
works now for backends more than numpy
-
expectation
API now also accepts plain tensor instead oftc.Gate
. -
DMCircuit
andDMCircuit2
are all pointing the efficent implementations (breaking changes)
-
add
solve
method on backends to solve linear equations -
add full quantum natural gradient examples and
qng
method in experimental module -
add
concat
method to backends -
add
stop_gradient
method to backends -
add
has_aux
arg onvvag
method -
add
imag
method on backends -
add
Circuit.vis_tex
interface that returns the quantikz circuit latex
-
contractor, dtype and backend set are default to return objects,
with tc.runtime_backend("jax") as K
orK = tc.set_backend("jax")
could work -
change
perfect_sampling
to usemeasure_jit
behind the scene -
anygate
automatically reshape the unitary input to 2-d leg for users' good -
quantum.renyi_entropy
computation with correct prefactor -
Circuit
gate can provided other names by name attr -
example_block
support param auto reshape for users' good
-
make four algorithms for quantum natural gradient consistent and correct
-
torch
real
is now a real
-
add
quantum.heisenberg_hamiltonian
for hamiltonian generation shortcut -
add
has_aux
parameter in backend methodsgrad
andvalue_and_grad
, the semantic syntax is the same as jax -
add
optimizer
class on tensorflow and jax backend, so that a minimal and unified backend agnostic optimizer interface is provided -
add
quantum.mutual_information
, add support on mixed state forquantum.reduced_density_matrix
-
add
jvp
methods for tensorflow, jax, torch backends, and ensure pytree support injvp
andvjp
interfaces for tensorflow and jax backends; also ensure complex support forjvp
andvjp
-
add
jacfwd
andjacrev
for backend methods (experimental API, may have bugs and subject to changes)
- fix
matmul
bug on tensornetwork tensorflow backend
-
delete
qcode
IR forCircuit
, useqir
instead (breaking changes) -
basic circuit running is ok on pytorch backend with some complex support fixing
-
add
get_random_state
andrandom_split
methods to backends -
add qir representation of circuit,
c.to_qir()
andCircuit.from_qir()
methods -
fine-grained control on backend, dtype and contractor setup:
tc.set_function_backend()
for function level decorator andtc.runtime_backend()
as with context manager -
add
state_centric
decorator intc.templates.blocks
to transform circuit-to-circuit funtion to state-to-state function -
add
interfaces.scipy_optimize_interface
to transform quantum function intoscipy.optimize.minimize
campatible form
-
avoid error on watch non
tf.Tensor
in tensorflow backend grad method -
circuit preprocessing simplification with only single qubit gates
-
avoid the bug when random from jax backend with jitted function
-
refresh the state cache in Circuit when new gate is applied
- refactor
tc.gates
(breaking API onrgate
->r_gate
,iswapgate
->iswap_gate
)