qml.bose.binary_mapping

binary_mapping(bose_operator, n_states=2, ps=False, wire_map=None, tol=None)[source]

Convert a bosonic operator to a qubit operator using the standard-binary mapping.

The mapping procedure is described in equations \(27-29\) in arXiv:1507.03271.

Parameters
  • bose_operator (BoseWord, BoseSentence) – the bosonic operator

  • n_states (int) – Maximum number of allowed bosonic states. Defaults to 2.

  • ps (bool) – Whether to return the result as a PauliSentence instead of an operator. Defaults to False.

  • wire_map (dict) – A dictionary defining how to map the states of the Bose operator to qubit wires. If None, integers used to label the bosonic states will be used as wire labels. Defaults to None.

  • tol (float) – tolerance for discarding the imaginary part of the coefficients

Returns

a linear combination of qubit operators

Return type

Union[PauliSentence, Operator]

Example

>>> w = qml.BoseWord({(0, 0): "+"})
>>> qml.binary_mapping(w, n_states=4)
0.6830127018922193 * X(0)
+ -0.1830127018922193 * X(0) @ Z(1)
+ -0.6830127018922193j * Y(0)
+ 0.1830127018922193j * Y(0) @ Z(1)
+ 0.3535533905932738 * X(0) @ X(1)
+ -0.3535533905932738j * X(0) @ Y(1)
+ 0.3535533905932738j * Y(0) @ X(1)
+ (0.3535533905932738+0j) * Y(0) @ Y(1)