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

{
  "logic_flow": [
            {
                "function": "SuzukiTrotter",
                "function_params": {
                    "pauli_operator": {
                        "pauli_list": [
                            ["XXZ", 1],
                            ["YXY", 0.5]
                        ]
                    },
                    "evolution_coefficient": "x",
                    "suzuki_parameters": {
                        "order": 1,
                        "repetitions": 1
                    }
                }
            }
        ],
  "preferences": {
        "draw_at_level": 4
  }
}
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

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)
model.preferences.draw_at_level = 4
model.synthesize()

 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