I'm happy to say that I've finally released QuDirac.jl
<https://github.com/JuliaQuantum/QuDirac.jl>!
This package is for performing common quantum mechanical operations using
Dirac notation.
Feature list:
- Implementations of state types (`Ket`,`Bra`), and a variety of operator
types (`OpSum`,`OuterProduct`)
- Treat states and operators as map-like data structures, enabling
label-based analysis for spectroscopy purposes
- Implementation of common operations like partial trace (`ptrace`) and
partial transpose (`ptranspose`)
- Support for abstract/undefined inner products
- User-definable custom inner product rules
- Subspace selection/transformation via functions on state labels and
coefficients:
- `xsubspace` allows easy selection of excitation subspaces of states
and operators
- `permute` and `switch` allows generic permutation of factor labels
for states
- `filter`/`filter!` are supported on both the labels and coefficients
of operators/states
- Mapping functions (`map`/`maplabels`/`mapcoeffs`) for applying
arbitrary functions to labels and coefficients
- Functional generation of operators using `@def_op` and `@rep_op`
- `d" ... "` literals for natural Dirac notation input syntax
-- Jarrett