# How to choose values of phi for Hamiltonian simulation with Quantum Singular Value Transform?

I am reading the review, Grand Unification of Quantum Algorithms, which covers the area known as "Quantum Singular Value Transform (QSVT)."

I am really trying to understand it behind the context of Hamiltonian Simulation, and have read many papers and watched a few videos outlining the methods.

I understand that we can block encode an $$N \times M$$ matrix $$H$$ into a unitary $$U$$.

We can then construct $$V_{\phi}(\theta) = \prod_{n=0}^{d - 1} R_\phi(\theta)$$ for $$\vec{\phi} \in \mathbb{R}^d$$ where $$R_\phi(\theta)$$ is a rotation about axis $$\phi$$ by angle $$\theta$$.

This forms the matrix

$$\begin{bmatrix} P(a) & iQ(a)\sqrt{1-a^2} \\ iQ^*(a)\sqrt{1-a^2} & P^*(a) \end{bmatrix}$$

where $$deg(P), deg(Q) \leq d$$ with a few more constraints that aren't important for now.

Then note that $$e^{-iHt} = cos(Ht) - isin(Ht)$$. This then allows us to break the problem into simulation of $$cos(Ht)$$ and $$-isin(Ht)$$.

We then use the Jacobi-Anger function expansion to approximate $$cos(Ht)$$ and $$sin(Ht)$$ up to some degree $$d$$.

These approximations are then used as the function $$P(a)$$ by picking some $$\vec{\phi}$$.

But how exactly would you pick the $$\vec{\phi}$$ for this case? I found some sources mentioning Remez-Type exchanges, but I can't find any implementations.

Thanks for any help!

• Hello. The code for this is very insightful--- but I have a bit of trouble with some of the mathematical intuition. I'm looking at the Laurent solvers (from QSPPACK and pyqsp) and it seems to only require the coefficients of the polynomial P(a). What would these polynomials be in the case of Hamiltonian simulation? Would they just be $J_i(t)$ where $J$ is the Bessel function? Or would it be something else? Thanks for any help. Oct 6, 2022 at 6:49