Remove the requirement to implement "meas[...]" gates. Instead, they are renamed "basis[...]" gates, and defined automatically using a Hermitian eigendecomposition (so when gate("basisX") is called, an eigendecomposition of gate("X") is performed by default, but a user can overload gate("basisX") if they want).
Replace "prepX+" gates with a new inputstate("X+") interface.
New interface qubits(N, ["X+", "Y-", "Z+"]) for making a product state in an arbitrary basis. The function uses the new inputstate definitions, such as inputstate("X+").
Change the randomstate/randomprocess insterface for selecting the element type. This remove the complex keyword argument. Instead, the element type is passed explicitly as the first argument, i.e. randomstate(Float64, 4). By default, randomstate(4) = randomstate(ComplexF64, 4), as before.
Rename the randomstate/randomprocess keyword argument init to alg for choosing the algorithm for generating the random tensors (which right now are "rand" or "circuit").
Change randomstate/randomprocess to default to having dimension 1 links and purified indices.
Rename getsamples keyword argument inputstates to local_inputstate and localbasis to local_basis.
In getsamples, always sample from a random Pauli basis ["X", "Y", "Z"] by default.
This makes the following changes:
"meas[...]"
gates. Instead, they are renamed"basis[...]"
gates, and defined automatically using a Hermitian eigendecomposition (so whengate("basisX")
is called, an eigendecomposition ofgate("X")
is performed by default, but a user can overloadgate("basisX")
if they want)."prepX+"
gates with a newinputstate("X+")
interface.qubits(N, ["X+", "Y-", "Z+"])
for making a product state in an arbitrary basis. The function uses the newinputstate
definitions, such asinputstate("X+")
.randomstate
/randomprocess
insterface for selecting the element type. This remove thecomplex
keyword argument. Instead, the element type is passed explicitly as the first argument, i.e.randomstate(Float64, 4)
. By default,randomstate(4) = randomstate(ComplexF64, 4)
, as before.randomstate
/randomprocess
keyword argumentinit
toalg
for choosing the algorithm for generating the random tensors (which right now are"rand"
or"circuit"
).randomstate
/randomprocess
to default to having dimension 1 links and purified indices.getsamples
keyword argumentinputstates
tolocal_inputstate
andlocalbasis
tolocal_basis
.getsamples
, always sample from a random Pauli basis["X", "Y", "Z"]
by default.This closes #127, #128, and #135.