|
| 1 | +# pairinglib API reference |
| 2 | + |
| 3 | +## hamiltonian.py |
| 4 | +- `build_sector(k, N) -> (nq, states, index)` — fixed-N Fock sector (bitstring list + lookup). |
| 5 | +- `H_pairing_sparse(k, g, N, states, index, delta=1.0) -> csr_matrix` — sparse N-sector H. |
| 6 | +- `fci_ground(H) -> float` — lowest eigenvalue (exact). |
| 7 | +- `E_HF(N, g, delta=1.0) -> float` — Hartree-Fock energy. |
| 8 | +- `build_H_full(k, g, delta=1.0) -> ndarray` — dense H over the full 2^(2k) space (HEA/gate-UCCSD). |
| 9 | + |
| 10 | +## ccd.py |
| 11 | +- `run_ccd(k, g, N, delta=1.0, ...) -> (E, iters)` — coupled-cluster doubles. |
| 12 | + |
| 13 | +## uccsd.py (operator-level / statevector) |
| 14 | +- `uccsd_pool(k, N) -> (singles, doubles)` |
| 15 | +- `setup_uccsd(k, N, delta=1.0) -> dict(nq, states, index, ...)` |
| 16 | +- `uccsd_vqe(setup, H, n_trotter=1, ...) -> (E, x, energy_fn, grad_fn)` |
| 17 | + |
| 18 | +## gates.py |
| 19 | +- `apply_1q(psi, U, q, n)`, `apply_cnot(psi, c, t, n)`, `Ry(th)`, `Rz(th)`, `Rx(th)` |
| 20 | +- `pauli_exp(psi, phi, pauli, n)` — exp(-i phi/2 P) via basis change + CNOT ladder + Rz. |
| 21 | + |
| 22 | +## gate_uccsd.py (gate-level circuits) |
| 23 | +- `make_single(i, a, n)`, `make_double(i, j, a, b, n)` — Pauli terms of an excitation. |
| 24 | +- `apply_exc_circuit(psi, theta, terms, n)` |
| 25 | +- `gate_uccsd_setup(k, N) -> dict(nq, terms, gens, hf, P, ncnot, nrot)` |
| 26 | +- `gate_uccsd_vqe(k, N, g, setup) -> (E, nit)` |
| 27 | +- `gate_uccsd_state(k, N, g) -> (E, statevector)` |
| 28 | + |
| 29 | +## refine.py |
| 30 | +- `prolong_matrix(k_low, k_high, N) -> ndarray` — gate-free basis embedding. |
| 31 | +- `refine_state(N, k_high, T, k_low=2, M=160, mu_buf=0.6, g=1.0) -> (psi, H_high)` |
| 32 | +- `refine_NK(N, k_high, Ts, ...) -> dict(ov, en, Eh, El, gap, ov0, E0)` |
| 33 | + |
| 34 | +## rodeo.py |
| 35 | +- `rodeo_post0(v, U, t, E) -> (state, prob)` — post-selected one-cycle filter. |
| 36 | +- `rodeo_cycle_ancilla(v, U, t, E)` — explicit ancilla circuit (same map). |
| 37 | +- `rodeo_sweep(v0, H, ts, E) -> (state, cumulative_acceptance)` |
| 38 | +- `rodeo_allzero_prob(v0, H, ts, E) -> float` — for energy scans. |
| 39 | +- `rodeo_track(v0, H, ts, E, target) -> (fidelity_array, acceptance_array)` |
0 commit comments