| 317 | } |
| 318 | |
| 319 | static bool test_ADD() |
| 320 | { |
| 321 | int n = 5, m = 4; |
| 322 | int N = 7; |
| 323 | n = ceil(log2(N)) + 1; |
| 324 | auto qvm = CPUQVM(); |
| 325 | qvm.init(); |
| 326 | auto q = qvm.qAllocMany(n); |
| 327 | auto q1 = qvm.qAllocMany(n); |
| 328 | auto q2 = qvm.qAllocMany(n); |
| 329 | auto q3 = qvm.qAllocMany(n); |
| 330 | auto auxadd = qvm.qAllocMany(1); |
| 331 | auto prog = QProg(); |
| 332 | int b = 2; |
| 333 | int a = 3; |
| 334 | int x = 4; |
| 335 | prog << bind_nonnegative_data(x, q3); |
| 336 | std::cout << prog << std::endl; |
| 337 | prog << FourierADD(q, a, b); |
| 338 | //prog << Modexp(a, N, q1, q2, auxadd, q3, n); |
| 339 | std::cout << prog << std::endl; |
| 340 | /*prog << bind_nonnegative_data(b, q1) |
| 341 | << bind_nonnegative_data(x, q2) |
| 342 | << conModMul(a, N, q1, q2, auxadd, n);*/ |
| 343 | /*prog << bind_nonnegative_data(b, q) |
| 344 | << conModADD(a, N, q, auxadd, n);*/ |
| 345 | /* prog << bind_nonnegative_data(b, q) |
| 346 | << conModADD(a, N, q, auxadd, n).dagger();*/ |
| 347 | auto result = qvm.probRunDict(prog, q2,1); |
| 348 | return true; |
| 349 | } |
| 350 | |
| 351 | |
| 352 | TEST(ArithmeticUnit, test1) |
no test coverage detected