Closed MKrbm closed 11 months ago
} else { leg_size = opsp->size(); //Added this part tmp--; nindex = tmp / (sps - 1); if (warped) { if (fl != 0) { throw std::runtime_error("fl must be zero when warp_label is called"); } sign *= loperators[op_type].signs[opsp->state()]; } fl = tmp % (sps - 1) + 1; state_num = opsp->update_state(nindex, fl); sign *= loperators[op_type].signs[state_num]; dir = nindex / (leg_size); site = opsp->bond(nindex % leg_size); dout << "nindex, leg_size, dir, site : " << nindex << " " << leg_size << " " << dir << " " << site << std::endl; if (warped) { next_dot = opsp->next_dot(0, nindex, cur_dot); tau_prime = opsp->tau(); } else { next_dot = opsp->next_dot(cindex, nindex, cur_dot); } if (!loperators[op_type].has_warp(state_num)) { can_warp_ops.erase(cur_dot - dotp->index()); } else { can_warp_ops.insert(cur_dot - dotp->index()); } }
It's better to get rid of goto statement later.
It's better to get rid of goto statement later.