## Introduction

Quanlse, a toolbox of generating physical pulses for quantum computing, is developed by the Institute for Quantum Computing, Baidu Research. It specializes in designing a sequence of pulses to generate the target logic gate fast and optimally. Currently, it works for the superconducting of quantum circuit as well as the Nuclear Magnetic Resonance (NMR) system.

In the process of quantum computing, the information is usually encoded on qubits. These qubits are manipulated by quantum logic gates, which are also known as unitary transformations . Physically, quantum logic gates are realized by applying a sequence of time-varying electromagnetic waves, and these waves with well-designed shapes are called pulse. For example, in Fig. 1, we show that one can apply a proper pulse to transform a qubit from $|0\rangle$ to $|1\rangle$. Generally, we show in Fig. 2 that well-designed pulses can be used to prepare an arbitrary state.

Fig.1 The single qubit could be prepared from state $|0\rangle$ to the target state $|1\rangle$ via applying a proper sequence of pulses.
Fig. 2 The control pulse can drive the single qubit from the intial state $|0\rangle$ to an arbitrary qubit state.

Since the process with pulses is governed by Schrödinger equation, the target logic gate or unitary transformation $U_{target}$ admits a form of

$\dot{U}(t)=-i \mathcal{H}(t) U(t)\,,$
with $U(0)=I$ and $U_{target}=U(T)$. Here $T$ is the evolution time, and $\mathcal{H}$ represents the total Hamiltonian. Furthermore, this total Hamiltonian $\mathcal{H}$ can be decomposed into:
$\mathcal{H}(t)= \mathcal{H}_0 + \mathcal{H}_{drive}(t)\,,$
where $\mathcal{H}_0(t)$ describes the free Hamiltonian and $\mathcal{H}_{drive}(t)$ refers to the driving Hamiltonian. Indeed, these pulse drives can be fine-tuned via additional control channels. In particular, we may have a couple of channels to generate a family of specific pulses. We further denote $B_k(t)$ as the amplitude of the pulse generated by the $k$ channel at time $t$ and define $\mathcal{O}_k$ as the corresponding operator $\mathcal{O}_k$ acting on the controlled qubit. Then, the driving Hamiltonian is given by
$\mathcal{H}_{drive}(t)= \sum_{k} B_k(t) \mathcal{O}_{drive, k}\,.$

The evolution of qubits follows from the Jaynes-Cummings model that the coupling between the qubit and the EM wave is described by the dipole coupling. Thus, the control operator can be further expressed as tensor product of Pauli operators, and its explicit form depends on the hardware platforms used for quantum computing.

If the control operator is known, then the key step to realize an arbitrary quantum logic gate $U_{target}$ is to tune the pulse amplitude $B_k(t)$. Based on this fact, we develop Quanlse to achieve this task.

The current Beta version aims to provide the service of designing pulses for quantum computing. In the near future, more practical functions will be added into this system, such as visualization of the whole dynamical process, multi-core algorithms, and noise-mitigated protocols.