This is the last post in the series on quantum computing. You can check the previous ones here: In the previous post, we discussed the applications of quantum algorithms that are in development and we touched upon the idea of testing these algorithm ideas. In the final post of this series, we will discuss about the ways that quantum programs can be analyzed before running in actual quantum computers. Status Quo of Quantum Computing Real-world Quantum Computers have been undergoing a huge boom during the last few years with hundreds of businesses and tens of countries investing in this technology. Due to the expensive R&D cost for Quantum Computing, the main business model for Quantum Computing has been through the …

## Applications of Quantum Algorithms

This is the fourth post in a series on quantum computing, which began with the following: In the previous post, we explained the inner workings of a quantum computer and introduced quantum algorithms to take advantage of the properties of quantum mechanics and execute specific computations. However, we glossed over how these algorithms can provide a quantum speedup. To understand this, we must first understand the type of problems that are well-suited for quantum computers. Error Bounded Algorithms As discussed before, Classical Computers store definite states; therefore, the computations result in deterministic outcomes: a problem may be solved by a direct series of steps (an algorithm) that, given a specific input, will produce a specific outcome. However, while Quantum Computers …

## How does a Quantum Computer work?

This is the third post in a series on quantum computing, which began with the following: By design, a quantum computer is a device that executes quantum computations. These quantum computations utilize quantum mechanical principles to encode and operate on inputs and outputs. There are two main types of quantum computers based on the data unit: discrete-based and continuous-based. Discrete-based quantum computers use a discrete unit of data with quantum properties; most use qubits on which operations are performed. In contrast, continuous-based quantum computers utilize observable quantities with continuous intervals to define the system’s state. We will focus on discrete/digital quantum systems as this is the most common model for which many algorithms have already been developed. Like classical computers, …

## Quantum States vs Classical States

In the last post of this series, we discussed how supercharging quantum computing with Quantum Mechanics’ principles allows high computational power. To come to terms with this, we must first delve into the math behind quantum memory. A computer needs memory. It stores input and output data as a transitional place to operate on data. We care about this functionality because data encodes states. In the classical sense, a state refers to the particular arrangement that something is in at a specific moment. Examples of a classical state are the position of a door: either open or closed; the color of a marker: red, blue, yellow, etc.; the value of a bit: 0 or 1 / false or true; and …

## What is a Quantum Computer?

Quantum computing has been a growing area of computer science over the last few years. Thanks to leaps in material engineering, physics, and noise reduction algorithms, the possibility of constructing a fully-fledged quantum computer in the future grows nearer. Like the computers we use daily, a quantum computer is a machine that can perform computations with given data. However, unlike classical computers, they are characterized by using Quantum Mechanical Principles in the data storage and logic of those computations. Among some of these novel Quantum Mechanical properties, these are the keys ones: Even if Quantum Computers have many advantages, including possibly being faster, are classical computers insufficient? As innovation in new technologies grows in fields such as finance, medicine, and …

## ArrayFire Quantum Simulator

ArrayFire is pleased to announce the release of the first version of the open-source quantum simulator programming library, the ArrayFire Quantum Simulator, AQS for short. AQS is a C++14 library that provides the functionality to create, manipulate, visualize, and simulate quantum circuits with quick and accurate results. The library is built upon ArrayFire to provide hardware-neutral, fast CPU and GPU computations with a familiar interface. Features Its feature set includes: Fast Statevector calculations of 1000+ gates up to 30 qubits Implementing essential gates (Pauli, Superposition, Rotation, Multiple Control gates, etc.) Support for extending and creating gates Implementation of standard algorithms (QFT, Grover, VQE) Granular control over calculation stages Custom text displayer of created circuits and circuit schematics Integration with ArrayFire, …