==========
bqpjson
==========
**release:**
.. image:: https://badge.fury.io/py/bqpjson.svg
:target: https://badge.fury.io/py/bqpjson
.. image:: https://readthedocs.org/projects/bqpjson/badge/?version=stable
:target: http://bqpjson.readthedocs.io/en/stable/?badge=stable
:alt: Documentation Status
**dev status:**
.. image:: https://travis-ci.org/lanl-ansi/bqpjson.svg?branch=master
:target: https://travis-ci.org/lanl-ansi/bqpjson
:alt: Build Report
.. image:: https://codecov.io/gh/lanl-ansi/bqpjson/branch/master/graph/badge.svg
:target: https://codecov.io/gh/lanl-ansi/bqpjson
:alt: Coverage Report
.. image:: https://readthedocs.org/projects/bqpjson/badge/?version=latest
:target: http://bqpjson.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
bqpjson is a minimalist python package for working with bqpjson data files, a json-based encoding of binary quadratic programs. A detailed description of the bqpjson data format is available `here <http://bqpjson.readthedocs.io/en/latest/bqpjson_format.html>`_.
The package can be installed via::
pip install bqpjson
**The bqpjson toolset includes:**
- *bqpjson* - python tools for the validation and transformation of bqpjson data (`documentation <http://bqpjson.readthedocs.io/en/latest/>`_)
- *bqpjson-schema.json* - a JSON-Schema for bqpjson data files
- *spin2bool* - a command line tool for converting a bqpjson data files between the spin and boolean variable spaces
- *bqp2qh* - a command line tool for converting bqpjson data files into qubist compatible hamiltonians
- *bqp2qubo* - a command line tool for converting bqpjson data into qubo data
- *bqp2mzn* - a command line tool for converting bqpjson data into a minizinc model
- *bqp2hfs* - a command line tool for converting bqpjson data into hfs data
**An example of bqpjson data**::
{
"description":"a simple model",
"id": 0,
"linear_terms": [
{"coeff": 1.3, "id": 2},
{"coeff": -0.7, "id": 6}
],
"metadata": {},
"offset": 0.0,
"quadratic_terms": [
{"coeff": -0.2, "id_head": 4, "id_tail": 2},
{"coeff": 1.5, "id_head": 6, "id_tail": 2}
],
"scale": 1.0,
"variable_domain": "spin",
"variable_ids": [2,4,6],
"version": "1.0.0"
}
License
------------
bqpjson is developed at Los Alamos National Laboratory and is provided under a BSD-ish license with a "modifications must be indicated" clause. See the `LICENSE.md` file for the full text. This package is part of the Hybrid Quantum-Classical Computing suite, known internally as LA-CC-16-032.
Changelog
------------
**staged**
- nothing
**v0.5.3**
- added scaling and offset return values to bqpjson_to_hfs
**v0.5.2**
- improved bqp2hfs robustness to coefficient precision issues
- dropped support for python 2.7 and 3.4
**v0.5.1**
- added support for translation to the HFS data format
**v0.5.0**
- initial release