|
65 | 65 | },
|
66 | 66 | {
|
67 | 67 | "cell_type": "code",
|
68 |
| - "execution_count": 1, |
| 68 | + "execution_count": 7, |
69 | 69 | "id": "2bbc4aa3-8f61-433d-a1cd-c58df445a2fd",
|
70 | 70 | "metadata": {
|
71 | 71 | "execution": {
|
|
92 | 92 | "\n",
|
93 | 93 | "@qfunc\n",
|
94 | 94 | "def discrete_log_oracle(\n",
|
95 |
| - " g: CInt,\n", |
96 |
| - " x: CInt,\n", |
97 |
| - " N: CInt,\n", |
| 95 | + " g_generator: CInt,\n", |
| 96 | + " x_logarithm: CInt,\n", |
| 97 | + " N_modulus: CInt,\n", |
98 | 98 | " order: CInt,\n",
|
99 | 99 | " x1: QArray[QBit],\n",
|
100 | 100 | " x2: QArray[QBit],\n",
|
101 | 101 | " func_res: Output[QArray[QBit]],\n",
|
102 | 102 | ") -> None:\n",
|
103 | 103 | "\n",
|
104 |
| - " allocate(ceiling(log(N, 2)), func_res)\n", |
| 104 | + " allocate(ceiling(log(N_modulus, 2)), func_res)\n", |
105 | 105 | "\n",
|
106 | 106 | " inplace_prepare_int(1, func_res)\n",
|
107 |
| - " modular_exp(N, x, func_res, x1)\n", |
108 |
| - " modular_exp(N, g, func_res, x2)" |
| 107 | + " modular_exp(N_modulus, x_logarithm, func_res, x1)\n", |
| 108 | + " modular_exp(N_modulus, g_generator, func_res, x2)" |
109 | 109 | ]
|
110 | 110 | },
|
111 | 111 | {
|
|
122 | 122 | },
|
123 | 123 | {
|
124 | 124 | "cell_type": "code",
|
125 |
| - "execution_count": 2, |
| 125 | + "execution_count": 8, |
126 | 126 | "id": "d7fb63ac-023d-40ac-9395-13c1274d446f",
|
127 | 127 | "metadata": {
|
128 | 128 | "execution": {
|
|
140 | 140 | "\n",
|
141 | 141 | "@qfunc\n",
|
142 | 142 | "def discrete_log(\n",
|
143 |
| - " g: CInt,\n", |
144 |
| - " x: CInt,\n", |
145 |
| - " N: CInt,\n", |
| 143 | + " g_generator: CInt,\n", |
| 144 | + " x_logarithm: CInt,\n", |
| 145 | + " N_modulus: CInt,\n", |
146 | 146 | " order: CInt,\n",
|
147 | 147 | " x1: Output[QArray[QBit]],\n",
|
148 | 148 | " x2: Output[QArray[QBit]],\n",
|
|
155 | 155 | " hadamard_transform(x1)\n",
|
156 | 156 | " hadamard_transform(x2)\n",
|
157 | 157 | "\n",
|
158 |
| - " discrete_log_oracle(g, x, N, order, x1, x2, func_res)\n", |
| 158 | + " discrete_log_oracle(g_generator, x_logarithm, N_modulus, order, x1, x2, func_res)\n", |
159 | 159 | "\n",
|
160 | 160 | " invert(lambda: qft(x1))\n",
|
161 | 161 | " invert(lambda: qft(x2))"
|
|
209 | 209 | },
|
210 | 210 | {
|
211 | 211 | "cell_type": "code",
|
212 |
| - "execution_count": 3, |
| 212 | + "execution_count": 9, |
213 | 213 | "id": "8ef24bb4-b063-42d6-a5ea-ddcd5310ae13",
|
214 | 214 | "metadata": {
|
215 | 215 | "execution": {
|
|
224 | 224 | "from classiq import Constraints, create_model\n",
|
225 | 225 | "\n",
|
226 | 226 | "MODULU_NUM = 5\n",
|
227 |
| - "G = 3\n", |
228 |
| - "X = 2\n", |
| 227 | + "G_GENERATOR = 3\n", |
| 228 | + "X_LOGARITHM = 2\n", |
229 | 229 | "ORDER = MODULU_NUM - 1 # as 5 is prime\n",
|
230 | 230 | "\n",
|
231 | 231 | "\n",
|
|
235 | 235 | " x2: Output[QNum],\n",
|
236 | 236 | " func_res: Output[QNum],\n",
|
237 | 237 | ") -> None:\n",
|
238 |
| - " discrete_log(G, X, MODULU_NUM, ORDER, x1, x2, func_res)" |
| 238 | + " discrete_log(G_GENERATOR, X_LOGARITHM, MODULU_NUM, ORDER, x1, x2, func_res)" |
239 | 239 | ]
|
240 | 240 | },
|
241 | 241 | {
|
242 | 242 | "cell_type": "code",
|
243 |
| - "execution_count": 4, |
| 243 | + "execution_count": 10, |
244 | 244 | "id": "8e9d0b08-f3f8-4e95-a468-bfeec010d97c",
|
245 | 245 | "metadata": {
|
246 | 246 | "execution": {
|
|
272 | 272 | },
|
273 | 273 | {
|
274 | 274 | "cell_type": "code",
|
275 |
| - "execution_count": 5, |
| 275 | + "execution_count": 11, |
276 | 276 | "id": "0aef2760-aa9a-4710-8c60-08333a0a9b0b",
|
277 | 277 | "metadata": {
|
278 | 278 | "execution": {
|
|
0 commit comments