message: Added readthedocs for TriQ plugin
diff: @@ -1848,3 +1848,68 @@ In Python,
  composite = xacc.createCompositeInstruction('QFAST', { 'unitary' : ccnotMat })
  print(composite)
  +
  +Placement
  +---------
  +
  +Noise Adaptive Layout
  ++++++++++++++++++++++
  +The ``triQ`` placement IRTransformation plugin implements the noise adaptive layout mapping method
  +(See `Prakash Murali, et al. <https://arxiv.org/pdf/1901.11054.pdf>`_)
  +
  +The ``triQ`` plugin will automatically retrieve backend information (e.g. gate and readout fidelity) from the backend
  +``Accelerator`` if available.
  +
  +Otherwise, users can provide the backend configurations in JSON format using the ``backend-json`` key.
  +The backend Json schema must conform to IBMQ specifications.
  +
  +The ``triQ`` plugin depends on the Z3 SMT solver (version >= 4.8).
  +
  +Z3 can be installed via:
  +
  +- Ubuntu:
  +
  +.. code:: bash
  +
  + apt-get install -y libz3-dev
  +
  +- MacOS:
  +
  +.. code:: bash
  +
  + brew install z3
  +
  +Example:
  +
  +.. code:: cpp
  +
  + auto compiler = xacc::getCompiler("staq");
  + // Specify a remote IBM backend
  + auto accelerator = xacc::getAccelerator("ibm:ibmq_16_melbourne");
  + auto q = xacc::qalloc(5);
  + q->setName("q");
  + xacc::storeBuffer(q);
  + auto IR = compiler->compile(R"(__qpu__ void f(qreg q) {
  + OPENQASM 2.0;
  + include "qelib1.inc";
  + creg c[16];
  + cx q[2],q[1];
  + cx q[1],q[2];
  + cx q[3],q[2];
  + cx q[2],q[3];
  + cx q[4],q[3];
  + cx q[3],q[4];
  + h q[0];
  + t q[4];
  + t q[3];
  + t q[0];
  + cx q[3],q[4];
  + cx q[0],q[3];
  + cx q[4],q[0];
  + tdg q[3];
  + })");
  +
  + auto program = IR->getComposites()[0];
  + // Apply noise adaptive layout (TriQ)
  + auto irt = xacc::getIRTransformation("triQ");
  + irt->apply(program, accelerator);
  \ No newline at end of file
  