Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
Functions
gate_kernel_templates.h File Reference
#include <math.h>
#include <utility>
#include "../../common/include/qgd_math.h"
Include dependency graph for gate_kernel_templates.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename MT , typename RT >
void build_crot_gate_kernel_from_trig_to (MT &forward, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
std::pair< MT, MT > build_crot_gate_kernels_from_trig (RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_gate_kernels_from_trig_to (MT &forward, MT &inverse, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_inverse_gate_kernel_from_trig_to (MT &inverse, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_phi_derivative_aux_kernel_from_trig_to (MT &inverse, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_phi_derivative_kernel_from_trig_to (MT &forward, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
std::pair< MT, MT > build_crot_phi_derivative_kernels_from_trig (RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_phi_derivative_kernels_from_trig_to (MT &forward, MT &inverse, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_theta_derivative_aux_kernel_from_trig_to (MT &inverse, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_theta_derivative_kernel_from_trig_to (MT &forward, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
std::pair< MT, MT > build_crot_theta_derivative_kernels_from_trig (RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void build_crot_theta_derivative_kernels_from_trig_to (MT &forward, MT &inverse, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
MT build_rxx_derivative_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void build_rxx_derivative_kernel_from_trig_to (MT &U, RT s, RT c)
 
template<typename MT , typename RT >
MT build_rxx_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void build_rxx_kernel_from_trig_to (MT &U, RT s, RT c)
 RXX(theta): exp(-i * theta/2 * XX) More...
 
template<typename MT , typename RT >
MT build_ryy_derivative_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void build_ryy_derivative_kernel_from_trig_to (MT &U, RT s, RT c)
 
template<typename MT , typename RT >
MT build_ryy_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void build_ryy_kernel_from_trig_to (MT &U, RT s, RT c)
 RYY(theta): exp(-i * theta/2 * YY) More...
 
template<typename MT , typename RT >
MT build_rzz_derivative_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void build_rzz_derivative_kernel_from_trig_to (MT &U, RT s, RT c)
 
template<typename MT , typename RT >
MT build_rzz_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void build_rzz_kernel_from_trig_to (MT &U, RT s, RT c)
 RZZ(theta): exp(-i * theta/2 * ZZ) More...
 
template<typename MT , typename RT >
MT calc_one_qubit_u3_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
void calc_one_qubit_u3_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
MT calc_one_qubit_u3_inverse_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
void calc_one_qubit_u3_inverse_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
MT cu_derivative_kernel_gamma_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda, RT sin_gamma, RT cos_gamma)
 
template<typename MT , typename RT >
void cu_derivative_kernel_gamma_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda, RT sin_gamma, RT cos_gamma)
 
template<typename MT , typename RT >
MT cu_gate_kernel_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda, RT sin_gamma, RT cos_gamma)
 
template<typename MT , typename RT >
void cu_gate_kernel_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda, RT sin_gamma, RT cos_gamma)
 
template<typename MT , typename RT >
MT cu_inverse_gate_kernel_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda, RT sin_gamma, RT cos_gamma)
 
template<typename MT , typename RT >
void cu_inverse_gate_kernel_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda, RT sin_gamma, RT cos_gamma)
 
template<typename MT >
void ensure_kernel_storage (MT &kernel, int rows, int cols)
 Shared inline templates for single-qubit gate kernel matrices. More...
 
template<typename MT , typename RT >
MT h_gate_kernel ()
 
template<typename MT , typename RT >
void h_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
void multiply_2x2_by_phase (MT &u3, RT sin_gamma, RT cos_gamma)
 
template<typename MT , typename RT >
MT r_derivative_kernel_phi_from_trig (RT s_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void r_derivative_kernel_phi_from_trig_to (MT &u3, RT s_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
MT r_derivative_kernel_theta_from_trig (RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void r_derivative_kernel_theta_from_trig_to (MT &u3, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
MT r_gate_kernel_from_trig (RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void r_gate_kernel_from_trig_to (MT &u3, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
MT r_inverse_gate_kernel_from_trig (RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
void r_inverse_gate_kernel_from_trig_to (MT &u3, RT s_theta, RT c_theta, RT s_phi, RT c_phi)
 
template<typename MT , typename RT >
MT rx_derivative_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void rx_derivative_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT rx_gate_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void rx_gate_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT rx_inverse_gate_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void rx_inverse_gate_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT ry_derivative_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void ry_derivative_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT ry_gate_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void ry_gate_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT ry_inverse_gate_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void ry_inverse_gate_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT rz_derivative_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void rz_derivative_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT rz_gate_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void rz_gate_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT rz_inverse_gate_kernel_from_trig (RT s, RT c)
 
template<typename MT , typename RT >
void rz_inverse_gate_kernel_from_trig_to (MT &u3, RT s, RT c)
 
template<typename MT , typename RT >
MT s_gate_kernel ()
 
template<typename MT , typename RT >
void s_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT sdg_gate_kernel ()
 
template<typename MT , typename RT >
void sdg_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT sx_gate_kernel ()
 
template<typename MT , typename RT >
void sx_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT sxdg_gate_kernel ()
 
template<typename MT , typename RT >
void sxdg_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT t_gate_kernel ()
 
template<typename MT , typename RT >
void t_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT tdg_gate_kernel ()
 
template<typename MT , typename RT >
void tdg_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT u1_derivative_kernel_from_trig (RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u1_derivative_kernel_from_trig_to (MT &u3, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u1_gate_kernel_from_trig (RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u1_gate_kernel_from_trig_to (MT &u3, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u1_inverse_gate_kernel_from_trig (RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u1_inverse_gate_kernel_from_trig_to (MT &u3, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u2_derivative_kernel_lambda_from_trig (RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u2_derivative_kernel_lambda_from_trig_to (MT &u3, RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u2_derivative_kernel_phi_from_trig (RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u2_derivative_kernel_phi_from_trig_to (MT &u3, RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u2_gate_kernel_from_trig (RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u2_gate_kernel_from_trig_to (MT &u3, RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u2_inverse_gate_kernel_from_trig (RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
void u2_inverse_gate_kernel_from_trig_to (MT &u3, RT s_phi, RT c_phi, RT s_lambda, RT c_lambda)
 
template<typename MT , typename RT >
MT u3_derivative_kernel_lambda_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
void u3_derivative_kernel_lambda_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
MT u3_derivative_kernel_phi_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
void u3_derivative_kernel_phi_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
MT u3_derivative_kernel_theta_from_trig (RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
void u3_derivative_kernel_theta_from_trig_to (MT &u3, RT sin_theta, RT cos_theta, RT sin_phi, RT cos_phi, RT sin_lambda, RT cos_lambda)
 
template<typename MT , typename RT >
MT x_gate_kernel ()
 
template<typename MT , typename RT >
void x_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT y_gate_kernel ()
 
template<typename MT , typename RT >
void y_gate_kernel_to (MT &u3)
 
template<typename MT , typename RT >
MT z_gate_kernel ()
 
template<typename MT , typename RT >
void z_gate_kernel_to (MT &u3)
 

Function Documentation

◆ build_crot_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void build_crot_gate_kernel_from_trig_to ( MT &  forward,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 779 of file gate_kernel_templates.h.

◆ build_crot_gate_kernels_from_trig()

template<typename MT , typename RT >
std::pair<MT, MT> build_crot_gate_kernels_from_trig ( RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 815 of file gate_kernel_templates.h.

◆ build_crot_gate_kernels_from_trig_to()

template<typename MT , typename RT >
void build_crot_gate_kernels_from_trig_to ( MT &  forward,
MT &  inverse,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 809 of file gate_kernel_templates.h.

◆ build_crot_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void build_crot_inverse_gate_kernel_from_trig_to ( MT &  inverse,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 796 of file gate_kernel_templates.h.

◆ build_crot_phi_derivative_aux_kernel_from_trig_to()

template<typename MT , typename RT >
void build_crot_phi_derivative_aux_kernel_from_trig_to ( MT &  inverse,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 873 of file gate_kernel_templates.h.

◆ build_crot_phi_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void build_crot_phi_derivative_kernel_from_trig_to ( MT &  forward,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 866 of file gate_kernel_templates.h.

◆ build_crot_phi_derivative_kernels_from_trig()

template<typename MT , typename RT >
std::pair<MT, MT> build_crot_phi_derivative_kernels_from_trig ( RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 880 of file gate_kernel_templates.h.

◆ build_crot_phi_derivative_kernels_from_trig_to()

template<typename MT , typename RT >
void build_crot_phi_derivative_kernels_from_trig_to ( MT &  forward,
MT &  inverse,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 853 of file gate_kernel_templates.h.

◆ build_crot_theta_derivative_aux_kernel_from_trig_to()

template<typename MT , typename RT >
void build_crot_theta_derivative_aux_kernel_from_trig_to ( MT &  inverse,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 838 of file gate_kernel_templates.h.

◆ build_crot_theta_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void build_crot_theta_derivative_kernel_from_trig_to ( MT &  forward,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 831 of file gate_kernel_templates.h.

◆ build_crot_theta_derivative_kernels_from_trig()

template<typename MT , typename RT >
std::pair<MT, MT> build_crot_theta_derivative_kernels_from_trig ( RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 845 of file gate_kernel_templates.h.

◆ build_crot_theta_derivative_kernels_from_trig_to()

template<typename MT , typename RT >
void build_crot_theta_derivative_kernels_from_trig_to ( MT &  forward,
MT &  inverse,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 823 of file gate_kernel_templates.h.

◆ build_rxx_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT build_rxx_derivative_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 698 of file gate_kernel_templates.h.

◆ build_rxx_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void build_rxx_derivative_kernel_from_trig_to ( MT &  U,
RT  s,
RT  c 
)
inline

Definition at line 688 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ build_rxx_kernel_from_trig()

template<typename MT , typename RT >
MT build_rxx_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 681 of file gate_kernel_templates.h.

◆ build_rxx_kernel_from_trig_to()

template<typename MT , typename RT >
void build_rxx_kernel_from_trig_to ( MT &  U,
RT  s,
RT  c 
)
inline

RXX(theta): exp(-i * theta/2 * XX)

Definition at line 671 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ build_ryy_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT build_ryy_derivative_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 733 of file gate_kernel_templates.h.

◆ build_ryy_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void build_ryy_derivative_kernel_from_trig_to ( MT &  U,
RT  s,
RT  c 
)
inline

Definition at line 723 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ build_ryy_kernel_from_trig()

template<typename MT , typename RT >
MT build_ryy_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 716 of file gate_kernel_templates.h.

◆ build_ryy_kernel_from_trig_to()

template<typename MT , typename RT >
void build_ryy_kernel_from_trig_to ( MT &  U,
RT  s,
RT  c 
)
inline

RYY(theta): exp(-i * theta/2 * YY)

Definition at line 706 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ build_rzz_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT build_rzz_derivative_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 768 of file gate_kernel_templates.h.

◆ build_rzz_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void build_rzz_derivative_kernel_from_trig_to ( MT &  U,
RT  s,
RT  c 
)
inline

Definition at line 758 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ build_rzz_kernel_from_trig()

template<typename MT , typename RT >
MT build_rzz_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 751 of file gate_kernel_templates.h.

◆ build_rzz_kernel_from_trig_to()

template<typename MT , typename RT >
void build_rzz_kernel_from_trig_to ( MT &  U,
RT  s,
RT  c 
)
inline

RZZ(theta): exp(-i * theta/2 * ZZ)

Definition at line 741 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ calc_one_qubit_u3_from_trig()

template<typename MT , typename RT >
MT calc_one_qubit_u3_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 525 of file gate_kernel_templates.h.

◆ calc_one_qubit_u3_from_trig_to()

template<typename MT , typename RT >
void calc_one_qubit_u3_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 509 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ calc_one_qubit_u3_inverse_from_trig()

template<typename MT , typename RT >
MT calc_one_qubit_u3_inverse_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 548 of file gate_kernel_templates.h.

◆ calc_one_qubit_u3_inverse_from_trig_to()

template<typename MT , typename RT >
void calc_one_qubit_u3_inverse_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 532 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ cu_derivative_kernel_gamma_from_trig()

template<typename MT , typename RT >
MT cu_derivative_kernel_gamma_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 659 of file gate_kernel_templates.h.

◆ cu_derivative_kernel_gamma_from_trig_to()

template<typename MT , typename RT >
void cu_derivative_kernel_gamma_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 648 of file gate_kernel_templates.h.

◆ cu_gate_kernel_from_trig()

template<typename MT , typename RT >
MT cu_gate_kernel_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 628 of file gate_kernel_templates.h.

◆ cu_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void cu_gate_kernel_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 622 of file gate_kernel_templates.h.

◆ cu_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT cu_inverse_gate_kernel_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 641 of file gate_kernel_templates.h.

◆ cu_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void cu_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 635 of file gate_kernel_templates.h.

◆ ensure_kernel_storage()

template<typename MT >
void ensure_kernel_storage ( MT &  kernel,
int  rows,
int  cols 
)
inline

Shared inline templates for single-qubit gate kernel matrices.

Each function builds the 2x2 unitary matrix for the corresponding gate. MT = matrix type (Matrix or Matrix_float), RT = real scalar type (double or float).

SPDX-License-Identifier: Apache-2.0

Definition at line 15 of file gate_kernel_templates.h.

Here is the caller graph for this function:

◆ h_gate_kernel()

template<typename MT , typename RT >
MT h_gate_kernel ( )
inline

Definition at line 36 of file gate_kernel_templates.h.

◆ h_gate_kernel_to()

template<typename MT , typename RT >
void h_gate_kernel_to ( MT &  u3)
inline

Definition at line 26 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ multiply_2x2_by_phase()

template<typename MT , typename RT >
void multiply_2x2_by_phase ( MT &  u3,
RT  sin_gamma,
RT  cos_gamma 
)
inline

Definition at line 612 of file gate_kernel_templates.h.

◆ r_derivative_kernel_phi_from_trig()

template<typename MT , typename RT >
MT r_derivative_kernel_phi_from_trig ( RT  s_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 382 of file gate_kernel_templates.h.

◆ r_derivative_kernel_phi_from_trig_to()

template<typename MT , typename RT >
void r_derivative_kernel_phi_from_trig_to ( MT &  u3,
RT  s_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 373 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ r_derivative_kernel_theta_from_trig()

template<typename MT , typename RT >
MT r_derivative_kernel_theta_from_trig ( RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 366 of file gate_kernel_templates.h.

◆ r_derivative_kernel_theta_from_trig_to()

template<typename MT , typename RT >
void r_derivative_kernel_theta_from_trig_to ( MT &  u3,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 357 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ r_gate_kernel_from_trig()

template<typename MT , typename RT >
MT r_gate_kernel_from_trig ( RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 338 of file gate_kernel_templates.h.

◆ r_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void r_gate_kernel_from_trig_to ( MT &  u3,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 325 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ r_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT r_inverse_gate_kernel_from_trig ( RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 350 of file gate_kernel_templates.h.

◆ r_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void r_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  s_theta,
RT  c_theta,
RT  s_phi,
RT  c_phi 
)
inline

Definition at line 345 of file gate_kernel_templates.h.

◆ rx_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT rx_derivative_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 230 of file gate_kernel_templates.h.

◆ rx_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void rx_derivative_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 221 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ rx_gate_kernel_from_trig()

template<typename MT , typename RT >
MT rx_gate_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 202 of file gate_kernel_templates.h.

◆ rx_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void rx_gate_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 193 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ rx_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT rx_inverse_gate_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 214 of file gate_kernel_templates.h.

◆ rx_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void rx_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 209 of file gate_kernel_templates.h.

◆ ry_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT ry_derivative_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 274 of file gate_kernel_templates.h.

◆ ry_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void ry_derivative_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 265 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ ry_gate_kernel_from_trig()

template<typename MT , typename RT >
MT ry_gate_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 246 of file gate_kernel_templates.h.

◆ ry_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void ry_gate_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 237 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ ry_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT ry_inverse_gate_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 258 of file gate_kernel_templates.h.

◆ ry_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void ry_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 253 of file gate_kernel_templates.h.

◆ rz_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT rz_derivative_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 318 of file gate_kernel_templates.h.

◆ rz_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void rz_derivative_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 309 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ rz_gate_kernel_from_trig()

template<typename MT , typename RT >
MT rz_gate_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 290 of file gate_kernel_templates.h.

◆ rz_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void rz_gate_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 281 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ rz_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT rz_inverse_gate_kernel_from_trig ( RT  s,
RT  c 
)
inline

Definition at line 302 of file gate_kernel_templates.h.

◆ rz_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void rz_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  s,
RT  c 
)
inline

Definition at line 297 of file gate_kernel_templates.h.

◆ s_gate_kernel()

template<typename MT , typename RT >
MT s_gate_kernel ( )
inline

Definition at line 100 of file gate_kernel_templates.h.

◆ s_gate_kernel_to()

template<typename MT , typename RT >
void s_gate_kernel_to ( MT &  u3)
inline

Definition at line 91 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ sdg_gate_kernel()

template<typename MT , typename RT >
MT sdg_gate_kernel ( )
inline

Definition at line 116 of file gate_kernel_templates.h.

◆ sdg_gate_kernel_to()

template<typename MT , typename RT >
void sdg_gate_kernel_to ( MT &  u3)
inline

Definition at line 107 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ sx_gate_kernel()

template<typename MT , typename RT >
MT sx_gate_kernel ( )
inline

Definition at line 166 of file gate_kernel_templates.h.

◆ sx_gate_kernel_to()

template<typename MT , typename RT >
void sx_gate_kernel_to ( MT &  u3)
inline

Definition at line 157 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ sxdg_gate_kernel()

template<typename MT , typename RT >
MT sxdg_gate_kernel ( )
inline

Definition at line 182 of file gate_kernel_templates.h.

◆ sxdg_gate_kernel_to()

template<typename MT , typename RT >
void sxdg_gate_kernel_to ( MT &  u3)
inline

Definition at line 173 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ t_gate_kernel()

template<typename MT , typename RT >
MT t_gate_kernel ( )
inline

Definition at line 133 of file gate_kernel_templates.h.

◆ t_gate_kernel_to()

template<typename MT , typename RT >
void t_gate_kernel_to ( MT &  u3)
inline

Definition at line 123 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ tdg_gate_kernel()

template<typename MT , typename RT >
MT tdg_gate_kernel ( )
inline

Definition at line 150 of file gate_kernel_templates.h.

◆ tdg_gate_kernel_to()

template<typename MT , typename RT >
void tdg_gate_kernel_to ( MT &  u3)
inline

Definition at line 140 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u1_derivative_kernel_from_trig()

template<typename MT , typename RT >
MT u1_derivative_kernel_from_trig ( RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 426 of file gate_kernel_templates.h.

◆ u1_derivative_kernel_from_trig_to()

template<typename MT , typename RT >
void u1_derivative_kernel_from_trig_to ( MT &  u3,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 417 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u1_gate_kernel_from_trig()

template<typename MT , typename RT >
MT u1_gate_kernel_from_trig ( RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 398 of file gate_kernel_templates.h.

◆ u1_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void u1_gate_kernel_from_trig_to ( MT &  u3,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 389 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u1_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT u1_inverse_gate_kernel_from_trig ( RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 410 of file gate_kernel_templates.h.

◆ u1_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void u1_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 405 of file gate_kernel_templates.h.

◆ u2_derivative_kernel_lambda_from_trig()

template<typename MT , typename RT >
MT u2_derivative_kernel_lambda_from_trig ( RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 502 of file gate_kernel_templates.h.

◆ u2_derivative_kernel_lambda_from_trig_to()

template<typename MT , typename RT >
void u2_derivative_kernel_lambda_from_trig_to ( MT &  u3,
RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 490 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u2_derivative_kernel_phi_from_trig()

template<typename MT , typename RT >
MT u2_derivative_kernel_phi_from_trig ( RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 483 of file gate_kernel_templates.h.

◆ u2_derivative_kernel_phi_from_trig_to()

template<typename MT , typename RT >
void u2_derivative_kernel_phi_from_trig_to ( MT &  u3,
RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 471 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u2_gate_kernel_from_trig()

template<typename MT , typename RT >
MT u2_gate_kernel_from_trig ( RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 445 of file gate_kernel_templates.h.

◆ u2_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void u2_gate_kernel_from_trig_to ( MT &  u3,
RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 433 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u2_inverse_gate_kernel_from_trig()

template<typename MT , typename RT >
MT u2_inverse_gate_kernel_from_trig ( RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 464 of file gate_kernel_templates.h.

◆ u2_inverse_gate_kernel_from_trig_to()

template<typename MT , typename RT >
void u2_inverse_gate_kernel_from_trig_to ( MT &  u3,
RT  s_phi,
RT  c_phi,
RT  s_lambda,
RT  c_lambda 
)
inline

Definition at line 452 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u3_derivative_kernel_lambda_from_trig()

template<typename MT , typename RT >
MT u3_derivative_kernel_lambda_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 605 of file gate_kernel_templates.h.

◆ u3_derivative_kernel_lambda_from_trig_to()

template<typename MT , typename RT >
void u3_derivative_kernel_lambda_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 593 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u3_derivative_kernel_phi_from_trig()

template<typename MT , typename RT >
MT u3_derivative_kernel_phi_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 586 of file gate_kernel_templates.h.

◆ u3_derivative_kernel_phi_from_trig_to()

template<typename MT , typename RT >
void u3_derivative_kernel_phi_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 574 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ u3_derivative_kernel_theta_from_trig()

template<typename MT , typename RT >
MT u3_derivative_kernel_theta_from_trig ( RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 567 of file gate_kernel_templates.h.

◆ u3_derivative_kernel_theta_from_trig_to()

template<typename MT , typename RT >
void u3_derivative_kernel_theta_from_trig_to ( MT &  u3,
RT  sin_theta,
RT  cos_theta,
RT  sin_phi,
RT  cos_phi,
RT  sin_lambda,
RT  cos_lambda 
)
inline

Definition at line 555 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ x_gate_kernel()

template<typename MT , typename RT >
MT x_gate_kernel ( )
inline

Definition at line 52 of file gate_kernel_templates.h.

◆ x_gate_kernel_to()

template<typename MT , typename RT >
void x_gate_kernel_to ( MT &  u3)
inline

Definition at line 43 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ y_gate_kernel()

template<typename MT , typename RT >
MT y_gate_kernel ( )
inline

Definition at line 68 of file gate_kernel_templates.h.

◆ y_gate_kernel_to()

template<typename MT , typename RT >
void y_gate_kernel_to ( MT &  u3)
inline

Definition at line 59 of file gate_kernel_templates.h.

Here is the call graph for this function:

◆ z_gate_kernel()

template<typename MT , typename RT >
MT z_gate_kernel ( )
inline

Definition at line 84 of file gate_kernel_templates.h.

◆ z_gate_kernel_to()

template<typename MT , typename RT >
void z_gate_kernel_to ( MT &  u3)
inline

Definition at line 75 of file gate_kernel_templates.h.

Here is the call graph for this function: