Matt Fishman

Results 482 comments of Matt Fishman

Also note that as of https://github.com/ITensor/ITensors.jl/pull/686 you can do: ```julia N = 4 ds = (n + 1 for n in 1:N) ts = ("$n" for n in 1:N) is...

Thanks for the report @VietTralala. I think the issue is that the observer is creating an operator internally which is by default being allocated on CPU, and contracting an ITensor...

Which version of ITensor are you using? I get the following output: ```julia maxlinkdim(psi) = 16 maxlinkdim(A) = 1 maxlinkdim(psi0) = 16 maxlinkdim(psi1) = 16 maxlinkdim(psi2) = 16 maxlinkdim(psi3) =...

Generally I agree with your logic, though I wouldn't have expected that you could slice a Julia `Array` like `A[i => 1:end, j => 1:end]`, only an `ITensor` that already...

This made me think about the copying behavior of `permute`. It seems like if you call `permute!(A, (i, i'))`, if `A` has indices ordered as `(i, i')` then it shouldn't...

Somehow it seems backwards to define `permute!` in terms of `permute` instead of the other way around, but I think that is the way to go in this case...

That sounds good to implement it only in `permute` and then `permute!` just uses the `always_copy = false` version. I think it is fine to always call `setstore!` and `setinds!`...

A more subtle issue comes up that for `always_copy = false`, storage types like `Diag` and `DiagBlockSparse` in general do not need to manipulate the storage, so I think could...

One potential breaking change that came up here is if we should have `permute` by default return a view if possible (i.e. default to `always_copy = false`). I would lean...