# Welcome to Qibo!¶

Qibo is a Python library for classical simulation of quantum algorithms. Qibo provides a standard interface for the implementation and extension of quantum algorithms in double precision. Simulation takes full advantage of hardware accelerators such as GPU and CPU with multi-threading support. The package includes a multi-GPU distributed approach for circuit simulation.

This documentation refers to Qibo 0.1.5.

- Installing Qibo
- 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