long division documentation added
@@ -156,3 +156,59 @@ Long Division
.. topic:: Declarative Name
When referring to Long Division declaratively inside Aqua, its code ``name``, by which Aqua dynamically discovers and loads it, is ``LongDivision``.
+
+This method calculates inverse of eigenvalues using binary long division and performs the corresponnding rotation. Long division is implemented as a sequance of subtraction (utilizing ripple carry adder module) and bit shifting. The method allows for adjusting of the reciprocal precision by changing number of iterations. The method was optimized for register conventions used in HHL algorithm (i.e. eigenvalues rescaled to values between 0 and 1).
+
+The rotation value is always scaled down additionally to the normal scale parameter by 0.5 to get the angle into the linear part of the arcsin(x). The following parameters are exposed:
+
+- The scale factor of the values:
+
+ .. code:: python
+
+ scale : float
+
+This parameter is used to scale the reciprocals such that for a scale C, the rotation is performed by an angle :math:`\arcsin{\frac{C}{\lambda}}`. If neither the ``scale`` nor the ``evo_time`` and and ``min_lambda`` parameters are specified, the smallest resolvable Eigenvalue is used.
+
+- The number of ancillae:
+
+ .. code:: python
+
+ num_ancillae = 4 | 5 | ...
+
+This parameter sets the number of ancillary qubits (the input register size). A positive ``int`` value is expected. The default value is ``None`` and the minimum value ``3``. If negative eigenvalues are enabled, the minimum value is ``4 ``The default is ``0``.
+
+- Switch for negative values:
+
+ .. code:: python
+
+ negative_evals : bool
+
+ If known beforehand that only positive values are present, one can set this switch to False and achieve a higher resolution in the output. The default is ``True``.
+
+- The mimimum value present:
+
+ .. code:: python
+
+ lambda_min : float
+
+ If the minimum value is known beforehand, the optimal ``scale`` parameter can be calculated using the parameters ``lambda_min`` and ``evo_time``.
+
+- The evolution time:
+
+ .. code:: python
+
+ evo_time : float
+
+ This parameter scales the Eigenvalues in the :ref:`qpe_components` onto the range (0,1] ( (-0.5,0.5] for negativ EV ). If the Partial Table Look Up is used together with the QPE, the scale parameter can be estimated if the minimum EV and the evolution time are passed as parameters. The default is ``None``.
+
+- The Reciprocal precision:
+
+ .. code:: python
+
+ precision : int
+
+The parameter sets minimum desired bit precision for the reciprocal. Due to shifting some of reciprocals, however, are effectively estimated with higher than this minimum specified precision.
+
+.. topic:: Declarative Name
+
+ When referring to Long Division declaratively inside Aqua, its code ``name``, by which Aqua dynamically discovers and loads it, is ``LongDivision``.
