QuantumBFS / Yao.jl

Extensible, Efficient Quantum Algorithm Design for Humans.
https://yaoquantum.org
Other
910 stars 118 forks source link

Changed TimeEvolution to use KrylovKit instead of ExponentialUtilities #483

Closed jlbosse closed 8 months ago

jlbosse commented 8 months ago

Implemented the changes discussed on Slack for more robust TimeEvolution gates.

I will also create a companion PR on CuYao that also removes the dependence on ExponentialUtilities

codecov[bot] commented 8 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Files Coverage Δ
lib/YaoBlocks/src/YaoBlocks.jl 100.00% <ø> (ø)
lib/YaoBlocks/src/primitive/time_evolution.jl 94.44% <100.00%> (ø)

:loudspeaker: Thoughts on this report? Let us know!.

GiggleLiu commented 8 months ago

Thanks, but I thought EU should be retained as an alternative backend. Any specific reason why it is removed while it is faster in some senarios? Also, since this removal of backend causes the break of CuYao: https://github.com/QuantumBFS/CuYao.jl/pull/84 and this break down is quite expected. So, it should not be a patch release.

jlbosse commented 8 months ago

Ah sorry, yes I jumped the gun here. Rereading the discussion on Slack we did say to have both options and only make KrylovKit the default backend. I will try to create new PR this weekend doing that.

In terms of patch or breaking release, I suppose there is no way of "undoing" the current breaking release after we added EU support back in?

GiggleLiu commented 8 months ago

Ah sorry, yes I jumped the gun here. Rereading the discussion on Slack we did say to have both options and only make KrylovKit the default backend. I will try to create new PR this weekend doing that.

In terms of patch or breaking release, I suppose there is no way of "undoing" the current breaking release after we added EU support back in?

A new PR would be perfect. Thank you!