HierarQcal Utils¶
Utility functions for the hierarqcal package. These are mostly plotting functions.
Usage:
hierq = Qinit(4) + Qcycle(2) + Qmask(pattern="inside") + Qinit(7) + Qpermute() + Qmask(filter="1000001")
# Single motif
fig, ax = plot_motif(hierq.tail)
# Plot all motif
figs = plot_motifs(hierq, all_motifs=True, figsize=(4,4))
- hierarqcal.utils.contract(t0, t1, indices)¶
- hierarqcal.utils.get_tensor_as_f(u)¶
- hierarqcal.utils.plot_circuit(hierq, depth=20, cycle_color='#0096ff', mask_color='#ff7e79', permute_colour='#a9449d', init_colour='#92a9bd')¶
- hierarqcal.utils.plot_motif(primitive, cycle_color='#0096ff', mask_color='#ff7e79', permute_colour='#a9449d', init_colour='#92a9bd', pivot_colour='#0096ff', node_large=0.12, node_small=0.08, edge_width=1.5, figsize=(4, 4), font_size=15, color_dict={'during': 'orange', 'end': 'red', 'start': 'green'}, start_angle=0, **kwargs)¶
Plot a primitive in its directed graph representation
- Parameters
primitive (Qmotif) – The primitive to plot, such as Qcycle, Qmask or Qpermute.
cycle_color (str, optional) – The colour of nodes for cycle motifs. Defaults to “#0096ff”.
mask_color (str, optional) – The colour of nodes for masking motifs. Defaults to “#ff7e79”.
permute_colour (str, optional) – The colour of nodes for permute motifs. Defaults to “#a9449d”.
init_colour (str, optional) – The colour of nodes for init motifs. Defaults to “#92a9bd”.
node_large (int, optional) – The size of the nodes for non masked qubits. Defaults to 400.
node_small (int, optional) – The size of the nodes for the masked qubits. Defaults to 150.
edge_width (float, optional) – The width of the edges. Defaults to 1.5.
figsize (tuple, optional) – The size of the figure. Defaults to (4, 4).
**kwargs – Additional keyword arguments to pass to the networkx draw function.
- Returns
- A tuple containing:
fig (matplotlib.figure.Figure): The figure object.
ax (matplotlib.axes._subplots.AxesSubplot): The axes object.
- Return type
(tuple)
- hierarqcal.utils.tensor_to_matrix_colmajor(t0, indices)¶
- hierarqcal.utils.tensor_to_matrix_rowmajor(t0, indices)¶