Skip to content

Suzuki Trotter

The SuzukiTrotter function produces the Suzuki-Trotter product for a given order and repetitions.

Syntax

Function: SuzukiTrotter

Parameters:

  • pauli_operator: PauliOperator
  • pauli_list: List[Tuple[str, complex]]
    • evolution_coefficient: Union[float, Parameter]
  • suzuki_parameters:
    • order: PositiveInt
    • repetitions: PositiveInt
  • use_naive_evolution: bool

Example

{
  "functions": [
    {
      "name": "main",
      "body": [
          {
              "function": "SuzukiTrotter",
              "function_params": {
                  "pauli_operator": {
                      "pauli_list": [
                          ["XXZ", 1],
                          ["YXY", 0.5]
                      ]
                  },
                  "evolution_coefficient": "x",
                  "suzuki_parameters": {
                      "order": 1,
                      "repetitions": 1
                  }
              }
          }
      ]
    }
  ]
}
from classiq.builtin_functions.exponentiation import PauliOperator
from classiq.builtin_functions.suzuki_trotter import SuzukiParameters
from classiq.builtin_functions import SuzukiTrotter
from classiq import Model, synthesize

model = Model()
trotter_params = SuzukiTrotter(
    pauli_operator=PauliOperator(pauli_list=[("XXZ", 1), ("YXZ", 0.5)]),
    evolution_coefficient="x",
    suzuki_parameters=SuzukiParameters(order=1, repetitions=1),
)
model.SuzukiTrotter(trotter_params)
synthesize(model.get_model())

 Suzuki_Trotter_Example

References

[1] N. Hatano and M. Suzuki, Finding Exponential Product Formulas of Higher Orders, (2005). https://arxiv.org/abs/math-ph/0506007