@@ -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