get_params_to_statetensor_func
- qujax.get_params_to_statetensor_func(gate_seq, qubit_inds_seq, param_inds_seq, n_qubits=None)
Creates a function that maps circuit parameters to a statetensor.
- Parameters:
gate_seq (Sequence[str | Array | Callable[[Array], Array] | Callable[[], Array]]) – Sequence of gates. Each element is either a string matching a unitary array or function in qujax.gates, a custom unitary array or a custom function taking parameters and returning a unitary array. Unitary arrays will be reshaped into tensor form (2, 2,…)
qubit_inds_seq (Sequence[Sequence[int]]) – Sequences of sequences representing qubit indices (ints) that gates are acting on. i.e. [[0], [0,1], [1]] tells qujax the first gate is a single qubit gate acting on the zeroth qubit, the second gate is a two qubit gate acting on the zeroth and first qubit etc.
param_inds_seq (Sequence[None | Sequence[int]]) – Sequence of sequences representing parameter indices that gates are using, i.e. [[0], [], [5, 2]] tells qujax that the first gate uses the zeroth parameter (the float at position zero in the parameter vector/array), the second gate is not parameterised and the third gate uses the parameters at position five and two.
n_qubits (int | None) – Number of qubits, if fixed.
- Returns:
Function which maps parameters (and optional statetensor_in) to a statetensor. If no parameters are found then the function only takes optional statetensor_in.
- Return type:
Union[Callable[[ndarray, Optional[ndarray]], ndarray], Callable[[Optional[ndarray]], ndarray]]