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 {vj(t)}\{v_j(t)\}
  • name (str or None , optional) – The name of the node.

Returns

The piecewise-constant function (or batch of functions) of time jvj(t)\sum_j v_j(t)

Return type

Pwc

SEE ALSO

Graph.discretize_stf : Discretize an Stf into a Pwc.

Graph.pwc : Create piecewise-constant functions.

Graph.pwc_operator : Create Pwc operators.

Graph.pwc_signal : Create Pwc signals from (possibly complex) values.

Graph.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 = bo.execute_graph(graph=graph, output_node_names="sum")
>>> result["output"]["sum"]
{
    'durations': array([0.1, 0.1, 0.2]),
    'values': array([4., 5., 3.]),
    'time_dimension': 0
}

See more examples in the How to optimize controls robust to strong noise sources user guide.

Was this useful?