# Welcome to Qibo!¶

Qibo is an open-source full stack API for quantum simulation and quantum hardware control.

- Qibo key features:
Definition of a standard language for the construction and execution of quantum circuits with device agnostic approach to simulation and quantum hardware control based on plug and play backend drivers.

A continuously growing code-base of quantum algorithms applications presented with examples and tutorials.

Efficient simulation backends with GPU, multi-GPU and CPU with multi-threading support.

Simple mechanism for the implementation of new simulation and hardware backend drivers.

This documentation refers to Qibo 0.1.6.dev1.

- Overview and installation
- Basic examples
- Advanced examples
- How to select hardware devices?
- How to use callbacks?
- How to use parametrized gates?
- How to collapse state during measurements?
- How to invert a circuit?
- How to write a VQE?
- How to write a custom variational circuit optimization?
- How to use the QAOA?
- How to use automatic differentiation?
- How to perform noisy simulation?
- How to simulate time evolution?
- How to simulate adiabatic time evolution?
- How to define custom Hamiltonians using symbols?

- Application tutorials
- Scaling of variational quantum circuit depth for condensed matter systems
- Grover’s Algorithm for solving Satisfiability Problems
- Grover’s Algorithm for solving a Toy Sponge Hash function
- Variational Quantum Classifier
- Data reuploading for a universal quantum classifier
- Quantum autoencoder for data compression
- Quantum Singular Value Decomposer
- Measuring the tangle of three-qubit states
- Quantum unary approach to option pricing
- Simple Adiabatic Evolution Examples
- Adiabatic evolution for solving an Exact Cover problem
- Quantum autoencoders with enhanced data encoding
- Shor’s factorization algorithm
- Determining the proton content with a quantum computer
- Maximal violation of Bell inequalities variationally
- Feedback-based ALgorithm for Quantum OptimizatioN - FALQON
- A General Grover Model

- Components
- Models
- Gates
- Hadamard (H)
- Pauli X (X)
- Pauli Y (Y)
- Pauli Z (Z)
- Identity (I)
- Measurement (M)
- Rotation X-axis (RX)
- Rotation Y-axis (RY)
- Rotation Z-axis (RZ)
- First general unitary (U1)
- Second general unitary (U2)
- Third general unitary (U3)
- Controlled-NOT (CNOT)
- Controlled-phase (CZ)
- Controlled-rotation X-axis (CRX)
- Controlled-rotation Y-axis (CRY)
- Controlled-rotation Z-axis (CRZ)
- Controlled first general unitary (CU1)
- Controlled second general unitary (CU2)
- Controlled third general unitary (CU3)
- Controlled third general unitary (CU3)
- Swap (SWAP)
- fSim
- fSim with general rotation
- Toffoli
- Arbitrary unitary
- Variational layer
- Flatten
- Callback gate

- Channels
- Hamiltonians
- Symbols
- States
- Callbacks
- Solvers
- Optimizers
- Parallelism
- Backends