Closes #96
Resolves the issue raised in discussion #95
Solver.solve respects input state type in the sense that if y0 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 of y0 was not preserved when wrapping the solutions. This PR ensures updates Solver.solve to fix this.
Details and comments
The state type handling in Solver.solve is handled by initial_state_converter and final_state_converter. This PR updates initial_state_converter to also return a wrapper function to call to wrap the final states. This wrapper function is setup to include any additional kwargs needed beyond the array at construction - in this case dimension data. The function final_state_converter is removed as it is now redundant.
A test is also added to verify correct behaviour for various input types.
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.