This is a proposal which will make Yao.jl a meta package of several concrete package for quantum information science like DifferentialEquations.
By separating each different part into several packages, it will be easier to maintain mature part of the package, and develop new features in separated repo rapidly.
Name conventions
All the package will start with Yao to enable tab completion for convenience.
Mature part of the package
Packages will be under early stage
Package separated for general use
In the future, Yao.jl will only provide a few eye-candy and ester egg and re-export the above package as a meta-package.
This is a proposal which will make Yao.jl a meta package of several concrete package for quantum information science like
DifferentialEquations.By separating each different part into several packages, it will be easier to maintain mature part of the package, and develop new features in separated repo rapidly.
Name conventions
All the package will start with
Yaoto enable tab completion for convenience.Mature part of the package
YaoBase, this package includes the abstract register, testing tools, and miscellaneaYaoArrayRegister, this package includes the default dense register implementationYaoBlockTree, this package provides the block tree abstractionPackages will be under early stage
CuYao, this package includes the CUDA register and block operations.YaoAD/YaoFlux, this package includes the automatic differentiation for quantum circuitsPackage separated for general use
BitBasisIn the future,
Yao.jlwill only provide a few eye-candy and ester egg and re-export the above package as a meta-package.