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())
References¶
[1] N. Hatano and M. Suzuki, Finding Exponential Product Formulas of Higher Orders, (2005). https://arxiv.org/abs/math-ph/0506007