-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Problem: Insertion or appending operations or moments into circuits come with a rich number of options (insert, insert_into_range, etc) as well as different behaviors in the form of insertion strategies. For advanced users this power can be useful, but for many users, it results in them not being able to transform their thinking into what they expect to happen (in part because the effects are non-local and so hard to reason about as the size of the “action” grows). This also has a direct impact on optimizers, which are mutating circuits, and where these insertion patterns can interact in strange ways if not done carefully. The goal of solving this problem is to either modify existing or define new methods to aid in the construction of circuits and lessen the complexity of these notions. Alternatively there could be other structures which aid in common construction patterns, Circuit builders. This could be aided by the solution to Subcircuits (#3235).
Rough requirements:
- Augment or modify existing creation APIs to simplify the construction, or create helpers that make this easier.
- Standardize examples and tutorial code to simplest methods
- Be able to construct appropriate groups as defined in Subcircuits