Browse Source

Added Sphinx Documentation

Adam Kelly 5 years ago
parent
commit
a738ddb77c
7 changed files with 359 additions and 3 deletions
  1. 19 0
      Makefile
  2. 0 3
      README.md
  3. 53 0
      README.rst
  4. 186 0
      docs/conf.py
  5. 14 0
      docs/index.rst
  6. 52 0
      docs/installing.rst
  7. 35 0
      make.bat

+ 19 - 0
Makefile

@@ -0,0 +1,19 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+SOURCEDIR     = docs
+BUILDDIR      = build
+
+# Put it first so that "make" without argument is like "make help".
+help:
+	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

+ 0 - 3
README.md

@@ -1,3 +0,0 @@
-# QCGPU
-
-> The Python Edition

+ 53 - 0
README.rst

@@ -0,0 +1,53 @@
+QCGPU
+=====
+
+.. image:: https://img.shields.io/pypi/v/qcgpu.svg?style=for-the-badge
+   :target: https://pypi.python.org/pypi/qcgpu
+   :alt: PyPi Version
+.. image:: https://img.shields.io/pypi/l/qcgpu.svg?style=for-the-badge
+   :target: https://pypi.python.org/pypi/qcgpu/
+   :alt: License
+.. image:: https://img.shields.io/github/stars/qcgpu/qcgpu.svg?style=for-the-badge&label=Stars
+   :alt: GitHub stars
+   :target: https://github.com/QCGPU/qcgpu
+
+Open Source, High Performance & Hardware Accelerated, Quantum Computer Simulator.
+Read the `research paper`_.
+
+.. _`research paper`: https://arxiv.org/abs/1805.00988
+
+**Features:**
+
+* Written with OpenCL. Accelerated your simuations with GPUs and other accelerators, while still running cross device and cross platform.
+* Simulation of arbitrary quantum circuits
+* Includes example algorthm implementations
+* Support for arbitrary gate creation/application, with many built in.
+
+Installing
+==========
+
+This library is distributed on PyPI_ and can be installed using pip::
+
+    pip install qcgpu
+
+For more information read the full installing docs, :ref:`installing`.
+
+TODO: Fix this link
+
+.. _PyPI: https://pypi.python.org/pypi/qcgpu
+
+
+Configuration
+=============
+
+The ``sphinx_rtd_theme`` is highly customizable on both the page level and on a global level.
+To see all the possible configuration options read the configuring docs
+`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/configuring.html>`__.
+
+
+Contributing
+============
+
+If you would like to help improve the theme or have more control
+over the theme in case of a fork please read our contributing guide
+`here <https://sphinx-rtd-theme.readthedocs.io/en/latest/contributing.html>`__.

+ 186 - 0
docs/conf.py

@@ -0,0 +1,186 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+sys.path.insert(0, os.path.abspath('../'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = u'QCGPU'
+copyright = u'2018, Adam Kelly'
+author = u'Adam Kelly'
+
+# The short X.Y version
+version = u''
+# The full version, including alpha/beta/rc tags
+release = u'0.1.0'
+
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.intersphinx',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.githubpages',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'QCGPUdoc'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'QCGPU.tex', u'QCGPU Documentation',
+     u'Adam Kelly', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'qcgpu', u'QCGPU Documentation',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'QCGPU', u'QCGPU Documentation',
+     author, 'QCGPU', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+
+# -- Extension configuration -------------------------------------------------
+
+# -- Options for intersphinx extension ---------------------------------------
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {'https://docs.python.org/': None}

+ 14 - 0
docs/index.rst

@@ -0,0 +1,14 @@
+.. include:: ../README.rst
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+   
+   installing
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`

+ 52 - 0
docs/installing.rst

@@ -0,0 +1,52 @@
+.. _installing:
+
+Installing
+==========
+
+There are a few things you have to do to install QCGPU.
+
+Prerequisites
+-------------
+
+-  `OpenCL`_ (Ensure that an OpenCL implementation is installed for your
+   platform and that ``clinfo`` or some other diagnostic command will
+   run).
+-  `Python`_ (Version 2.7 or later).
+
+Installing from PyPI
+--------------------
+
+This library is distributed on `PyPI`_ and can be installed using pip:
+
+.. code:: bash
+
+   $ pip install qcgpu
+
+If you run into any issues, you should try installing from source.
+
+Installing from Source
+----------------------
+
+You can install QCGPU from the source. First, clone the repository off
+GitHub:
+
+.. code:: bash
+
+   $ git clone https://github.com/qcgpu/qcgpu
+
+Then you will need to ``cd`` into the directory, and install the
+requirements.
+
+.. code:: bash
+
+   $ pip install -r requirements.txt
+
+And finally you can install:
+
+.. code:: bash
+
+   $ python setup.py install
+
+.. _OpenCL: https://www.khronos.org/opencl/
+.. _Python: https://www.python.org/
+.. _PyPI: https://pypi.python.org/pypi/qcgpu

+ 35 - 0
make.bat

@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=docs
+set BUILDDIR=build
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+	echo.
+	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+	echo.installed, then set the SPHINXBUILD environment variable to point
+	echo.to the full path of the 'sphinx-build' executable. Alternatively you
+	echo.may add the Sphinx directory to PATH.
+	echo.
+	echo.If you don't have Sphinx installed, grab it from
+	echo.http://sphinx-doc.org/
+	exit /b 1
+)
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
+
+:end
+popd