Skip to content

Conversation

@JoeyT1994
Copy link
Collaborator

This PR generalizes the tree_orthogonalize code to tree_gauge code which is based around a generic algorithm which walks through a series of edges of the ITensorNetwork and performs some factorization which can be specified with an alg::Algorithm argument.

This means that we can support other gauges such as interpolative with very minimal additional code (just one function which tells you how to do the edge factorizations).

@emstoudenmire
Copy link
Contributor

Looks like a nice improvement. @JoeyT1994 will you be updating the ITensorTCI.jl PR to use a similar gauge_walk / gauge_edge / Algorithm design?

@JoeyT1994
Copy link
Collaborator Author

Yes, the idea will be that I can then simplify that PR by removing most functions from the interpolative_gauge.jl file other than the function that tells you how to do the interpolative_decomposition on an edge of a tensor network.

using NamedGraphs.GraphsExtensions:
, directed_graph, incident_edges, rename_vertices, vertextype
using NDTensors: NDTensors, dim
using NDTensors: NDTensors, dim, Algorithm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's load Algorithm from ITensor instead, since that is where you are loading @Algorithm_str.

@mtfishman
Copy link
Member

Looks great, thanks! This will be very nice to have.

@mtfishman mtfishman merged commit ff25d59 into ITensor:main Nov 29, 2024
5 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants