Skip to content

Simple Update bootstrap vs non-bootstrap #1

@RoyElkabetz

Description

@RoyElkabetz

Description

The current implementation of simple update takes a list of tensors and a list of weights (edges) and iterate over the edges while executing a single Imaginary Time Evolution (ITE) per edge. Then it replaces the two old tensor with the two new ones and the old weight vector (of the updated edge) with the weight vector of the new edge (see simple_update.py#L239). Let us refer to that method of update in place as bootstrapping.

We would like to also support the option, as a simple update object variable, to execute a non-bootstrapping simple update pass. In the non-bootstrapping case we would save the new tensors and new edge after an edge update to new tensors and weights lists and only when done iterating over all the edges we replace the old tensors and weights lists with the new ones.

Acceptance criteria

  1. Add a bootstrap attribute to the SimpleUpdate object.
  2. The implementation should be as simple as possible, without any fancy stuff (the code should be as readable as a children's book, we should choose readability over performance up to a reasonable extent).
  3. (Optional) add a test.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions