Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
RX.h
Go to the documentation of this file.
1 #ifndef RX_H
2 #define RX_H
3 
4 #include "U3.h"
5 #include "matrix.h"
6 #include "matrix_real.h"
7 #include "matrix_real_float.h"
8 #include "matrix_float.h"
9 #include <math.h>
10 
11 class RX : public U3 {
12 public:
13  RX();
14  RX(int qbit_num_in, int target_qbit_in);
15  ~RX() override;
16  virtual RX* clone() override;
17  virtual std::vector<double> get_parameter_multipliers() const override;
18  virtual Matrix gate_kernel(const Matrix_real& precomputed_sincos) override;
19  virtual Matrix_float gate_kernel(const Matrix_real_float& precomputed_sincos) override;
20  virtual Matrix inverse_gate_kernel(const Matrix_real& precomputed_sincos) override;
21  virtual Matrix_float inverse_gate_kernel(const Matrix_real_float& precomputed_sincos) override;
22  virtual Matrix derivative_kernel(const Matrix_real& precomputed_sincos, int param_idx) override;
23  virtual Matrix_float derivative_kernel(const Matrix_real_float& precomputed_sincos, int param_idx) override;
24  virtual void gate_kernel_to(const Matrix_real& precomputed_sincos, Matrix& output) override;
25  virtual void gate_kernel_to(const Matrix_real_float& precomputed_sincos, Matrix_float& output) override;
26  virtual void inverse_gate_kernel_to(const Matrix_real& precomputed_sincos, Matrix& output) override;
27  virtual void inverse_gate_kernel_to(const Matrix_real_float& precomputed_sincos, Matrix_float& output) override;
28  virtual void derivative_kernel_to(const Matrix_real& precomputed_sincos, int param_idx, Matrix& output) override;
29  virtual void derivative_kernel_to(const Matrix_real_float& precomputed_sincos, int param_idx, Matrix_float& output) override;
30 };
31 
32 #endif //RX_H
Copyright (C) Miklos Maroti, 2021 SPDX-License-Identifier: Apache-2.0.
Definition: U3.h:19
Header file of single-precision complex array storage with automatic and thread safe reference counti...
virtual void inverse_gate_kernel_to(const Matrix_real &precomputed_sincos, Matrix &output) override
Definition: RX.cpp:83
Class to store single-precision real arrays and properties.
~RX() override
Definition: RX.cpp:13
virtual std::vector< double > get_parameter_multipliers() const override
Returns the per-parameter multipliers relative to 2π used by extract_parameters. ...
Definition: RX.cpp:23
virtual Matrix inverse_gate_kernel(const Matrix_real &precomputed_sincos) override
Definition: RX.cpp:41
virtual RX * clone() override
Call to create a clone of the present class.
Definition: RX.cpp:15
virtual void derivative_kernel_to(const Matrix_real &precomputed_sincos, int param_idx, Matrix &output) override
Definition: RX.cpp:91
Header file of complex array storage array with automatic and thread safe reference counting...
virtual Matrix derivative_kernel(const Matrix_real &precomputed_sincos, int param_idx) override
Definition: RX.cpp:55
virtual void gate_kernel_to(const Matrix_real &precomputed_sincos, Matrix &output) override
Definition: RX.cpp:75
Double-precision complex matrix (float64).
Definition: matrix.h:38
Single-precision complex matrix (float32).
Definition: matrix_float.h:41
RX()
Definition: RX.cpp:4
Definition: RX.h:11
Class to store data of complex arrays and its properties.
Definition: matrix_real.h:41
virtual Matrix gate_kernel(const Matrix_real &precomputed_sincos) override
Compute the gate kernel matrix from precomputed trigonometric values.
Definition: RX.cpp:27