pyqtorch
pyqtorch copied to clipboard
PyTorch-based state vector simulator
Porting the HamiltonianEvolution logic
By making modifications to the `expectation` function, it can support the `DensityMatrix` input #172. Thus, to increase the documentation section on noisy simulations, it would be interesting to use it...
Add `Noise.py` and `Noise` class for implementing the Kraus Operator of well known noisy gates #145. Closes #145. Closes #150 Closes #160 Closes #161
Moving the original issue from Qadence: https://github.com/pasqal-io/qadence/issues/346 With the reorganization of HamEvo, this would make sense to implement in PyQTorch instead. This is essentially equivalent to doing exact Trotterization automatically...
Below is the previous code calculating `HamEvo` based on a 4th order Runge Kutta method. It could be useful in the future for a simple implementation for time-dependent Hamiltonians. To...
With the refactoring of `pyqtorch` we are for now prioritizing `HamEvo` based on `torch.matrix_exp` since it has proven to be the best compromise between efficiency and support with torch autograd....
Instead of doing block to tensor -> dense matrix -> diagonal -> we should just use block to diagonal. Replicating the original issue in Qadence: https://github.com/pasqal-io/qadence/issues/368 Keeping it open there...
Original text from @dominikandreasseitz : _Right now, we call block_to_tensor in every forward pass to get the hamiltonian, which is then exponentiated in native pyq. lets find a way to...