Skip to content

Remove generative=True #982

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions algorithms/algebraic/shor/shor.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@
" )\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def phase_lad(\n",
" value: int,\n",
" phi_b: QArray[QBit],\n",
Expand All @@ -220,8 +220,8 @@
"\n",
"@qfunc\n",
"def ccmod_add(\n",
" N: CInt,\n",
" a: CInt,\n",
" N: int,\n",
" a: int,\n",
" phi_b: QArray[QBit], # b in fourier basis\n",
" c1: QBit,\n",
" c2: QBit,\n",
Expand Down Expand Up @@ -405,7 +405,7 @@
},
"outputs": [],
"source": [
"@qfunc(generative=True)\n",
"@qfunc\n",
"def cmod_mult(\n",
" N: int,\n",
" a: int,\n",
Expand Down Expand Up @@ -466,8 +466,10 @@
},
"outputs": [],
"source": [
"from sympy import mod_inverse\n",
"\n",
"from classiq.qmod import SWAP, free\n",
"from classiq.qmod.symbolic import min, mod_inverse\n",
"from classiq.qmod.symbolic import min\n",
"\n",
"\n",
"@qfunc\n",
Expand All @@ -478,7 +480,7 @@
" )\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def cmod_mult_pair(\n",
" N: int,\n",
" a: int,\n",
Expand Down Expand Up @@ -529,7 +531,7 @@
},
"outputs": [],
"source": [
"@qfunc(generative=True)\n",
"@qfunc\n",
"def mod_exp_func(\n",
" N: int,\n",
" a: int,\n",
Expand Down
6 changes: 3 additions & 3 deletions algorithms/aqc/solving_qlsp/solving_qlsp_with_aqc.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -578,12 +578,12 @@
"metadata": {},
"outputs": [],
"source": [
"@qfunc(generative=True)\n",
"@qfunc\n",
"def adiabatic_evolution_qfunc(\n",
" H0: CArray[PauliTerm],\n",
" H1: CArray[PauliTerm],\n",
" evolution_time: CInt,\n",
" num_steps: CInt,\n",
" evolution_time: int,\n",
" num_steps: int,\n",
" qba: QArray[QBit],\n",
"):\n",
" # Time step for each increment\n",
Expand Down
36 changes: 16 additions & 20 deletions algorithms/dqi/dqi_max_xorsat.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
" inplace_binary_to_one_hot(one_hot)\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def inplace_binary_to_one_hot(one_hot: QArray):\n",
" temp_qvars = [QBit(f\"temp_{i}\") for i in range(one_hot.len)]\n",
" bind(one_hot, temp_qvars)\n",
Expand Down Expand Up @@ -283,8 +283,8 @@
"from classiq.qmod.symbolic import acos, min as qmin, sqrt\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"def _dicke_split_cycle_shift(k: CInt, qvar: QArray[QBit]):\n",
"@qfunc\n",
"def _dicke_split_cycle_shift(k: int, qvar: QArray[QBit]):\n",
" \"\"\"\n",
" internal function, assumes the input is in the form |11..100..0> with up to k ones.\n",
" transforms the state to: sqrt(1/n)*|11..100..0> + sqrt((n-1)/n)*|01..110..0>.\n",
Expand All @@ -305,21 +305,19 @@
" )\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"def prepare_dick_state_unary_input(max_k: CInt, qvar: QArray[QBit]):\n",
"@qfunc\n",
"def prepare_dick_state_unary_input(max_k: int, qvar: QArray[QBit]):\n",
" \"\"\"\n",
" assumes the input is encoded in qvar in unary encoding. should work for every value\n",
" smaller than max_k\n",
" \"\"\"\n",
" if qvar.len > 1:\n",
" _dicke_split_cycle_shift(max_k, qvar)\n",
" prepare_dick_state_unary_input(\n",
" qmin(max_k, qvar.len - 2), qvar[1 : qvar.len]\n",
" )\n",
" prepare_dick_state_unary_input(qmin(max_k, qvar.len - 2), qvar[1 : qvar.len])\n",
"\n",
"\n",
"@qfunc\n",
"def prepare_dicke_state(k: CInt, qvar: QArray[QBit]):\n",
"def prepare_dicke_state(k: int, qvar: QArray[QBit]):\n",
" apply_to_all(X, qvar[0:k])\n",
" prepare_dick_state_unary_input(k, qvar)"
]
Expand Down Expand Up @@ -412,13 +410,11 @@
" repeat(y.len, lambda i: if_(v[i] > 0, lambda: Z(y[i])))\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"def matrix_vector_product(B: CArray[CArray[CInt]], y: QArray, out: Output[QArray]):\n",
" allocate(B.len, out)\n",
" for i in range(B.len):\n",
" out[i] ^= reduce(\n",
" lambda x, y: x ^ y, [int(B[i][j]) * y[j] for j in range(y.len)]\n",
" )"
"@qfunc\n",
"def matrix_vector_product(B: list[list[int]], y: QArray, out: Output[QArray]):\n",
" allocate(len(B), out)\n",
" for i in range(len(B)):\n",
" out[i] ^= reduce(lambda x, y: x ^ y, [int(B[i][j]) * y[j] for j in range(y.len)])"
]
},
{
Expand Down Expand Up @@ -463,11 +459,11 @@
" bind([qvar, extension], qvar_padded)\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def dqi_max_xor_sat(\n",
" B: CArray[CArray[CInt]],\n",
" v: CArray[CInt],\n",
" w_k: CArray[CReal],\n",
" B: list[list[int]],\n",
" v: list[int],\n",
" w_k: list[float],\n",
" y: Output[QArray],\n",
" solution: Output[QArray],\n",
" syndrom_decode: QCallable[QArray, QArray],\n",
Expand Down
2 changes: 1 addition & 1 deletion algorithms/gibbs/quantum_thermal_state_preparation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@
" return grid, amplitudes\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def prepare_gaussian_state(t: QArray):\n",
" grid, amplitudes = get_gaussian_amplitudes(t.len)\n",
" inplace_prepare_amplitudes(amplitudes.tolist(), 0, t)\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,9 @@
"\n",
"def generate_hamiltonian(\n",
" data: CArray[CReal],\n",
" paulis_list: CArray[CArray[Pauli]],\n",
" affines: CArray[CArray[CReal, 2]],\n",
" connectivity: CInt,\n",
" paulis_list: list[list[Pauli]],\n",
" affines: list[list[float]],\n",
" connectivity: int,\n",
") -> CArray[PauliTerm]:\n",
" assert connectivity in [\n",
" 0,\n",
Expand All @@ -242,7 +242,7 @@
"id": "45b594cf-76b5-4db8-a64a-9fb8dd30b1c2",
"metadata": {},
"source": [
"Next, we define a quantum function for the Pauli feature map, working in generative mode:"
"Next, we define a quantum function for the Pauli feature map:"
]
},
{
Expand All @@ -252,12 +252,12 @@
"metadata": {},
"outputs": [],
"source": [
"@qfunc(generative=True)\n",
"@qfunc\n",
"def pauli_kernel(\n",
" data: CArray[CReal],\n",
" paulis_list: CArray[CArray[Pauli]],\n",
" affines: CArray[CArray[CReal, 2]],\n",
" connectivity: CInt,\n",
" paulis_list: list[list[Pauli]],\n",
" affines: list[list[float]],\n",
" connectivity: int,\n",
" reps: CInt,\n",
" qba: QArray[QBit],\n",
") -> None:\n",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@
" repeat(\n",
" data.len,\n",
" lambda k: if_(\n",
" logical_and(k != highest_nonzero_bit, get_bit(j_updated, k)),\n",
" logical_and(k != highest_nonzero_bit, get_bit(j_updated, k) == 1),\n",
" lambda: CX(data[highest_nonzero_bit], data[k]),\n",
" lambda: IDENTITY(data),\n",
" ),\n",
Expand Down Expand Up @@ -567,10 +567,7 @@
"end_time": "2025-04-28T13:42:46.892202Z",
"start_time": "2025-04-28T13:42:46.890683Z"
},
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"outputs": [],
"source": [
Expand Down Expand Up @@ -969,10 +966,7 @@
"cell_type": "markdown",
"id": "fbd84d5c",
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"source": [
"We take 5 QPE phase qubits `qpe_phase_size`."
Expand Down Expand Up @@ -1115,10 +1109,7 @@
"cell_type": "markdown",
"id": "724fa21d",
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"source": [
"#### The circuit becomes very big. Thus, we do not synthesize the circuit in this demo-notebook because it takes a lot of time."
Expand All @@ -1133,10 +1124,7 @@
"end_time": "2025-04-28T13:53:40.043261Z",
"start_time": "2025-04-28T13:53:40.041952Z"
},
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"outputs": [],
"source": [
Expand Down Expand Up @@ -1290,8 +1278,8 @@
" )\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"def dummy_qae(magnitudes_list: CArray[CArray[CReal]], phases_list: CArray[CArray[CReal]], qae_phase: QArray, reg: QNum):\n",
"@qfunc\n",
"def dummy_qae(magnitudes_list: list[list[float]], phases_list: list[list[float]], qae_phase: QArray, reg: QNum):\n",
" dummy_data = QBit()\n",
" full_qae = QArray()\n",
" allocate(1, dummy_data)\n",
Expand All @@ -1312,7 +1300,7 @@
" dummy_cost_layer(qae_phase, reg, gamma)\n",
" mixer_layer(reg, beta)\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def qaoa_circuit(\n",
" gammas: CArray[CReal],\n",
" betas: CArray[CReal],\n",
Expand Down Expand Up @@ -1374,10 +1362,7 @@
"cell_type": "markdown",
"id": "b7a5550f",
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"source": [
"By using more phase qubits and optimizing on the gamma and betas parameters, you can find the optimal solution with high probability."
Expand All @@ -1388,10 +1373,7 @@
"execution_count": null,
"id": "b5bafd12",
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"outputs": [],
"source": []
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1023,12 +1023,12 @@
" return ham\n",
"\n",
"\n",
"@qfunc(generative=True)\n",
"@qfunc\n",
"def pauli_kernel(\n",
" data: CArray[CReal],\n",
" paulis_list: CArray[CArray[Pauli]],\n",
" affines: CArray[CArray[CReal, 2]],\n",
" connectivity: CInt,\n",
" paulis_list: list[list[Pauli]],\n",
" affines: list[list[float]],\n",
" connectivity: int,\n",
" reps: CInt,\n",
" qba: QArray[QBit],\n",
") -> None:\n",
Expand Down Expand Up @@ -1113,7 +1113,6 @@
"\n",
"@qfunc\n",
"def main(data1: CArray[CReal, N_DIM], data2: CArray[CReal, N_DIM], qba: Output[QNum]):\n",
"\n",
" allocate(data1.len, qba)\n",
" pauli_kernel(data1, PAULIS, AFFINES, CONNECTIVITY, REPS, qba)\n",
" invert(lambda: pauli_kernel(data2, PAULIS, AFFINES, CONNECTIVITY, REPS, qba))\n",
Expand Down
Loading