Safe Haskell  None 

Authors: Alexander S. Green, Artur Scherer, Peter Selinger, Alexandr Virodov
An implementation of the Ground State Estimation algorithm. The purpose of this algorithm is to determine the ground state energy of a quantum molecular system. The algorithm depends on a table of one and twoelectron transition integrals, which must be separately precomputed and supplied in a pair of data files. From this integral data, the molecular electronic Hamiltonian is derived using the JordanWigner transformation. To simulate this Hamiltonian by a quantum circuit, it is first broken into small time steps using Trotterization. The second quantized local Hamiltonian interaction terms can be divided into a small number of cases (number operators, excitation operators, Coulomb and exchange operators, numberexcitation operators, and double excitation operators). Each interaction term is synthesized into a piece of quantum circuit following one of a small number of patterns (called "circuit templates"). Finally, the quantum phase estimation algorithm is applied to the resulting circuit to obtain the ground state energy.
The algorithm is described in:
 James D. Whitfield, Jacob Biamonte, and Alán AspuruGuzik. "Simulation of electronic structure Hamiltonians using quantum computers." Molecular Physics 109(5):735–750, 2011. See also http://arxiv.org/abs/1001.3855.
The present implementation is based on a detailed algorithm specification that was provided to us by the IARPA QCS program and written by Anargyros Papageorgiou, James Whitfield, Joseph Traub, and Alán AspuruGuzik.
Modules:
 Algorithms.GSE.Main: Command line interface.
 Algorithms.GSE.JordanWigner: The JordanWigner transformation and automated symbolic derivation of circuit templates for second quantized interaction terms.
 Algorithms.GSE.GSE: The main circuit for the GSE Algorithm.
 Algorithms.GSE.GSEData: Functions for reading the one and twoelectron integral data from a pair of data files.
 data WhatToShow
 data Options = Options {
 what :: WhatToShow
 format :: Format
 gatebase :: GateBase
 gse_orthodox :: Bool
 gse_b :: Int
 gse_m :: Int
 gse_occupied :: Int
 gse_delta_e :: Double
 gse_e_max :: Double
 gse_nfun :: Int > Int
 gse_h1_file :: String
 gse_h2_file :: String
 gse_datadir :: String
 defaultOptions :: Options
 showDefault :: Show a => (Options > a) > String
 options :: [OptDescr (Options > IO Options)]
 dopts :: [String] > IO Options
 usage :: IO ()
 main :: IO ()
 main_circuit :: Options > IO ()
 main_template :: Options > [Int] > IO ()
Documentation
This module provides a command line interface for the Ground State Estimation algorithm. This allows the user to set a number of parameters, such as b (the number of precision qubits), M (the number of spin orbitals), N (the number of occupied spin orbitals in the prepared approximate ground state), and E_{min} and E_{max} (the energy range). Command line options are also provided to specify the filenames for the Hamiltonian integral data, and to specify the output format and gate base.
Option processing
data WhatToShow Source #
An enumeration type for determining what the main function should do.
A data type to hold values set by command line options.
Options  

defaultOptions :: Options Source #
The default options.
options :: [OptDescr (Options > IO Options)] Source #
The list of command line options, in the format required by getOpt
.
dopts :: [String] > IO Options Source #
Process argvstyle command line options into an Options
structure.
The GSE main function
main_circuit :: Options > IO () Source #
Main function for outputting the GSE circuit.