Skip to content

Commit e3c7fd7

Browse files
Upgrade qsim to 0.8.0. (#496)
1 parent a86146c commit e3c7fd7

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

WORKSPACE

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ http_archive(
6767

6868
http_archive(
6969
name = "qsim",
70-
sha256 = "e2853379bde52d6277f9be4b80f54d32b3b27f7242a6c561cb34fb12d823b80e",
71-
strip_prefix = "qsim-0.7.1-dev-20210126",
72-
urls = ["https://github.com/quantumlib/qsim/archive/v0.7.1-dev+20210126.zip"],
70+
sha256 = "5bc53d1d8c4689537d6f2cca20a67c8a1488f80a41cc412ca18d54afb6c21648",
71+
strip_prefix = "qsim-0.8.0",
72+
urls = ["https://github.com/quantumlib/qsim/archive/v0.8.0.zip"],
7373
)
7474

7575
# Added for crosstool in tensorflow.

tensorflow_quantum/core/ops/tfq_calculate_unitary_op.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,19 +106,19 @@ class TfqCalculateUnitaryOp : public tensorflow::OpKernel {
106106

107107
// Begin simulation.
108108
int largest_nq = 1;
109-
Unitary u = UnitarySpace(largest_nq, tfq_for).CreateUnitary();
109+
Unitary u = UnitarySpace(tfq_for).CreateUnitary(largest_nq);
110110

111111
// Simulate programs one by one. Parallelizing over state vectors
112112
// we no longer parallelize over circuits. Each time we encounter a
113113
// a larger circuit we will grow the unitary as nescessary.
114114
for (int i = 0; i < fused_circuits.size(); i++) {
115115
int nq = num_qubits[i];
116-
UCalculator sim = UCalculator(nq, tfq_for);
117-
UnitarySpace us = UnitarySpace(nq, tfq_for);
116+
UCalculator sim = UCalculator(tfq_for);
117+
UnitarySpace us = UnitarySpace(tfq_for);
118118
if (nq > largest_nq) {
119119
// need to switch to larger unitaryspace.
120120
largest_nq = nq;
121-
u = us.CreateUnitary();
121+
u = us.CreateUnitary(nq);
122122
}
123123
us.SetIdentity(u);
124124
for (int j = 0; j < fused_circuits[i].size(); j++) {
@@ -136,7 +136,7 @@ class TfqCalculateUnitaryOp : public tensorflow::OpKernel {
136136
uint64_t k = l % (1 << max_num_qubits);
137137
if (k < crossover && j < crossover) {
138138
output_tensor(static_cast<ptrdiff_t>(i), static_cast<ptrdiff_t>(j),
139-
static_cast<ptrdiff_t>(k)) = us.GetEntry(u, j, k);
139+
static_cast<ptrdiff_t>(k)) = us.GetEntry(u, k, j);
140140
} else {
141141
output_tensor(static_cast<ptrdiff_t>(i), static_cast<ptrdiff_t>(j),
142142
static_cast<ptrdiff_t>(k)) =

0 commit comments

Comments
 (0)