- Symbolic Computation Support via SymEngine.
- automatic differentiation support with reversibility based optimization
- better CUDA performance in CuYao
- unitary channel support in YaoBlocks#101
- better
measure
with operators in YaoBlocks#100 - yao script a mark up language for quantum circuit in YaoBlocks#92
- new fidelity grad and operator fidelity grad. YaoBlocks#109
- new website! yaoquantum.org
- new tutorial! tutorials.yaoquantum.org
- new benchmark! yaoquantum.org/benchmark
- generic batch kron (#18) (Roger-luo)
- make batched kron more general (#16) (GiggleLiu)
- Fix measure dispatch (#22) (GiggleLiu)
- fix measure (#20) (GiggleLiu)
- add curried version of partial_tr (#19) (Roger-luo)
Closed issues:
instruct!
ambiguity error in julia1.2 (#28)- The jldoctest fails (#26)
Merged pull requests:
- fix type error when ctrl is an empty tuple (#35) (Roger-luo)
- propagate inbounds (#34) (Roger-luo)
- Transposed storage (#30) (GiggleLiu)
- fix return type (#33) (Roger-luo)
- fix partial bra * ket (#32) (Roger-luo)
- add support for symbolic (#31) (Roger-luo)
- Fix measure dispatch (#42) (GiggleLiu)
- Fix collapseto (#40) (GiggleLiu)
- Fix transpose copy (#39) (GiggleLiu)
- Val(:H) instruct (#37) (GiggleLiu)
- Fix rotation (#93) (Roger-luo)
- fix repeat dispatch (#88) (GiggleLiu)
- fix a typo (#85) (GiggleLiu)
- fix measure, symad (#84) (GiggleLiu)
- fix repeat performance issue (#83) (Roger-luo)
- add Cz gate (#82) (Roger-luo)
- run formatter (#65) (Roger-luo)
- fix put(chain...) backward (#80) (GiggleLiu)
- Fix sparsecheck on 1.3 (#77) (Roger-luo)
- make expect syntax consistent (#74) (Roger-luo)
- add more docs (#73) (Roger-luo)
- automatic differentiation (#71) (GiggleLiu)
- loose type constraints to support symbolic computation (#69) (Roger-luo)
- Tree manipulation (#68) (GiggleLiu)
- fix put(chain...) backward (#80) (GiggleLiu)
- Noise (#104) (Roger-luo)
- add unitary channel (#101) (Roger-luo)
- better measure with op (#100) (GiggleLiu)
- concentrate -> subroutine (#96) (Roger-luo)
- New dump load (#92) (GiggleLiu)
- transposed storage (#91) (GiggleLiu)
- Dispatch Hadamard gate to specialized functions (#89) (GiggleLiu)
- fix a typo (#85) (GiggleLiu)
- add support to pair in chain (#72) (Roger-luo)
- fix 1.3 compat (#25) (Roger-luo)
- fix #201 (#24) (Roger-luo)
- add randn! and rand! and zero (#23) (GiggleLiu)
- fix-nightly-ambiguity-error (#22) (GiggleLiu)
- fix-diag to sparse conversion (#21) (GiggleLiu)
- Specialize Broadcast (#33) (Roger-luo)
- polish sparse interface, new hadamard product (#29) (GiggleLiu)
We make Yao a meta package over several component packages to make it more modulized to make the development faster. Now most of the code are in
- YaoBase
- YaoBlocks
- YaoArrayRegister
Now all the blocks in Yao represents a quantum operator and there's no MatrixBlock
anymore,
most blocks will have mat
to get its matrix, but blocks might not have matrix or hard to have
a matrix will just error when you try to call it.
There's no need to insert classical function inside blocks with FunctionBlock
instead of just doing
a function call.
Therefore, the following types are removed:
FunctionBlock
MatrixBlock
Since we are going to support more kinds of registers, register
is deprecated, and use the type
constructor directly is preferred, e.g ArrayReg
.
We add basic support on circuit simplification, and provide an extensible interface to add new simplification rules. A single new interfce: simplify
is added.