Creates a copy of val
with any symbols or expressions replaced with new symbols.
cirq.flatten_with_sweep(
val: Any, sweep: Union[sweeps.Sweep, List[resolver.ParamResolver]]
) -> Tuple[Any, cirq.Sweep
]
Used in the notebooks
Used in the guide | Used in the tutorials |
---|---|
val
can be a Circuit
, Gate
, Operation
, or other
type. Also transforms a sweep over the symbols in val
to a sweep over the
new symbols.
flatten_with_sweep
goes through every parameter in val
and does the
following:
- If the parameter is a number, don't change it.
- If the parameter is a symbol, don't change it and use the same symbol with the same values in the new sweep.
- If the parameter is an expression, replace it with a symbol and use the
new symbol with the evaluated value of the expression in the new sweep.
The new symbol will be
sympy.Symbol('<x + 1>')
if the expression wassympy.Symbol('x') + 1
. In the unlikely case that an expression with a different meaning also has the string'x + 1'
, a number is appended to the name to avoid collision:sympy.Symbol('<x + 1>_1')
.
Args | |
---|---|
val
|
The value to copy and substitute parameter expressions with flattened symbols. |
sweep
|
A sweep over parameters used by val .
|
Returns | |
---|---|
The tuple (new value, new sweep) where new value is val with flattened
expressions and new sweep is the equivalent sweep over it.
|