pwc_sum
- Graph.pwc_sum(terms, *, name=None)
Create the sum of multiple piecewise-constant terms.
- Parameters:
terms (list[Pwc]) – The individual piecewise-constant terms \(\{v_j(t)\}\) to sum. All terms must have the same duration, values of the same shape, and the same batch shape, but may have different segmentations (different numbers of segments of different durations) and different dtypes of segment values.
name (str or None, optional) – The name of the node.
- Returns:
The piecewise-constant function (or batch of functions) of time \(\sum_j v_j(t)\). Its values have the same shape as the values of each of the terms that you provided. If each of the terms represents a batch of functions, this result represents a batch of functions with the same batch shape. If any term has complex-valued segments, the value of the returned Pwc is complex, otherwise is float.
- Return type:
See also
discretize_stf
Discretize an Stf into a Pwc.
pwc
Create piecewise-constant functions.
pwc_operator
Create Pwc operators.
pwc_signal
Create Pwc signals from (possibly complex) values.
stf_sum
Corresponding operation for Stfs.
Notes
For more information on Pwc nodes see the Working with time-dependent functions in Boulder Opal topic.
Examples
Sum a list of piecewise-constant terms of different durations.
>>> x = graph.pwc(durations=np.array([0.1, 0.3]), values=np.array([1, 2])) >>> y = graph.pwc(durations=np.array([0.2, 0.2]), values=np.array([3, 1])) >>> graph.pwc_sum([x, y], name="sum") <Pwc: name="sum", operation_name="pwc_sum", value_shape=(), batch_shape=()> >>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["sum"]) >>> result.output["sum"] [ {"value": 4.0, "duration": 0.1}, {"value": 5.0, "duration": 0.1}, {"value": 3.0, "duration": 0.2}, ]
See more examples in the How to optimize controls robust to strong noise sources user guide.