Adding state shape preservation to Solver.solve #99
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Closes #96
Resolves the issue raised in discussion #95
Solver.solve
respects input state type in the sense that ify0
is a quantum info type, then the returned solution is wrapped in the same class. However, as pointed out in discussion #95, the dimension data ofy0
was not preserved when wrapping the solutions. This PR ensures updatesSolver.solve
to fix this.Details and comments
The state type handling in
Solver.solve
is handled byinitial_state_converter
andfinal_state_converter
. This PR updatesinitial_state_converter
to also return awrapper
function to call to wrap the final states. Thiswrapper
function is setup to include any additional kwargs needed beyond the array at construction - in this case dimension data. The functionfinal_state_converter
is removed as it is now redundant.A test is also added to verify correct behaviour for various input types.