get_big_h_fixed_points_from_scratch#
- iqm.qaoa.tree_calculation.tree_calculation.get_big_h_fixed_points_from_scratch(p, big_d, h, big_gamma, big_beta, basis_list_t=None)#
Recursively implements equations (A23), (A24) and (A25) to obtain the fixed points of the calculation.
- Parameters:
p (int) – The number of QAOA layers, corresponding to the largest order of the fixed points that we want to calculate.
big_d (int) – Graph regularity minus one. Note that in expressions with \(Gamma\), we use \(\sqrt{D}\) in the denominator instead of \(\sqrt{d} = \sqrt{D+1}\), but this just introduces a small factor to the gamma angles.
h (float) – The local field of the problem.
big_gamma (ndarray[tuple[Any, ...], dtype[float64]]) – The array of the \(\gamma\) angles of the QAOA. The full array, with a 0 in the middle (see A8).
big_beta (ndarray[tuple[Any, ...], dtype[float64]]) – The array of the \(\beta\) angles of the QAOA. The full array, with a 0 in the middle (see A8).
basis_list_t (list[list[ndarray[tuple[Any, ...], dtype[int8]]]] | None) – For some compatibility, the basis list sorted by the symmetry sectors can be pregenerated and given as an input. Otherwise it’s generated internally.
- Returns:
A list of lists of the fixed points. The outer index labels the order of the fixed point and the inner index labels its input. Therefore taking [3][0] of the output returns \(H^{(3)}_{d-1}([-1, -1, -1, 1, -1, -1])\) because [-1, -1, -1, 1, -1, -1] is presumably the first basis state of 3 variables in symmetry sector 3.
- Return type:
tuple[list[ndarray[tuple[Any, …], dtype[complex128]]], list[ndarray[tuple[Any, …], dtype[complex128]]]]