From 289a6ea785b620e841834a658f488adea3996a72 Mon Sep 17 00:00:00 2001 From: Fionn Malone Date: Tue, 19 Sep 2023 04:51:50 +0000 Subject: [PATCH] Check alt keep values. --- qualtran/bloqs/chemistry/thc.ipynb | 1109 +------------------------- qualtran/bloqs/chemistry/thc.py | 102 ++- qualtran/bloqs/chemistry/thc_test.py | 45 +- 3 files changed, 136 insertions(+), 1120 deletions(-) diff --git a/qualtran/bloqs/chemistry/thc.ipynb b/qualtran/bloqs/chemistry/thc.ipynb index b992fcfd1..e577e041c 100644 --- a/qualtran/bloqs/chemistry/thc.ipynb +++ b/qualtran/bloqs/chemistry/thc.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "76fe66a3", "metadata": { "cq.autogen": "top_imports" @@ -56,25 +56,10 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "id": "e42cfb87", "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "dd35273086df46709d12bf71d60f1c54", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "HBox(children=(Output(outputs=({'output_type': 'display_data', 'data': {'text/plain': ' 2\u001b[0m state_vector \u001b[39m=\u001b[39m analyze_state_vector(ut_prep_gh, length\u001b[39m=\u001b[39;49mdim\u001b[39m*\u001b[39;49mdim)\n\u001b[1;32m 3\u001b[0m \u001b[39mprint\u001b[39m(state_vector)\n", - "File \u001b[0;32m~/projects/qualtran/qualtran/bloqs/chemistry/thc_tutorial.py:109\u001b[0m, in \u001b[0;36manalyze_state_vector\u001b[0;34m(gate_helper, length)\u001b[0m\n\u001b[1;32m 107\u001b[0m circuit \u001b[39m=\u001b[39m cirq\u001b[39m.\u001b[39mCircuit(cirq\u001b[39m.\u001b[39mdecompose_once(gate_helper\u001b[39m.\u001b[39moperation))\n\u001b[1;32m 108\u001b[0m \u001b[39m# result = cirq.Simulator(dtype=np.complex128).simulate(gate_helper.circuit)\u001b[39;00m\n\u001b[0;32m--> 109\u001b[0m result \u001b[39m=\u001b[39m cirq\u001b[39m.\u001b[39;49mSimulator(dtype\u001b[39m=\u001b[39;49mnp\u001b[39m.\u001b[39;49mcomplex128)\u001b[39m.\u001b[39;49msimulate(circuit)\n\u001b[1;32m 110\u001b[0m state_vector \u001b[39m=\u001b[39m result\u001b[39m.\u001b[39mfinal_state_vector\n\u001b[1;32m 111\u001b[0m \u001b[39m# State vector is of the form |l>|temp_{l}>. We trace out the |temp_{l}> part to\u001b[39;00m\n\u001b[1;32m 112\u001b[0m \u001b[39m# get the coefficients corresponding to |l>.\u001b[39;00m\n\u001b[1;32m 113\u001b[0m \u001b[39m# L, logL = length, length.bit_length()\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 118\u001b[0m \u001b[39m# assert all(np.abs(prepared_state[:L]) > 1e-6) and all(np.abs(prepared_state[L:]) <= 1e-6)\u001b[39;00m\n\u001b[1;32m 119\u001b[0m \u001b[39m# prepared_state = prepared_state[:L] / np.sqrt(num_non_zero[:L])\u001b[39;00m\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulator.py:496\u001b[0m, in \u001b[0;36mSimulatesFinalState.simulate\u001b[0;34m(self, program, param_resolver, qubit_order, initial_state)\u001b[0m\n\u001b[1;32m 471\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39msimulate\u001b[39m(\n\u001b[1;32m 472\u001b[0m \u001b[39mself\u001b[39m,\n\u001b[1;32m 473\u001b[0m program: \u001b[39m'\u001b[39m\u001b[39mcirq.AbstractCircuit\u001b[39m\u001b[39m'\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 476\u001b[0m initial_state: Any \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m,\n\u001b[1;32m 477\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m TSimulationTrialResult:\n\u001b[1;32m 478\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"Simulates the supplied Circuit.\u001b[39;00m\n\u001b[1;32m 479\u001b[0m \n\u001b[1;32m 480\u001b[0m \u001b[39m This method returns a result which allows access to the entire\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 494\u001b[0m \u001b[39m SimulationTrialResults for the simulation. Includes the final state.\u001b[39;00m\n\u001b[1;32m 495\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 496\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49msimulate_sweep(\n\u001b[1;32m 497\u001b[0m program, study\u001b[39m.\u001b[39;49mParamResolver(param_resolver), qubit_order, initial_state\n\u001b[1;32m 498\u001b[0m )[\u001b[39m0\u001b[39m]\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulator.py:511\u001b[0m, in \u001b[0;36mSimulatesFinalState.simulate_sweep\u001b[0;34m(self, program, params, qubit_order, initial_state)\u001b[0m\n\u001b[1;32m 500\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39msimulate_sweep\u001b[39m(\n\u001b[1;32m 501\u001b[0m \u001b[39mself\u001b[39m,\n\u001b[1;32m 502\u001b[0m program: \u001b[39m'\u001b[39m\u001b[39mcirq.AbstractCircuit\u001b[39m\u001b[39m'\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 505\u001b[0m initial_state: Any \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m,\n\u001b[1;32m 506\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m List[TSimulationTrialResult]:\n\u001b[1;32m 507\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"Wraps computed states in a list.\u001b[39;00m\n\u001b[1;32m 508\u001b[0m \n\u001b[1;32m 509\u001b[0m \u001b[39m Prefer overriding `simulate_sweep_iter`.\u001b[39;00m\n\u001b[1;32m 510\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 511\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mlist\u001b[39m(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39msimulate_sweep_iter(program, params, qubit_order, initial_state))\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulator_base.py:328\u001b[0m, in \u001b[0;36mSimulatorBase.simulate_sweep_iter\u001b[0;34m(self, program, params, qubit_order, initial_state)\u001b[0m\n\u001b[1;32m 322\u001b[0m prefix, suffix \u001b[39m=\u001b[39m (\n\u001b[1;32m 323\u001b[0m split_into_matching_protocol_then_general(program, sweep_prefixable)\n\u001b[1;32m 324\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_can_be_in_run_prefix(\u001b[39mself\u001b[39m\u001b[39m.\u001b[39mnoise)\n\u001b[1;32m 325\u001b[0m \u001b[39melse\u001b[39;00m (program[\u001b[39m0\u001b[39m:\u001b[39m0\u001b[39m], program)\n\u001b[1;32m 326\u001b[0m )\n\u001b[1;32m 327\u001b[0m step_result \u001b[39m=\u001b[39m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m--> 328\u001b[0m \u001b[39mfor\u001b[39;00m step_result \u001b[39min\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_core_iterator(circuit\u001b[39m=\u001b[39mprefix, sim_state\u001b[39m=\u001b[39msim_state):\n\u001b[1;32m 329\u001b[0m \u001b[39mpass\u001b[39;00m\n\u001b[1;32m 330\u001b[0m sim_state \u001b[39m=\u001b[39m step_result\u001b[39m.\u001b[39m_sim_state\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulator_base.py:220\u001b[0m, in \u001b[0;36mSimulatorBase._core_iterator\u001b[0;34m(self, circuit, sim_state, all_measurements_are_terminal)\u001b[0m\n\u001b[1;32m 217\u001b[0m \u001b[39mcontinue\u001b[39;00m\n\u001b[1;32m 219\u001b[0m \u001b[39m# Simulate the operation\u001b[39;00m\n\u001b[0;32m--> 220\u001b[0m protocols\u001b[39m.\u001b[39;49mact_on(op, sim_state)\n\u001b[1;32m 221\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[1;32m 222\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mself\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__class__\u001b[39m\u001b[39m.\u001b[39m\u001b[39m__name__\u001b[39m\u001b[39m}\u001b[39;00m\u001b[39m doesn\u001b[39m\u001b[39m'\u001b[39m\u001b[39mt support \u001b[39m\u001b[39m{\u001b[39;00mop\u001b[39m!r}\u001b[39;00m\u001b[39m\"\u001b[39m)\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/protocols/act_on_protocol.py:153\u001b[0m, in \u001b[0;36mact_on\u001b[0;34m(action, sim_state, qubits, allow_decompose)\u001b[0m\n\u001b[1;32m 151\u001b[0m \u001b[39mif\u001b[39;00m arg_fallback \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 152\u001b[0m qubits \u001b[39m=\u001b[39m action\u001b[39m.\u001b[39mqubits \u001b[39mif\u001b[39;00m is_op \u001b[39melse\u001b[39;00m qubits\n\u001b[0;32m--> 153\u001b[0m result \u001b[39m=\u001b[39m arg_fallback(action, qubits\u001b[39m=\u001b[39;49mqubits, allow_decompose\u001b[39m=\u001b[39;49mallow_decompose)\n\u001b[1;32m 154\u001b[0m \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mTrue\u001b[39;00m:\n\u001b[1;32m 155\u001b[0m \u001b[39mreturn\u001b[39;00m\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulation_product_state.py:118\u001b[0m, in \u001b[0;36mSimulationProductState._act_on_fallback_\u001b[0;34m(self, action, qubits, allow_decompose)\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[39m# Act on the args with the operation\u001b[39;00m\n\u001b[1;32m 117\u001b[0m act_on_qubits \u001b[39m=\u001b[39m qubits \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(action, ops\u001b[39m.\u001b[39mGate) \u001b[39melse\u001b[39;00m \u001b[39mNone\u001b[39;00m\n\u001b[0;32m--> 118\u001b[0m protocols\u001b[39m.\u001b[39;49mact_on(action, op_args, act_on_qubits, allow_decompose\u001b[39m=\u001b[39;49mallow_decompose)\n\u001b[1;32m 120\u001b[0m \u001b[39m# Decouple any measurements or resets\u001b[39;00m\n\u001b[1;32m 121\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39msplit_untangled_states \u001b[39mand\u001b[39;00m \u001b[39misinstance\u001b[39m(\n\u001b[1;32m 122\u001b[0m gate_opt, (ops\u001b[39m.\u001b[39mResetChannel, ops\u001b[39m.\u001b[39mMeasurementGate)\n\u001b[1;32m 123\u001b[0m ):\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/protocols/act_on_protocol.py:153\u001b[0m, in \u001b[0;36mact_on\u001b[0;34m(action, sim_state, qubits, allow_decompose)\u001b[0m\n\u001b[1;32m 151\u001b[0m \u001b[39mif\u001b[39;00m arg_fallback \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m 152\u001b[0m qubits \u001b[39m=\u001b[39m action\u001b[39m.\u001b[39mqubits \u001b[39mif\u001b[39;00m is_op \u001b[39melse\u001b[39;00m qubits\n\u001b[0;32m--> 153\u001b[0m result \u001b[39m=\u001b[39m arg_fallback(action, qubits\u001b[39m=\u001b[39;49mqubits, allow_decompose\u001b[39m=\u001b[39;49mallow_decompose)\n\u001b[1;32m 154\u001b[0m \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mTrue\u001b[39;00m:\n\u001b[1;32m 155\u001b[0m \u001b[39mreturn\u001b[39;00m\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/state_vector_simulation_state.py:388\u001b[0m, in \u001b[0;36mStateVectorSimulationState._act_on_fallback_\u001b[0;34m(self, action, qubits, allow_decompose)\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[39m# Try each strategy, stopping if one works.\u001b[39;00m\n\u001b[1;32m 387\u001b[0m \u001b[39mfor\u001b[39;00m strat \u001b[39min\u001b[39;00m strats:\n\u001b[0;32m--> 388\u001b[0m result \u001b[39m=\u001b[39m strat(action, \u001b[39mself\u001b[39;49m, qubits)\n\u001b[1;32m 389\u001b[0m \u001b[39mif\u001b[39;00m result \u001b[39mis\u001b[39;00m \u001b[39mFalse\u001b[39;00m:\n\u001b[1;32m 390\u001b[0m \u001b[39mbreak\u001b[39;00m \u001b[39m# coverage: ignore\u001b[39;00m\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulation_state.py:343\u001b[0m, in \u001b[0;36mstrat_act_on_from_apply_decompose\u001b[0;34m(val, args, qubits)\u001b[0m\n\u001b[1;32m 341\u001b[0m all_ancilla\u001b[39m.\u001b[39mupdate(curr_ancilla)\n\u001b[1;32m 342\u001b[0m protocols\u001b[39m.\u001b[39mact_on(operation, args)\n\u001b[0;32m--> 343\u001b[0m args \u001b[39m=\u001b[39m args\u001b[39m.\u001b[39;49mremove_qubits(\u001b[39mtuple\u001b[39;49m(all_ancilla))\n\u001b[1;32m 344\u001b[0m \u001b[39mif\u001b[39;00m args \u001b[39mis\u001b[39;00m \u001b[39mNotImplemented\u001b[39m:\n\u001b[1;32m 345\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39m{\u001b[39;00m\u001b[39mtype\u001b[39m(args)\u001b[39m}\u001b[39;00m\u001b[39m implements add_qubits but not remove_qubits.\u001b[39m\u001b[39m\"\u001b[39m)\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/state_vector_simulation_state.py:371\u001b[0m, in \u001b[0;36mStateVectorSimulationState.remove_qubits\u001b[0;34m(self, qubits)\u001b[0m\n\u001b[1;32m 369\u001b[0m \u001b[39mif\u001b[39;00m ret \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNotImplemented\u001b[39m:\n\u001b[1;32m 370\u001b[0m \u001b[39mreturn\u001b[39;00m ret\n\u001b[0;32m--> 371\u001b[0m extracted, remainder \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mfactor(qubits, inplace\u001b[39m=\u001b[39;49m\u001b[39mTrue\u001b[39;49;00m)\n\u001b[1;32m 372\u001b[0m remainder\u001b[39m.\u001b[39m_state\u001b[39m.\u001b[39m_state_vector \u001b[39m*\u001b[39m\u001b[39m=\u001b[39m extracted\u001b[39m.\u001b[39m_state\u001b[39m.\u001b[39m_state_vector\u001b[39m.\u001b[39mreshape((\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m,))[\u001b[39m0\u001b[39m]\n\u001b[1;32m 373\u001b[0m \u001b[39mreturn\u001b[39;00m remainder\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/simulation_state.py:215\u001b[0m, in \u001b[0;36mSimulationState.factor\u001b[0;34m(self, qubits, validate, atol, inplace)\u001b[0m\n\u001b[1;32m 213\u001b[0m extracted \u001b[39m=\u001b[39m copy\u001b[39m.\u001b[39mcopy(\u001b[39mself\u001b[39m)\n\u001b[1;32m 214\u001b[0m remainder \u001b[39m=\u001b[39m \u001b[39mself\u001b[39m \u001b[39mif\u001b[39;00m inplace \u001b[39melse\u001b[39;00m copy\u001b[39m.\u001b[39mcopy(\u001b[39mself\u001b[39m)\n\u001b[0;32m--> 215\u001b[0m e, r \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_state\u001b[39m.\u001b[39;49mfactor(\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mget_axes(qubits), validate\u001b[39m=\u001b[39;49mvalidate, atol\u001b[39m=\u001b[39;49matol)\n\u001b[1;32m 216\u001b[0m extracted\u001b[39m.\u001b[39m_state \u001b[39m=\u001b[39m e\n\u001b[1;32m 217\u001b[0m remainder\u001b[39m.\u001b[39m_state \u001b[39m=\u001b[39m r\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/sim/state_vector_simulation_state.py:135\u001b[0m, in \u001b[0;36m_BufferedStateVector.factor\u001b[0;34m(self, axes, validate, atol)\u001b[0m\n\u001b[1;32m 114\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mfactor\u001b[39m(\n\u001b[1;32m 115\u001b[0m \u001b[39mself\u001b[39m, axes: Sequence[\u001b[39mint\u001b[39m], \u001b[39m*\u001b[39m, validate\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m, atol\u001b[39m=\u001b[39m\u001b[39m1e-07\u001b[39m\n\u001b[1;32m 116\u001b[0m ) \u001b[39m-\u001b[39m\u001b[39m>\u001b[39m Tuple[\u001b[39m'\u001b[39m\u001b[39m_BufferedStateVector\u001b[39m\u001b[39m'\u001b[39m, \u001b[39m'\u001b[39m\u001b[39m_BufferedStateVector\u001b[39m\u001b[39m'\u001b[39m]:\n\u001b[1;32m 117\u001b[0m \u001b[39m \u001b[39m\u001b[39m\"\"\"Factors a state vector into two independent state vectors.\u001b[39;00m\n\u001b[1;32m 118\u001b[0m \n\u001b[1;32m 119\u001b[0m \u001b[39m This function should only be called on state vectors that are known to be separable, such\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 133\u001b[0m \u001b[39m axes, in the same order as the original state vector.\u001b[39;00m\n\u001b[1;32m 134\u001b[0m \u001b[39m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 135\u001b[0m extracted_tensor, remainder_tensor \u001b[39m=\u001b[39m transformations\u001b[39m.\u001b[39;49mfactor_state_vector(\n\u001b[1;32m 136\u001b[0m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_state_vector, axes, validate\u001b[39m=\u001b[39;49mvalidate, atol\u001b[39m=\u001b[39;49matol\n\u001b[1;32m 137\u001b[0m )\n\u001b[1;32m 138\u001b[0m extracted \u001b[39m=\u001b[39m _BufferedStateVector(\n\u001b[1;32m 139\u001b[0m state_vector\u001b[39m=\u001b[39mextracted_tensor, buffer\u001b[39m=\u001b[39mnp\u001b[39m.\u001b[39mempty_like(extracted_tensor)\n\u001b[1;32m 140\u001b[0m )\n\u001b[1;32m 141\u001b[0m remainder \u001b[39m=\u001b[39m _BufferedStateVector(\n\u001b[1;32m 142\u001b[0m state_vector\u001b[39m=\u001b[39mremainder_tensor, buffer\u001b[39m=\u001b[39mnp\u001b[39m.\u001b[39mempty_like(remainder_tensor)\n\u001b[1;32m 143\u001b[0m )\n", - "File \u001b[0;32m~/.venvs/qualtran/lib/python3.11/site-packages/cirq/linalg/transformations.py:677\u001b[0m, in \u001b[0;36mfactor_state_vector\u001b[0;34m(t, axes, validate, atol)\u001b[0m\n\u001b[1;32m 675\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m np\u001b[39m.\u001b[39mallclose(t2, t1, atol\u001b[39m=\u001b[39matol):\n\u001b[1;32m 676\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mnot\u001b[39;00m np\u001b[39m.\u001b[39misclose(np\u001b[39m.\u001b[39mlinalg\u001b[39m.\u001b[39mnorm(t1), \u001b[39m1\u001b[39m):\n\u001b[0;32m--> 677\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m'\u001b[39m\u001b[39mInput state must be normalized.\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 678\u001b[0m \u001b[39mraise\u001b[39;00m EntangledStateError(\u001b[39m'\u001b[39m\u001b[39mThe tensor cannot be factored by the requested axes\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m 679\u001b[0m \u001b[39mreturn\u001b[39;00m extracted, remainder\n", - "\u001b[0;31mValueError\u001b[0m: Input state must be normalized." - ] - } - ], + "outputs": [], "source": [ "from qualtran.bloqs.chemistry.thc_tutorial import analyze_state_vector\n", "state_vector = analyze_state_vector(ut_prep_gh, length=dim*dim)\n", @@ -274,19 +202,10 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "id": "496c9c45", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[3.33333333e-01+0.j 3.33333333e-01+0.j 3.33333333e-01+0.j\n", - " 4.66075047e-32+0.j]\n" - ] - } - ], + "outputs": [], "source": [ "prep = cirq_ft.PrepareUniformSuperposition(3)\n", "one_d_prep = cft_testing.GateHelper(\n", @@ -333,140 +252,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "1b6bb0e0", "metadata": { "cq.autogen": "_make_uniform_superposition.py" }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "my_graph\n", - "\n", - "\n", - "\n", - "mu_G6\n", - "mu\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC\n", - "\n", - "Unifor..\n", - "\n", - "mu\n", - "\n", - "nu\n", - "\n", - "succ\n", - "\n", - "eq_nu_mp1\n", - "\n", - "\n", - "\n", - "mu_G6:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "nu_G4\n", - "nu\n", - "\n", - "\n", - "\n", - "nu_G4:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "succ_G2\n", - "succ\n", - "\n", - "\n", - "\n", - "succ_G2:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "eq_nu_mp1_G9\n", - "eq_nu_mp1\n", - "\n", - "\n", - "\n", - "eq_nu_mp1_G9:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "mu_G8\n", - "mu\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->mu_G8:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "nu_G0\n", - "nu\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->nu_G0:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "succ_G11\n", - "succ\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->succ_G11:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "eq_nu_mp1_G7\n", - "eq_nu_mp1\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->eq_nu_mp1_G7:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from qualtran.bloqs.chemistry.thc import UniformSuperpositionTHC\n", "\n", @@ -478,39 +269,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "ebfe7689", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_2343258/3234429489.py:5: UserWarning: The figure layout has changed to tight\n", - " fig.tight_layout()\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "T-count: 492\n", - "Rotations: 0\n", - "Cliffords: 1124\n", - "\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAACHkAAAHqCAYAAACavABVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd1gU1/s28HuXziIoCAgKInbFgr0LWMAWiRpjQ9CoXxO7JibGWBM1JmqsUZNYMfaoMaLYidhjwS42sCJgAQSUOu8fvuxPpMgu22a4P9fFpczMmXkOZ+aZOTtnZ2SCIAggIiIiIiIiIiIiIiIiIiIiIoMm13cARERERERERERERERERERERPRhHORBREREREREREREREREREREJAIc5EFEREREREREREREREREREQkAhzkQURERERERERERERERERERCQCHORBREREREREREREREREREREJAIc5EFEREREREREREREREREREQkAhzkQURERERERERERERERERERCQCHORBREREREREREREREREREREJALG+g6gMNnZ2Xjy5AlKlSoFmUym73CIiIiIiIiIiIiIiIiIiIiINE4QBLx69QrOzs6Qywt+XodBD/J48uQJXFxc9B0GERERERERERERERERERERkdY9fPgQFSpUKHC+QQ/yKFWqFIC3lbC2ttZzNERERERERERERERERERERESal5SUBBcXF+U4iYIY9CCPnFe0WFtbc5AHERERERERERERERERERERSVrOOImCFPwiFyIiIiIiIiIiIiIiIiIiIiIyGBzkQURERERERERERERERERERCQCHORBREREREREREREREREREREJAIc5EFEREREREREREREREREREQkAhzkQURERERERERERERERERERCQCHORBREREREREREREREREREREJAIc5EFEREREREREREREREREREQkAhzkQURERERERERERERERERERCQCHORBREREREREREREREREREREJAIc5EFEREREREREREREREREREQkAhzkQURERERERERERERERERERCQCHORBVMK9ePEC0dHRSE1N1XcoRCRxMpkMu3bt0ncYRESkZcz3RJRDKv3NouS1oKAg+Pv76yQebZFKe1HJxOsPIiISM57HiEhVHORBJBEFfaAUFhYGmUyGhIQE5bTXr19j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u25EhoDHGBkKqe6LUq0XIN26SbVeRIaEx5m4SLm9pFw3IkNR1PERfJIHERERERERERERERERERERkQhwkAcRERERERERERERERERERGRCHCQBxEREREREREREREREREREZEIcJAHERERERERERERERERERERkQgY6zsAIiIiIiIiIiIiIiIiUs2DBw9w/vx5vH79WuvbkslksLOzQ6tWrWBpaan17REREVHBOMiDiIiIiIiIiIiIiIhIJB49eoS+ffvi+PHjOt+2QqHA559/jrlz50Iu58PiiYiI9IGDPIiIiIiIiIiIiIiIiEQgKSkJ3t7eSE9PR3BwMNq3bw9ra2vIZDKtbjcrKwsPHz7En3/+idmzZ0MQBMybN0+r2yQiIqL8cZAHERERERERERERERGRCOzevRt37tzBjRs3UKNGDZ1uu2bNmvjhhx8gl8sxf/58zJgxAwqFQqcxEBEREcBnaREREREREREREREREYnAvn370KhRI50P8HhX//79kZqaimPHjuktBiIiopKMgzyIiIiIiIiIiIiIiIhE4NmzZ6hYsaJeY8jZ/rNnz/QaBxERUUnFQR5EREREREREREREREQiIAgCjIyM9BpDzvYFQdBrHERERCUVB3kQERERERERERERERGJnJeXF8aOHauRdbm5uWHhwoUaWRcRERFpltYGeURHR+Ozzz5DpUqVYGFhgcqVK2PatGlIT0/X1iaJiIiIiIiIiIiIiIgoH4IgIDMzU99hEBERUTFpbZDHzZs3kZ2djZUrV+LatWv45ZdfsGLFCnz77bfa2qTebN++HXXq1IGFhQXs7OzQvn17pKSk5Dtq1t/fH0FBQcrf09LS8PXXX8PFxQVmZmaoUqUKVq1apZx/7do1dO3aFdbW1ihVqhRat26Nu3fv6qhmRERERERERERERERk6IKCgvDvv/9i0aJFkMlkkMlkWLt2LWQyGfbt24eGDRvCzMwMx48fx6tXr9C/f38oFAo4OTnhl19+yXU/w8vLC/fv38e4ceOU6yIiItIW3mtXnbG2Vuzn5wc/Pz/l7+7u7oiMjMTy5csxb948bW1W52JiYtC3b1/89NNP+Pjjj/Hq1SuEh4cX+V10AwcOxKlTp7B48WLUq1cPUVFRePbsGQDg8ePHaNOmDby8vHDkyBFYW1vjxIkTHGlLRERERERERERERERKixYt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QUREREREREREREREJALdu3eHu7s7fH19MWfOHLRv3x7W1tZaf3VKVlYWHjx4gI0bN2LmzJkYM2YMFAqFVrdJRERE+eMgDyIiIiIiIiIiIiIiIhGwsbHB0aNH0adPH/Tt21fn27ewsMCYMWMwf/58nW+biIiI3uIgDyIiIiIiIiIiIiIiIpFwdXXFyZMnERUVhfPnzyM1NbXIZdPS0jBs2DAAwG+//QYzM7MilZPJZChbtizatGnDJ3gQERHpGQd5EBERERERERERERERiUylSpVQqVIllcqkpKQoB3n069ePAzaIiIhESK7vAIiIiIiIiIiIiIiIiIiIiIjowzjIg4iIiIhE5ebNm2jWrBnMzc1Rv379Aqd9SFBQEPz9/ZW/e3l5YezYsRqPl4iI6H08lxERERkmnqPFh21GREQlEV/XQkREREQ6JZPJCp0/bdo0TJ8+vdD5CoUCkZGRsLKyKnCaqnbs2AETExO1yhIRUcnCcxkREZFh4jlafNhmREREquMgDyIiIiLSqZiYGOX/t2zZgqlTpyIyMlI57UMfwNy9exddunRBxYoVC52mKltbW7XLEhFRycJzGRERkWHiOVp82GZERESq4+taiIiIiEinypUrp/yxsbGBTCZT/u7g4IAFCxagQoUKMDMzQ/369REaGqosK5PJcP78ecycORMymQzTp0/PdxoAXLlyBT4+PrCwsICdnR2GDRuG5OTkAuPio1iJiKioeC4jIiIyTDxHiw/bjIiISHUc5EFEREREBmPRokWYP38+5s2bh8uXL8PX1xcfffQRbt++DeDtN3xq166NCRMmICYmBl9++WW+01JSUuDr64syZcrgv//+w7Zt23Do0CGMHDlSzzUkIiKp47mMiIjIMPEcLT5sMyIiovxxkAcRERERGYx58+bh66+/Rp8+fVC9enXMnTsX9evXx8KFCwG8/YaPsbExrKysUK5cOeW/70/buHEj3rx5g/Xr18PDwwM+Pj5YunQpgoODERsbq99KEhGRpPFcRkREZJh4jhYfthkREVH+OMiDiIiIiAxCUlISnjx5gpYtW+aa3rJlS9y4cUOldd24cQP16tWDQqHItZ7s7Oxc7/YlIiLSJJ7LiIiIDBPP0eLDNiMiIioYB3kQERERERERERERERERERERiQAHeRARERGRQbC2toazszNOnDiRa/qJEydQq1Yt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+fj46J133tGsWbNUunRpdejQIcf1KlWqpF27dql58+Z64YUXVLNmTbVu3VpbtmzR+++/n7Xe8ePHs80kEh8fr0OHDuWzpgAAAAAAAID7O3v2bJ4z7QJGMZlvfDm4E0lISFBYWJji4+NzvWEO2NL06dP1zDPPaPr06XrqqackSYmJiQoODpYkXb58WUFBQUaGCMCFuGv74a71cmfueszctV7ujGPmejhmrodj5lo4Xq6HYwZn4a7norvWy5256zFz13pJ7ls3d62X5N51c0fufLzctW651WvHjh1q2rSpHnvsMc2bNy/PWXkBW7E0P4KZPID/l5ngIV3LzAMAAAAAAAAAAADgeRISEpSWlqaPP/5Yffv2ZUYPOBWSPAD9L8HjhRdeUKlSpYwOBwAAAAAAAAAAAIDBJk+erEWLFpHoAadCkgc83vUJHlOmTJHJZDI6JAAAAAAAAAAAAAAG69q1qxYvXkyiB5yKj9EBAEYiwQMAAAAAAAAAAABAbrp27SpJ6t69uyRp3rx58vb2NjIkeDiSPOCxckvw8PLy0rvvvqslS5ZIksxms3x9fSVJderUsToRJDIyUnPmzCGBBIBLio+P1+LFi/XZZ5/pn3/+UXp6eq7top+fn+644w49+uijevTRR+Xjw2UGPI/ZbNaGDRu0dOlS7d69W8nJyYbFYjKZVKRIEbVp00a9evVS5cqVDYsFrmHbtm1atGiRduzYoStXrkjK+VqYcwsAANhCfHy8lixZos8++0x///23xePNTp06Za0DeBKz2azVq1dr2bJl2rdvn1JSUvJdTkHud2cKCwtTy5Yt1atXL1WrVi1fZQCu7t9//9XHH3+stWvX6syZM8rIyMj1M1aoUCHVrl1bjz32mNq0acMzIzuZNm2a3n//fau2ye2YJSYmSrr23FAi0QPOhacv8Eh5zeCxYMECrVu3zib72bdvn+bNm6dZs2Yx+ATgcs6fP69WrVrpt99+U/PmzdW6des827Lk5GTt2LFD3bp108qVK7V48WISPeBRzGazXnrpJb322muqWrWqmjdvrqCgIMMG7RkZGTpx4oSmTp2qqVOnauPGjWrQoIEhscD5zZw5U4MHD1ZERIRat26twoUL53ru3nhubdq0SfXr13dwxAAAwJWdP39erVu31p49eyweb/7444/q1q2bOnfurEWLFnGvDR7FbDbrmWee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0uXLl93mBowz1mv//v3q1auXfv31V6NDyeLv76/u3btr5syZDnstXUZGhkaMGKGZM2fq8uXLFm1jMpkUFRWlRYsWqVSpUnaOEHBfztg2InccL9fDMYOjpaamatCgQVq8eLHF401vb++s8Sb3VGFv7touOmO9jh49qh49emjHjh1Gh5IlMDBQffv21bRp0+Tt7W1oLM54zKy1YcMGPfnkkzp69KjF25QvX15vv/22OnbsaL/AgP/nCp+zunXrateuXTYrr0yZMvr1119VrFgxSdKVK1fUoUMHbd++nUQP2IWl+RHM5AGPc6tXtGzevDnf37q90Zo1a9StWzelpqbapDwAzqlHjx5as2aNxo0bp44dO6pEiRLy8sr5jWhms1nnzp3T2rVr9eKLL2ZN75bb+gBcR+Y1RsmSJfXpp5+qSZMmCgwMNCyejIwMnTp1SqtWrdKYMWOUmJioTz75xCH7HjZsmKZOnaoXX3xRjz32mMqVK5frDT+z2ayEhARt3rxZo0ePVvPmzfXzzz9n3TQAAADwZD179tTq1as1duxYPfzww1aNN9u1a6fvvvuO8SbgBs6cOaOoqCgVKlRIixcvVvPmzRUUFGTYDA4ZGRn6999/tXz5cv33v/9VamqqPvjgA0NicRfbt29Xhw4d1KRJE82cOVN16tSRv79/ruunpqZqz549euutt9S5c2etW7dOrVq1cmDEgHOKj4/Xc889p7Fjx9qkPF9f32yfRWb0gLMgyQMe5VYJHtK1b9fb6qFCQECATcoB4LyOHj2qFStWaO7cuerbt69F24SEhOjJJ59UxYoVdf/992vnzp1q2LChnSMFYG8fffSRkpKS9PXXXzvN9NihoaEaPny4ihQpooEDB2rKlCmKiIiw6z4vX76s9957Ty+//LJeffVVi7YJCQlRnz59VLduXdWqVUtffvmlunbtatc4AQAAnF1sbKyWL1+u2bNnq3///hZtkznerFSpktq1a6cdO3YoMjLSzpECsLdly5YpLi5OR48eVbly5YwOR9K18eaYMWMUEBCgkSNHauLEiU4zFnZF06dPV6VKlbRmzZo8kzuu17x5czVp0kSNGjXStGnTSPIA/p+fn59dvzxEogecAWnc8BiWJHgAgLXWr18vX19fdenSxept27Rpo2LFimnt2rV2iAyAo61du1b333+/U97Ueuyxx+Tj46P1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zlIHRx0vibG2JWx1TzizLKAg7PUMkAQPGIUkD3gESxI9ypQpY3W5ISEhCgkJsVWYgNsKDw/XP//8o4yMjKz3W+Zl69atNy37+++/FR4ebofoANhLeHi4fvzxR5nNZrsOxocPH67hw4fbrfyrV6/q33//tTi5QrpW94K+t7d27dr65Zdf8r39P//8I0lWxQ0AyC48PNzm752/kb37MUk6ceKEJHE9DQBwG+Hh4frhhx9cfryZnp5u0XjTEdck+XXmzBmlpKTc8joj8/6gPTniuoqxtuXCw8OVlpamU6dOqUSJErdcP6d7wvy9YSv2eAZIggeMZLfXtQDOxtpXtwCwnejoaJ08eTLHC3VLpKam6tNPP1Xbtm1tGxgAu4qOjtaRI0f0008/GR1KgWzcuFEXLlywqg1q27atduzYYej1xpIlSxQQEKAmTZoYFgMAuLq2bdtq48aNOnfunNGhFMiSJUvk6+urFi1aGB0KAAA20bZtWx09elQ7d+40OpQC2bRpk86dO6fo6Og814uOjtZXX32lkydPOigyyy1ZskReXl5q1apVnutFR0dr1apVWd+kd1VLlixRsWLFdM899xgditNr2bKlvL29tXjx4nxtbzabtWTJEt11110qVaqUjaMDCoYEDxiNJA94FEsSPcxms03/AZAaN26sunXrqkuXLpo/f77OnDmjjIyMW35+kpOT9e233+qhhx5SbGysBg0aZHRVAFihdevWqlGjhjp06KBFixbp3LlzFn32neFfRkaGTp06pTlz5qhHjx6KjIzUvffea3HdO3bsqIiICLVp00affvqpLl686JC6X716VUePHtW4ceM0duxYPf744woKCrLjUQYA99ajRw8FBQWpZcuWWrNmjS5duuQyfdnVq1cVGxurSZMmafTo0YqJieE1owAAt9GyZUvVrFlTHTt21MKFC3X27FmX6aMzMjJ0+vRpzZ07V927d1fDhg2zXgeQm65duyo8PFwtW7bU559/roSEBEPrm56eruPHj+uNN97Q0KFD1aNHDxUvXjzPOjz++OM6f/682rVrpy1btujKlSuGHwtL/6WlpenQoUMaMWKEpk+frmeeeUY+PkyUfyu33XabevXqpREjRmjKlCk6duyYrl69esu/d2pqqvbs2aMnnnhCzp6yggAAI+FJREFUq1at0rPPPmt0VeBibN0G3IgEDzgDkzmns9NJJCQkKCwsTPHx8QoNDTU6HLiREydOKCoqSqmpqTe9uuWxxx7TJ598YrN9BQQEKCEhgYs+eLzz58/rscce06ZNm6zetkyZMvrggw90//332yEyAPZ0+vRpdenSRd98843RoeSLyWRSu3bttHjxYoWFhVm1bWxsrDp37qyff/7ZTtHlzt/fXwMHDtTUqVPl7e3t8P0DgDvZt2+funbtqgMHDhgdSr74+fkpJiZGM2bMYFxqA4mJiQoODpYkXb58mWRKADDQ6dOn1bVr13zPHGs0k8mktm3bavHixRYlYv7+++/q0qWL9u7da//gLOTr66uePXtq1qxZ8vX1veX6W7duVUxMjI4dO+aA6GwvMDBQzz33nMaNG2fX1wS5k7S0NA0ePFgfffSR0tLSrNq2cOHCGjt2rJ555hk7RQd3FBUVZdP7kNWqVdPOnTuzxgAkeMDeLM2PIMkDHiu3RI8yZcqoXr16euihhyRJKSkpeuqppyRJM2bMkL+/v1X7ufvuu1WvXj3bBg+4sBMnTmjbtm26dOnSLdf18/PT7bffrvr168vLi8mnAFd2/Phx/fDDD7p8+bLRoVgsNDRUjRs3LvCUoH/++ad++uknXblyxeJt8nv94eXlpdtuu01RUVF5vjMUAGAds9ms/fv367fffnOZKcZNJpPCw8MVFRVldaIickeSBwA4H08bbx48eFC7d++2aoxpayaTSUWLFlWzZs1UpEgRq7Y1m8365Zdf9PvvvyslJcVOEdqWl5eXSpQooaioKAUGBhodjku6ePGivvnmG507dy7HmRGu5+3trbJly6pp06by8/NzUIRwF8ePH7f6i6a53Yfbv3+/pk6dqmPHjikiIoIEDzgESR6ABXJK9ChTpowGDhyoV155RRI3cAAAgONx/QEAgHOijwYAAADcS27X+Bs3blR0dLSOHTum8PBwEjzgEJbmR/C1aHi0MmXKaOvWrfLz81Pz5s119OhRo0MCAAAAAAAAAAAA4ASYwQPOiCQPeLwbEz0seYUEAAAAAAAAAAAAAPfWpUsXEjzgdEjyAJQ90YMkDziDmJgYmUwmmUwm+fr6qmLFiho+fLiSk5ONDg0AAI9GHw0AAAAAAOA5YmNjSfCA0/ExOgDAWWQmerz00kvq0KGD0eEAatu2rebNm6e0tDT98ssv6tOnj0wmk15//XWjQwMAwKPRRwMAAAAAALi3u+66S4MGDVKPHj1I8IDTIckDuE6ZMmU0b948o8MAJEn+/v4qWbKkJKlcuXJq1aqVNm3apKCgIC1btkz79u3Ltv4999yj9u3ba9y4cUaECwCAx6CPBgAAAAAAcG8lS5bU+++/b3QYQI54XQsAuIB9+/Zp+/bt8vPzU79+/XTw4EH99NNPWb//9ddf9dtvv6lv374GRgkAgOehjwYAAAAAAADgSMzkAQBOas2aNQoODtbVq1eVkpIiLy8vTZ8+XWXLllV0dLTmzZune++9V5I0b948NWvWTJUqVTI4agAA3B99NAAAAAAAAACjMJMHADip5s2ba/fu3frxxx/Vp08f9e3bV506dZIkPf7441qyZImSk5OVmpqqxYsXq1+/fgZHDACAZ6CPBgAAAAAAAGAUZvIAACcVFBSkKlWqSJLmzp2ru+++W3PmzFH//v3Vvn17+fv7a9WqVfLz81NaWpoeffRRgyMGAMAz0EcDAAAAAAAAMApJHgDgAry8vPTiiy/q+eefV/fu3RUQEKA+ffpo3rx58vPz02OPPaaAgACjwwQAwOPQRwMAAAAAAABwJF7XAgAuonPnzvL29taMGTMkSQMGDNBXX32l9evXMw08AAAGoo8GAAAAAAAA4CgkeQA3OHPmjNEhADny8fHR008/rcmTJysxMVG33367IiMjdeedd6pBgwZGhwcAgMeijwYAAAAAAHA/586dU3p6utFhADchyQO4znvvvacSJUro/fffNzoUeLj58+frs88+u2n5yJEjdfr0aQUFBclsNuvff//lG8IAADgQfTQAAAAAAID7+/HHH1WmTBkNGDCARA84HR+jAwCcxXvvvaennnpKknT69GmDowHydubMGS1dulQnT55U3759jQ4HAAD8P/poAAAAAAAA1xcfH6+UlBTNnz9fkjR79mx5e3sbGxTw/0jyAPS/BI8hQ4bok08+MToc4JaKFy+u2267TR988IGKFClidDgAAOD/0UcDAAAAAAC4j4kTJ2r06NGSSPSA8yDJAx7v+gSPt956S8uWLTM6JOCWzGaz0SEAAIAc0EcDAAAAAAC4j+7duysiIkK9evWSRKIHnANJHvBoNyZ4mEwmo0MCAAAAAAAAAAAA4CS6d+8uSSR6wGmQ5AGPlVuCh5eXl6ZPn5712haz2SxfX19JUr169axOBImMjNSH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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from qualtran.drawing import get_musical_score_data, draw_musical_score\n", "cbloq = bloq.decompose_bloq()\n", @@ -522,31 +284,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "08a77982", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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m5t1xRVX9Hq8goICFRQUWO+j02i47QMAwMAR/b3d1+mwSQkpUUOGDNGQIUP00Ucf6YUXXtBDDz2kkSNHyuv1at26dVYoCQQC2rRpk+bNm9en4waDQUnitg8AAANQMBiU0+n82P0SvrpHkl544QUZY3TppZdq3759uvvuu1VYWKhXXnlFeXl5evDBB/XAAw/oqaee0siRI3XvvffqjTfe0O7du0+acNubcDisgwcPqri4WDab7Yz7GwgENGLECB04cIDVQinA9U4drnXqcK1Th2udOom+1sYYBYNBlZeX92kKSFJGUvx+vxYuXKi//e1vcrvdmjlzpu6//37l5eVJku655x61t7dr7ty5am1t1ZQpU1RfX9+ngCJJdrtd5557bsL77XA4+B98CnG9U4drnTpc69ThWqdOIq91X0ZQopIykjLQUHcltbjeqcO1Th2udepwrVMn3deaZ/cAAICMREhRZPXQokWLYlYQIXm43qnDtU4drnXqcK1TJ93Xmts9AAAgIzGSAgAAMhIhBQAAZCRCCgAAyEiEFAAAkJEIKZKWLl2q888/X4WFhZo8ebI2b96c7i5ltCVLlujKK69UcXGxPB6PPvvZz2rv3r0x+3R0dOiOO+5QSUmJioqKNHPmTDU3N8fss3//fl1//fUaPHiwPB6P7r77bnV1dcXs89JLL2n8+PEqKCjQRRddpCeffDLZp5fRHnjgAdlsNt15551WG9c6cd5//33deuutKikp0aBBg3T55Zdr69at1nZjjO677z6VlZVp0KBBqq6u1ttvvx1zjJaWFtXV1cnhcMjlcmn27Nlqa2uL2eeNN97Q3/3d36mwsFAjRozQQw89lJLzyxTd3d269957NXLkSA0aNEgXXnihvve978U8z4Vr3X8bNmzQjBkzVF5eLpvNplWrVsVsT+W1ffbZZzVq1CgVFhbq8ssv1x/+8If4TsZkuWeeecbk5+ebX/ziF2bXrl1mzpw5xuVymebm5nR3LWNNmzbNPPHEE2bnzp1mx44dZvr06aaiosK0tbVZ+3zlK18xI0aMMOvWrTNbt241V111lfnkJz9pbe/q6jJjx4411dXV5vXXXzd/+MMfzLBhw8zChQutfd555x0zePBgs2DBArN7927z6KOPmpycHFNfX5/S880UmzdvNueff775xCc+Yb7+9a9b7VzrxGhpaTHnnXee+eIXv2g2bdpk3nnnHfPCCy+Yffv2Wfs88MADxul0mlWrVpm//OUv5oYbbjAjR440R44csfapqakx48aNM6+99pp55ZVXzEUXXWRuueUWa7vf7zelpaWmrq7O7Ny50/z61782gwYNMv/xH/+R0vNNp/vvv9+UlJSYNWvWmIaGBvPss8+aoqIi89Of/tTah2vdf3/4wx/Mt7/9bfPcc88ZSeb555+P2Z6qa/unP/3J5OTkmIceesjs3r3bfOc73zF5eXnmzTff7PO5ZH1ImTRpkrnjjjus993d3aa8vNwsWbIkjb0aWHw+n5FkXn75ZWOMMa2trSYvL888++yz1j579uwxkszGjRuNMZG/RHa73TQ1NVn7LFu2zDgcDhMKhYwxxtxzzz3msssui/muL3zhC2batGnJPqWMEwwGzcUXX2zWrl1rPvOZz1ghhWudON/61rfMlClTTrk9HA4br9drfvCDH1htra2tpqCgwPz61782xhize/duI8ls2bLF2uePf/yjsdls5v333zfGGPPzn//cDB061Lr20e++9NJLE31KGev66683X/7yl2Pabr75ZlNXV2eM4Von0okhJZXX9vOf/7y5/vrrY/ozefJk8y//8i997n9W3+45evSotm3bpurqaqvNbrerurpaGzduTGPPBha/3y9JcrvdkqRt27aps7Mz5rqOGjVKFRUV1nXduHGjLr/8cpWWllr7TJs2TYFAQLt27bL2Of4Y0X2y8b/NHXfcoeuvv/6k68G1Tpzf/e53mjhxoj73uc/J4/GosrJS//mf/2ltb2hoUFNTU8x1cjqdmjx5csy1drlcmjhxorVPdXW17Ha7Nm3aZO3z6U9/Wvn5+dY+06ZN0969e/XRRx8l+zQzwic/+UmtW7dOb731liTpL3/5i1599VXV1tZK4lonUyqvbSL+XcnqkPLBBx+ou7s75h9vSSotLVVTU1OaejWwhMNh3XnnnfrUpz6lsWPHSpKampqUn58vl8sVs+/x17WpqanX6x7ddrp9AoGAjhw5kozTyUjPPPOMtm/friVLlpy0jWudOO+8846WLVumiy++WC+88ILmzZunr33ta3rqqackHbtWp/v3oqmpSR6PJ2Z7bm6u3G53XP89znb/9m//plmzZmnUqFHKy8tTZWWl7rzzTtXV1UniWidTKq/tqfaJ59on5SnIyB533HGHdu7cqVdffTXdXTkrHThwQF//+te1du3aPj8lHP0TDoc1ceJE/fu//7skqbKyUjt37tTy5ct1++23p7l3Z5ff/OY3WrFihVauXKnLLrtMO3bs0J133qny8nKuNWJk9UjKsGHDlJOTc9JKiObmZnm93jT1auCYP3++1qxZoxdffFHnnnuu1e71enX06FG1trbG7H/8dfV6vb1e9+i20+3jcDg0aNCgRJ9ORtq2bZt8Pp/Gjx+v3Nxc5ebm6uWXX9Yjjzyi3NxclZaWcq0TpKysTGPGjIlpGz16tPbv3y/p2LU63b8XXq9XPp8vZntXV5daWlri+u9xtrv77rut0ZTLL79ct912m+666y5rtJBrnTypvLan2ieea5/VISU/P18TJkzQunXrrLZwOKx169apqqoqjT3LbMYYzZ8/X88//7zWr1+vkSNHxmyfMGGC8vLyYq7r3r17tX//fuu6VlVV6c0334z5i7B27Vo5HA7rF0VVVVXMMaL7ZNN/m6lTp+rNN9/Ujh07rNfEiRNVV1dn/ZlrnRif+tSnTlpK/9Zbb+m8886TJI0cOVJerzfmOgUCAW3atCnmWre2tmrbtm3WPuvXr1c4HNbkyZOtfTZs2KDOzk5rn7Vr1+rSSy/V0KFDk3Z+meTw4cOy22N//eTk5CgcDkviWidTKq9tQv5d6fMU27PUM888YwoKCsyTTz5pdu/ebebOnWtcLlfMSgjEmjdvnnE6neall14yjY2N1uvw4cPWPl/5yldMRUWFWb9+vdm6daupqqoyVVVV1vbostjrrrvO7Nixw9TX15vhw4f3uiz27rvvNnv27DFLly7NumWxvTl+dY8xXOtE2bx5s8nNzTX333+/efvtt82KFSvM4MGDzdNPP23t88ADDxiXy2V++9vfmjfeeMPceOONvS7drKysNJs2bTKvvvqqufjii2OWbra2tprS0lJz2223mZ07d5pnnnnGDB48+KxfFnu822+/3ZxzzjnWEuTnnnvODBs2zNxzzz3WPlzr/gsGg+b11183r7/+upFkfvSjH5nXX3/dvPfee8aY1F3bP/3pTyY3N9c8/PDDZs+ePWbRokUsQe6PRx991FRUVJj8/HwzadIk89prr6W7SxlNUq+vJ554wtrnyJEj5l//9V/N0KFDzeDBg81NN91kGhsbY47z7rvvmtraWjNo0CAzbNgw841vfMN0dnbG7PPiiy+aK664wuTn55sLLrgg5juy1YkhhWudOKtXrzZjx441BQUFZtSoUeaxxx6L2R4Oh829995rSktLTUFBgZk6darZu3dvzD4ffvihueWWW0xRUZFxOBzmS1/6kgkGgzH7/OUvfzFTpkwxBQUF5pxzzjEPPPBA0s8tkwQCAfP1r3/dVFRUmMLCQnPBBReYb3/72zHLWbnW/ffiiy/2+m/07bffboxJ7bX9zW9+Yy655BKTn59vLrvsMvP73/8+rnOxGXNciT8AAIAMkdVzUgAAQOYipAAAgIxESAEAABmJkAIAADISIQUAAGQkQgoAAMhIhBQAAJCRCCkAACAjEVIAAEBGIqQAAICMREgBAAAZiZACAAAy0v8Hdjc2SBYdnU4AAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "t_comp = []\n", @@ -596,114 +337,12 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "c4886f09", "metadata": { "cq.autogen": "_make_prepare.py" }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "my_graph\n", - "\n", - "\n", - "\n", - "mu_G6\n", - "mu\n", - "\n", - "\n", - "\n", - "PrepareTHC\n", - "\n", - "Prepar..\n", - "\n", - "mu\n", - "\n", - "nu\n", - "\n", - "theta\n", - "\n", - "\n", - "\n", - "mu_G6:e->PrepareTHC:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "nu_G2\n", - "nu\n", - "\n", - "\n", - "\n", - "nu_G2:e->PrepareTHC:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "theta_G5\n", - "theta\n", - "\n", - "\n", - "\n", - "theta_G5:e->PrepareTHC:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "mu_G7\n", - "mu\n", - "\n", - "\n", - "\n", - "PrepareTHC:e->mu_G7:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "nu_G1\n", - "nu\n", - "\n", - "\n", - "\n", - "PrepareTHC:e->nu_G1:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "theta_G0\n", - "theta\n", - "\n", - "\n", - "\n", - "PrepareTHC:e->theta_G0:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from qualtran.bloqs.chemistry.thc import PrepareTHC\n", "\n", @@ -716,608 +355,10 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "93e23c6b", "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "my_graph\n", - "\n", - "\n", - "\n", - "mu_G54\n", - "mu\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC\n", - "\n", - "Unifor..\n", - "\n", - "mu\n", - "\n", - "nu\n", - "\n", - "succ\n", - "\n", - "eq_nu_mp1\n", - "\n", - "\n", - "\n", - "mu_G54:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "nu_G70\n", - "nu\n", - "\n", - "\n", - "\n", - "nu_G70:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "theta_G90\n", - "theta\n", - "\n", - "\n", - "\n", - "SelectSwapQROM\n", - "\n", - "Select..\n", - "\n", - "selection\n", - "\n", - "target0\n", - "\n", - "target1\n", - "\n", - "target2\n", - "\n", - "target3\n", - "\n", - "target4\n", - "\n", - "\n", - "\n", - "theta_G90:e->SelectSwapQROM:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Free\n", - "\n", - "Free\n", - "\n", - "free\n", - "\n", - "\n", - "\n", - "\n", - "Allocate\n", - "\n", - "Allocate\n", - "\n", - "\n", - "alloc\n", - "\n", - "\n", - "\n", - "Allocate:e->SelectSwapQROM:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "Free_G0\n", - "\n", - "Free\n", - "\n", - "free\n", - "\n", - "\n", - "\n", - "\n", - "Hadamard\n", - "\n", - "H\n", - "\n", - "q\n", - "\n", - "\n", - "\n", - "CSwapApprox_G12\n", - "\n", - "~swap\n", - "\n", - "ctrl\n", - "\n", - "x\n", - "\n", - "y\n", - "\n", - "\n", - "\n", - "Hadamard:e->CSwapApprox_G12:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Free_G2\n", - "\n", - "Free\n", - "\n", - "free\n", - "\n", - "\n", - "\n", - "\n", - "Allocate_G4\n", - "\n", - "Allocate\n", - "\n", - "\n", - "alloc\n", - "\n", - "\n", - "\n", - "Split\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Allocate_G4:e->Split:w\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "\n", - "Join\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "Join:e->Free_G2:w\n", - "\n", - "\n", - "5\n", - "\n", - "\n", - "\n", - "Allocate_G6\n", - "\n", - "Allocate\n", - "\n", - "\n", - "alloc\n", - "\n", - "\n", - "\n", - "Allocate_G6:e->SelectSwapQROM:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->Join:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->Join:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "ContiguousRegister\n", - "\n", - "Contig..\n", - "\n", - "mu\n", - "\n", - "nu\n", - "\n", - "s\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->ContiguousRegister:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "UniformSuperpositionTHC:e->ContiguousRegister:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "CSwapApprox\n", - "\n", - "~swap\n", - "\n", - "ctrl\n", - "\n", - "x\n", - "\n", - "y\n", - "\n", - "\n", - "\n", - "CSwapApprox:e->Free_G0:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "CSwapApprox:e->CSwapApprox_G12:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "LessThanEqual\n", - "\n", - "LessTh..\n", - "\n", - "x\n", - "\n", - "y\n", - "\n", - "z\n", - "\n", - "\n", - "\n", - "CSwapApprox:e->LessThanEqual:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Free_G8\n", - "\n", - "Free\n", - "\n", - "free\n", - "\n", - "\n", - "\n", - "\n", - "Free_G10\n", - "\n", - "Free\n", - "\n", - "free\n", - "\n", - "\n", - "\n", - "\n", - "CSwapApprox_G12:e->Join:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "mu_G46\n", - "mu\n", - "\n", - "\n", - "\n", - "CSwapApprox_G12:e->mu_G46:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "nu_G64\n", - "nu\n", - "\n", - "\n", - "\n", - "CSwapApprox_G12:e->nu_G64:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "Split:e->Hadamard:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Split:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Split:e->UniformSuperpositionTHC:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "LessThanEqual_G24\n", - "\n", - "LessTh..\n", - "\n", - "x\n", - "\n", - "y\n", - "\n", - "z\n", - "\n", - "\n", - "\n", - "Split:e->LessThanEqual_G24:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Split:e->SelectSwapQROM:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "ContiguousRegister:e->CSwapApprox:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "CSwapApprox_G28\n", - "\n", - "~swap\n", - "\n", - "ctrl\n", - "\n", - "x\n", - "\n", - "y\n", - "\n", - "\n", - "\n", - "ContiguousRegister:e->CSwapApprox_G28:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "ContiguousRegister:e->SelectSwapQROM:w\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "\n", - "Allocate_G18\n", - "\n", - "Allocate\n", - "\n", - "\n", - "alloc\n", - "\n", - "\n", - "\n", - "Allocate_G18:e->SelectSwapQROM:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "\n", - "Allocate_G20\n", - "\n", - "Allocate\n", - "\n", - "\n", - "alloc\n", - "\n", - "\n", - "\n", - "Allocate_G20:e->ContiguousRegister:w\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "\n", - "LessThanEqual:e->Join:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "LessThanEqual:e->Free_G8:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "\n", - "Free_G32\n", - "\n", - "Free\n", - "\n", - "free\n", - "\n", - "\n", - "\n", - "\n", - "LessThanEqual:e->Free_G32:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "\n", - "LessThanEqual_G24:e->LessThanEqual:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "\n", - "LessThanEqual_G24:e->LessThanEqual:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "\n", - "LessThanEqual_G24:e->CSwapApprox_G28:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "CSwapApprox_G28:e->CSwapApprox:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "CSwapApprox_G28:e->Free_G10:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "CSwapApprox_G28:e->CSwapApprox_G12:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "SelectSwapQROM:e->Free:w\n", - "\n", - "\n", - "6\n", - "\n", - "\n", - "\n", - "SelectSwapQROM:e->Join:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "SelectSwapQROM:e->CSwapApprox:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "SelectSwapQROM:e->LessThanEqual_G24:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "\n", - "SelectSwapQROM:e->CSwapApprox_G28:w\n", - "\n", - "\n", - "4\n", - "\n", - "\n", - "\n", - "theta\n", - "theta\n", - "\n", - "\n", - "\n", - "SelectSwapQROM:e->theta:w\n", - "\n", - "\n", - "1\n", - "\n", - "\n", - "\n", - "Allocate_G34\n", - "\n", - "Allocate\n", - "\n", - "\n", - "alloc\n", - "\n", - "\n", - "\n", - "Allocate_G34:e->LessThanEqual_G24:w\n", - "\n", - "\n", - "8\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "cbloq = bloq.decompose_bloq() \n", "show_bloq(cbloq)" @@ -1325,29 +366,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "dca4a7e0", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/tmp/ipykernel_2343258/1409724447.py:5: UserWarning: The figure layout has changed to tight\n", - " fig.tight_layout()\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABW0AAAHqCAYAAAB/bWzAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeVyN6f8/8Ndp31QiCmlRSVNStrGMiiQz+jBjbYQsmbGOJdsYWQeTNcPEJLINss5MiEQNIYzJWFJEk0n2FhVt5/z+8Ot8nWmlTuecej0fjx7c933d1/W+z33f59znfa77ugUikUgEIiIiIiIiIiIiIpILSrIOgIiIiIiIiIiIiIj+D5O2RERERERERERERHKESVsiIiIiIiIiIiIiOcKkLREREREREREREZEcYdKWiIiIiIiIiIiISI4waUtEREREREREREQkR5i0JSIiIiIiIiIiIpIjTNoSERERERERERERyREVWQdQXUKhEI8ePUKDBg0gEAhkHQ4RERERERERERFRmUQiEV69eoVmzZpBSan8/rQKn7R99OgRTExMZB0GERERERERERERUZU8fPgQLVq0KHe5widtGzRoAODthurq6so4GiIiIiIiIiIiIqKyZWdnw8TERJzTLI/CJ21LhkTQ1dVl0paIiIiIiIiIiIjkXmXDvPJBZERERERERERERERyhElbIiIiIiIiIiIiIjnCpC0RERERERERERGRHGHSloiIiIiIiIiIiEiOMGlLREREREREREREJEeYtCUiIqqDzMzMsH79evH048eP0bt3b2hra0NfX19mcdH7iY6OhkAgQGZmpqxDISIiIiKiWsSkLRERkRxxcXHBtGnTSs0PDQ19r2TrlStXMH78ePH0unXrkJ6ejvj4eCQlJdVApPXL48ePMWXKFFhYWEBdXR0mJibw9PREVFRUjbVR1r7v2rUr0tPToaenV2PtEBERERGR/FORdQBERERU8wwNDSWmk5OT0b59e1hZWX1wnQUFBVBTU6tuaAonJSUF3bp1g76+PlatWgV7e3sUFhbi5MmTmDRpEu7cuSO1ttXU1GBkZCS1+omIiIiISD6xpy0REZGC8fHxwYABA7B69WoYGxujUaNGmDRpEgoLC8Vl3h0ewczMDIcOHcLOnTshEAjg4+MDAEhNTUX//v2ho6MDXV1dDBkyBE+ePBHXsWjR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ndcWYGBLqsfQloiI9EZJwe3GjRvxzz//oHPnztL18/LysHv3bgBAQEAADA3lf9ts37492rZtW+6au3TpgsePH+PgwYO4fPky0tPTy9ROeY6lgKGhITp16gQ/Pz94enpylC0RERERVUjdu3fHl19+idevX8u9TUn95WPHjmHLli3S0JaBLamDQKLll39OTU2FlZUVUlJSYGlpqelyiIhICzx69Aje3t4Qi8XS4HbQoEF49eoVTp48KV0vPT1deqGttLQ0mJmZaarkctOlY6GKSZeeY7p0LLpGlx4bXToWXaJrj4uuHQ+RKpV0vrRs2RLNmjXDxo0bGdhSucmbZXJOWyIi0jsfz3F79+5d3Lp1C2/fvtV0aUREREREVMG8e/cO169fx+3btxnYktowtCUiIr1UENwKBAI0a9YMsbGxSExM1HRZRERERERUwSQnJ+Pq1ato0aIFKleuzMCW1IKhLRER6a1q1aqhQYMGyMnJQfXq1TVdDhERERERVVCOjo7Izs6Gm5sbqlSpoulySA8wtCUiIr2Uk5ODQYMG4cyZMzhw4AAaN26MqlWrarosIiIiIiKqYKytreHl5YWff/4Z+/fvx4gRI5Cfn6/pskjHMbQlIiK9UxDYHjlyBPv370evXr1gYGAAV1dXTZdGREREREQVTP369QEAAQEB2LlzJ37++WcGt6RyhpougIiISJ2KCmwLPH36FIcOHZLezsrKkv77yJEjMDY2LrJNsViMhw8f4s2bN9KOm7m5ORo3bqyio1CcvMeiaWZmZmjRogWsrKw0XQoRERERabEzZ84gLS1N7vVL6i8/f/4cNjY2AN4HtwDw2WefAQC2bt0KoVCojJKJZDC0JSIivVFSYNu0aVMsXrwYvr6+RW5b0DkriqGhIfLy8pRer6qUdCwVgZGREXx9fREWFgZLS0tNl0NEREREWubQoUPF9uvlUVR/+cNlDG5JHRjaEhGRXigpsAWAhQsXYtq0aQq1uWfPHkycOBH+/v74/PPP0aBBAxga8q21rCQSCd68eYNjx45h7ty56NGjB/788092gImIiIhIIa9evQIAJCUlKa0v+fH1LxjckqrxkyUREem80gJbADAwMICtra1C7a5fvx59+/bFL7/8AoFAoKxy9ZqdnR0aNGgANzc3dOnSBefPn0eHDh00XRYRERERaSFbW1uVBqkMbkmVeCEy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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from qualtran.drawing import get_musical_score_data, draw_musical_score\n", "cbloq = bloq.decompose_bloq()\n", @@ -1358,90 +380,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "7b4ffed8", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "T-count: 1240\n", - "Rotations: 0\n", - "Cliffords: 5484\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "print(cbloq.t_complexity())" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "70282cd5", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: openfermion in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (1.5.1)\n", - "Requirement already satisfied: cirq-core>=0.15.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (1.2.0)\n", - "Requirement already satisfied: cirq-google>=0.15.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (1.2.0)\n", - "Requirement already satisfied: deprecation in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (2.1.0)\n", - "Requirement already satisfied: h5py>=2.8 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (3.9.0)\n", - "Requirement already satisfied: networkx in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (3.1)\n", - "Requirement already satisfied: numpy>=1.11.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (1.24.4)\n", - "Requirement already satisfied: pubchempy in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (1.0.4)\n", - "Requirement already satisfied: requests>=2.18 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (2.31.0)\n", - "Requirement already satisfied: scipy>=1.1.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (1.11.1)\n", - "Requirement already satisfied: sympy in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from openfermion) (1.12)\n", - "Requirement already satisfied: duet~=0.2.8 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-core>=0.15.0->openfermion) (0.2.8)\n", - "Requirement already satisfied: matplotlib~=3.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-core>=0.15.0->openfermion) (3.7.2)\n", - "Requirement already satisfied: pandas in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-core>=0.15.0->openfermion) (2.0.3)\n", - "Requirement already satisfied: sortedcontainers~=2.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-core>=0.15.0->openfermion) (2.4.0)\n", - "Requirement already satisfied: typing-extensions>=4.2 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-core>=0.15.0->openfermion) (4.7.1)\n", - "Requirement already satisfied: tqdm in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-core>=0.15.0->openfermion) (4.65.0)\n", - "Requirement already satisfied: google-api-core[grpc]>=1.14.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-google>=0.15.0->openfermion) (2.11.1)\n", - "Requirement already satisfied: proto-plus>=1.20.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-google>=0.15.0->openfermion) (1.22.3)\n", - "Requirement already satisfied: protobuf>=3.15.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from cirq-google>=0.15.0->openfermion) (4.23.4)\n", - "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from requests>=2.18->openfermion) (3.2.0)\n", - "Requirement already satisfied: idna<4,>=2.5 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from requests>=2.18->openfermion) (3.4)\n", - "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from requests>=2.18->openfermion) (1.26.16)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from requests>=2.18->openfermion) (2023.5.7)\n", - "Requirement already satisfied: packaging in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from deprecation->openfermion) (23.1)\n", - "Requirement already satisfied: mpmath>=0.19 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from sympy->openfermion) (1.3.0)\n", - "Requirement already satisfied: googleapis-common-protos<2.0.dev0,>=1.56.2 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (1.60.0)\n", - "Requirement already satisfied: google-auth<3.0.dev0,>=2.14.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (2.22.0)\n", - "Requirement already satisfied: grpcio<2.0dev,>=1.33.2 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (1.57.0)\n", - "Requirement already satisfied: grpcio-status<2.0.dev0,>=1.33.2 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (1.57.0)\n", - "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (1.1.0)\n", - "Requirement already satisfied: cycler>=0.10 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (0.11.0)\n", - "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (4.41.0)\n", - "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (1.4.4)\n", - "Requirement already satisfied: pillow>=6.2.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (10.0.0)\n", - "Requirement already satisfied: pyparsing<3.1,>=2.3.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (3.0.9)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from matplotlib~=3.0->cirq-core>=0.15.0->openfermion) (2.8.2)\n", - "Requirement already satisfied: pytz>=2020.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from pandas->cirq-core>=0.15.0->openfermion) (2023.3)\n", - "Requirement already satisfied: tzdata>=2022.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from pandas->cirq-core>=0.15.0->openfermion) (2023.3)\n", - "Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (5.3.1)\n", - "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (0.3.0)\n", - "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (4.9)\n", - "Requirement already satisfied: six>=1.9.0 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (1.16.0)\n", - "Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from pyasn1-modules>=0.2.1->google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]>=1.14.0->cirq-google>=0.15.0->openfermion) (0.5.0)\n", - "Note: you may need to restart the kernel to use updated packages.\n", - "Requirement already satisfied: pyscf in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (2.3.0)\n", - "Requirement already satisfied: numpy!=1.16,!=1.17,>=1.13 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from pyscf) (1.24.4)\n", - "Requirement already satisfied: scipy!=1.5.0,!=1.5.1 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from pyscf) (1.11.1)\n", - "Requirement already satisfied: h5py>=2.7 in /usr/local/google/home/fmalone/.venvs/qualtran/lib/python3.11/site-packages (from pyscf) (3.9.0)\n", - "^C\n", - "\u001b[31mERROR: Operation cancelled by user\u001b[0m\u001b[31m\n", - "\u001b[0mNote: you may need to restart the kernel to use updated packages.\n" - ] - } - ], + "outputs": [], "source": [ "%pip install openfermion\n", "%pip install pyscf" @@ -1511,7 +463,6 @@ "t_comp_of = []\n", "num_spatial = range(10, 100, 100)\n", "for ns in num_spatial:\n", - " print(ns)\n", " bloq = PrepareTHC(num_mu=6*ns, num_spin_orb=2*ns, keep_bitsize=12)\n", " bloq2 = UniformSuperpositionTHC(num_mu=6*ns, num_spin_orb=2*ns)\n", " t_comp.append(bloq.decompose_bloq().t_complexity().t-bloq2.decompose_bloq().t_complexity().t)\n", @@ -1540,7 +491,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.11.5" } }, "nbformat": 4, diff --git a/qualtran/bloqs/chemistry/thc.py b/qualtran/bloqs/chemistry/thc.py index a6365d7b7..8c5373479 100644 --- a/qualtran/bloqs/chemistry/thc.py +++ b/qualtran/bloqs/chemistry/thc.py @@ -11,12 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -"""SELECT and PREPARE for the tensor hypercontraction (THC) hamiltonian""" +"""SELECT and PREPARE for the molecular tensor hypercontraction (THC) hamiltonian""" from functools import cached_property -from typing import Dict, Optional, Tuple +from typing import Dict, Tuple import cirq -import cirq_ft.infra.testing as cq_testing import numpy as np from attrs import frozen from cirq_ft.algos.arithmetic_gates import LessThanEqualGate, LessThanGate @@ -32,10 +31,10 @@ from qualtran.cirq_interop import CirqGateAsBloq -def split_join_cirq_arithmetic_gates( +def add_from_bloq_register_flat_qubits( bb: 'BloqBuilder', cirq_bloq: Bloq, **regs: SoquetT ) -> Tuple[SoquetT, ...]: - """Helper function to split / join registers for cirq arithmetic gates. + """Helper function to split / join registers for cirq gates expeciting single 'qubits' register. Args: bb: Bloq builder used during decompostion. @@ -74,7 +73,6 @@ def add_from_bloq_registers( cirq_regs = {} for reg_name, soq in bloq_regs.items(): cirq_regs[reg_name] = bb.split(soq) - # cirq_regs[reg.name] = bb.split(bloq_regs[reg.name]) cirq_regs = bb.add(cirq_bloq, **cirq_regs) out_soqs = {} for ix, (reg_name, soq) in enumerate(bloq_regs.items()): @@ -144,10 +142,12 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, amp = bb.add(Ry(angle), q=amp) # 3. nu <= mu + 1 (zero indexing we use mu) lt_gate = CirqGateAsBloq(LessThanGate(num_bits_mu, self.num_mu)) - nu, lte_nu_mp1 = split_join_cirq_arithmetic_gates(bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1) + nu, lte_nu_mp1 = add_from_bloq_register_flat_qubits( + bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1 + ) # 4. mu <= nu (upper triangular) lte_gate = CirqGateAsBloq(LessThanEqualGate(num_bits_mu, num_bits_mu)) - mu, nu, lte_mu_nu = split_join_cirq_arithmetic_gates( + mu, nu, lte_mu_nu = add_from_bloq_register_flat_qubits( bb, lte_gate, mu=mu, nu=nu, lte_mu_nu=lte_mu_nu ) # 5. nu == M (i.e. flag one-body contribution) @@ -167,8 +167,10 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, # hack for wrapping. Target needs to have shape=(1,) junk = trg[0] # We now undo comparitors and rotations and repeat the steps - nu, lte_nu_mp1 = split_join_cirq_arithmetic_gates(bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1) - mu, nu, lte_mu_nu = split_join_cirq_arithmetic_gates( + nu, lte_nu_mp1 = add_from_bloq_register_flat_qubits( + bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1 + ) + mu, nu, lte_mu_nu = add_from_bloq_register_flat_qubits( bb, lte_gate, mu=mu, nu=nu, lte_mu_nu=lte_mu_nu ) nu, eq_nu_mp1 = bb.add(EqualsAConstant(num_bits_mu, self.num_mu + 1), x=nu, z=eq_nu_mp1) @@ -189,8 +191,10 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, nu = bb.join(ctrls[num_bits_mu:]) mu = bb.add(OnEach(num_bits_mu, Hadamard()), q=mu) nu = bb.add(OnEach(num_bits_mu, Hadamard()), q=nu) - nu, lte_nu_mp1 = split_join_cirq_arithmetic_gates(bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1) - mu, nu, lte_mu_nu = split_join_cirq_arithmetic_gates( + nu, lte_nu_mp1 = add_from_bloq_register_flat_qubits( + bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1 + ) + mu, nu, lte_mu_nu = add_from_bloq_register_flat_qubits( bb, lte_gate, mu=mu, nu=nu, lte_mu_nu=lte_mu_nu ) nu, eq_nu_mp1 = bb.add(EqualsAConstant(num_bits_mu, self.num_mu + 1), x=nu, z=eq_nu_mp1) @@ -206,8 +210,10 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, lte_nu_mp1, lte_mu_nu, junk = ctrls succ = trg[0] (eq_nu_mp1, gt_mu_n), junk = bb.add(Toffoli(), ctrl=[eq_nu_mp1, gt_mu_n], target=junk) - nu, lte_nu_mp1 = split_join_cirq_arithmetic_gates(bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1) - mu, nu, lte_mu_nu = split_join_cirq_arithmetic_gates( + nu, lte_nu_mp1 = add_from_bloq_register_flat_qubits( + bb, lt_gate, nu=nu, lte_mu_mp1=lte_nu_mp1 + ) + mu, nu, lte_mu_nu = add_from_bloq_register_flat_qubits( bb, lte_gate, mu=mu, nu=nu, lte_mu_nu=lte_mu_nu ) mu, gt_mu_n = bb.add( @@ -252,6 +258,11 @@ class PrepareTHC(Bloq): num_mu: int num_spin_orb: int + alt_mu: Tuple[int, ...] + alt_nu: Tuple[int, ...] + alt_theta: Tuple[int, ...] + theta: Tuple[int, ...] + keep: Tuple[int, ...] keep_bitsize: int @cached_property @@ -266,15 +277,41 @@ def signature(self) -> Signature: @classmethod def build(cls, t_l, zeta, probability_epsilon=1e-8) -> 'PrepareTHC': + """Factory method to build PrepareTHC from Hamiltonian coefficients.""" + assert len(t_l.shape) == 1 assert len(zeta.shape) == 2 - num_spatial = len(t_l) num_mu = zeta.shape[0] + num_spat = t_l.shape[0] triu_indices = np.triu_indices(num_mu) - flat_data = np.concatenate(t_l, zeta[triu_indices]) - thetas = (1 - np.sign(flat_data)) // 2 - lambda_thc = np.sum(np.abs(t_l)) + 0.5 * np.sum(np.abs(zeta)) + num_ut = len(triu_indices[0]) + flat_data = np.abs(np.concatenate([zeta[triu_indices], t_l])) + thetas = [int(t) for t in (1 - np.sign(flat_data)) // 2] alt, keep, mu = preprocess_lcu_coefficients_for_reversible_sampling( - np.sqrt(flat_data / lambda_thc), epsilon=probability_epsilon + flat_data, epsilon=probability_epsilon + ) + num_up_t = len(triu_indices[0]) + alt_mu = [] + alt_nu = [] + alt_theta = [] + for k in alt: + if k < num_up_t: + # if k < n * (n + 1) / 2 we are dealing with mu / nu indices + alt_mu.append(int(triu_indices[0][k])) + alt_nu.append(int(triu_indices[1][k])) + else: + # else we are dealing with the one-body bit + alt_mu.append(int(k - num_ut)) + alt_nu.append(int(num_mu)) + alt_theta.append(thetas[k]) + return PrepareTHC( + num_mu, + 2 * num_spat, + alt_mu=tuple(alt_mu), + alt_nu=tuple(alt_nu), + alt_theta=tuple(alt_theta), + theta=tuple(thetas), + keep=keep, + keep_bitsize=mu, ) def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, 'SoquetT']: @@ -286,8 +323,9 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, s = bb.allocate(log_d) sigma = bb.allocate(self.keep_bitsize) keep = bb.allocate(self.keep_bitsize) - alt_mu = bb.allocate(log_mu) - alt_nu = bb.allocate(log_mu) + alt_bitsize = max(max(self.alt_mu).bit_length(), max(self.alt_nu).bit_length()) + alt_mu = bb.allocate(alt_bitsize) + alt_nu = bb.allocate(alt_bitsize) # 1. Prepare THC uniform superposition over mu, nu. succ flags success. mu, nu, succ, eq_nu_mp1 = bb.add( UniformSuperpositionTHC(num_mu=self.num_mu, num_spin_orb=self.num_spin_orb), @@ -300,15 +338,11 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, mu, nu, s = bb.add(ToContiguousIndex(log_mu, log_d), mu=mu, nu=nu, s=s) theta = regs['theta'] # 3. Load alt / keep values - data = ( - tuple([1] * data_size), - tuple([1] * data_size), - tuple([10] * data_size), - tuple([10] * data_size), - tuple([10] * data_size), - ) qroam = CirqGateAsBloq( - SelectSwapQROM(*data, target_bitsizes=(1, 1, log_mu, log_mu, self.keep_bitsize)) + SelectSwapQROM( + *(self.theta, self.alt_theta, self.alt_mu, self.alt_nu, self.keep), + target_bitsizes=(1, 1, alt_bitsize, alt_bitsize, self.keep_bitsize), + ) ) s, theta, alt_theta, alt_mu, alt_nu, keep = add_from_bloq_registers( bb, @@ -322,27 +356,27 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **regs: SoquetT) -> Dict[str, ) sigma = bb.add(OnEach(self.keep_bitsize, Hadamard()), q=sigma) lte_gate = CirqGateAsBloq(LessThanEqualGate(self.keep_bitsize, self.keep_bitsize)) - keep, sigma, less_than = split_join_cirq_arithmetic_gates( + keep, sigma, less_than = add_from_bloq_register_flat_qubits( bb, lte_gate, keep=keep, sigma=sigma, less_than=less_than ) # TODO: uncomment once controlled bloq decomposes correctly. cz = CirqGateAsBloq(cirq.ControlledGate(cirq.Z)) - alt_theta, less_than = split_join_cirq_arithmetic_gates( + alt_theta, less_than = add_from_bloq_register_flat_qubits( bb, cz, alt_theta=alt_theta, less_than=less_than ) cz = CirqGateAsBloq(cirq.ControlledGate(cirq.Z, control_values=(0,))) # negative control on the less_than register - less_than, theta = split_join_cirq_arithmetic_gates( + less_than, theta = add_from_bloq_register_flat_qubits( bb, cz, less_than=less_than, theta=theta ) less_than, alt_mu, mu = bb.add(CSwapApprox(bitsize=log_mu), ctrl=less_than, x=alt_mu, y=mu) less_than, alt_nu, nu = bb.add(CSwapApprox(bitsize=log_mu), ctrl=less_than, x=alt_nu, y=nu) - keep, sigma, less_than = split_join_cirq_arithmetic_gates( + keep, sigma, less_than = add_from_bloq_register_flat_qubits( bb, lte_gate, keep=keep, sigma=sigma, less_than=less_than ) flag_plus = bb.add(Hadamard(), q=flag_plus) # negative cotrol on flag register - less_than, flag_plus = split_join_cirq_arithmetic_gates( + less_than, flag_plus = add_from_bloq_register_flat_qubits( bb, cz, less_than=less_than, flag_plus=flag_plus ) flag_plus, mu, nu = bb.add(CSwapApprox(bitsize=log_mu), ctrl=flag_plus, x=mu, y=nu) diff --git a/qualtran/bloqs/chemistry/thc_test.py b/qualtran/bloqs/chemistry/thc_test.py index 72a9e58c3..2444b5ac7 100644 --- a/qualtran/bloqs/chemistry/thc_test.py +++ b/qualtran/bloqs/chemistry/thc_test.py @@ -13,13 +13,15 @@ # limitations under the License. import numpy as np +import pytest from cirq_ft.algos.arithmetic_gates import LessThanEqualGate, LessThanGate +from cirq_ft.linalg.lcu_util import preprocess_lcu_coefficients_for_reversible_sampling import qualtran.testing as qlt_testing from qualtran import BloqBuilder, Register from qualtran.bloqs.chemistry.thc import ( + add_from_bloq_register_flat_qubits, PrepareTHC, - split_join_cirq_arithmetic_gates, UniformSuperpositionTHC, ) from qualtran.cirq_interop import CirqGateAsBloq @@ -47,7 +49,7 @@ def test_split_join_arithmetic_gates(): bitsize = 9 val = bb.add_register(Register("val", bitsize=bitsize)) res = bb.add_register(Register("res", bitsize=1)) - val, res = split_join_cirq_arithmetic_gates( + val, res = add_from_bloq_register_flat_qubits( bb, CirqGateAsBloq(LessThanGate(bitsize, 7)), val=val, res=res ) cbloq = bb.finalize(val=val, res=res) @@ -56,7 +58,7 @@ def test_split_join_arithmetic_gates(): x = bb.add_register(Register("x", bitsize=bitsize)) y = bb.add_register(Register("y", bitsize=bitsize)) res = bb.add_register(Register("res", bitsize=1)) - x, y, res = split_join_cirq_arithmetic_gates( + x, y, res = add_from_bloq_register_flat_qubits( bb, CirqGateAsBloq(LessThanEqualGate(bitsize, bitsize)), x=x, y=y, res=res ) cbloq = bb.finalize(x=x, y=y, res=res) @@ -72,11 +74,40 @@ def test_uniform_superposition(): qlt_testing.assert_valid_bloq_decomposition(usup) -def test_prepare(): - num_mu = 10 - num_spin_orb = 4 - prep = PrepareTHC(num_mu=num_mu, num_spin_orb=num_spin_orb, keep_bitsize=10) +@pytest.mark.parametrize("num_mu, num_spat, eps", ((10, 4, 1e-3), (40, 10, 1e-5), (72, 31, 1e-8))) +def test_prepare_alt_keep_vals(num_mu, num_spat, eps): + np.random.seed(7) + t_l = np.random.normal(0, 1, size=num_spat) + zeta = np.random.normal(0, 1, size=(num_mu, num_mu)) + zeta = 0.5 * (zeta + zeta.T) + prep = PrepareTHC.build(t_l, zeta, probability_epsilon=eps) qlt_testing.assert_valid_bloq_decomposition(prep) + # Test that the alt / keep values are correct + qlt_testing.assert_valid_bloq_decomposition(prep) + triu_indices = np.triu_indices(num_mu) + enlarged_matrix = np.zeros((num_mu + 1, num_mu + 1)) + # THC paper uses row major ordering of the data + enlarged_matrix[:num_mu, :num_mu] = np.abs(zeta) + enlarged_matrix[:num_spat, num_mu] = np.abs(t_l) + flat_data = np.abs(np.concatenate([zeta[triu_indices], t_l])) + alternates, keep_numers, mu = preprocess_lcu_coefficients_for_reversible_sampling( + flat_data, eps + ) + keep_denom = 2**mu + data_len = len(flat_data) + num_ut = len(triu_indices[0]) + # Test alt_mu / alt_nu vales + # stolen from openfermion unit test + out_distribution = [1 / data_len * numer / keep_denom for numer in keep_numers] + unraveled_dist = np.zeros_like(enlarged_matrix) + unraveled_dist[triu_indices] = out_distribution[:num_ut] + unraveled_dist[:num_spat, num_mu] = out_distribution[num_ut:] + total = np.sum(flat_data) + for i in range(data_len): + switch_probability = 1 - keep_numers[i] / keep_denom + unraveled_dist[prep.alt_mu[i], prep.alt_nu[i]] += 1 / data_len * switch_probability + assert np.allclose(unraveled_dist[triu_indices], flat_data[:num_ut] / total, atol=eps) + assert np.allclose(unraveled_dist[:num_spat, num_mu], flat_data[num_ut:] / total, atol=eps) def test_notebook():