Open Krastanov opened 7 months ago
My first impression is a simple dispatch like embed(b::Basis, indices, ops) = ops
is enough. Am I right?
Yes, but I am worried something as simple would cause surprises down the line. Having indices == 1 || indices == (1,) || indices == [1]
with a clear error message would be safer.
Also, ops
should probably be typed, to avoid type piracy against QuantumInterface.jl
I have some generic code looking like this:
that occasionally at runtime ends up being
embed(SpinBasis(1//2), i, gate)
which fails.embed
expects a composite basis andbasis^1
autosimplifies tobasis
, so the generic code above fails.We need a small stub distpatch for these "do not operation" edge cases.