Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
for n in range(1, len(charges)):
#list of unique charges and list of their degeneracies
#on the next unfused leg of the tensor
leg_charges, leg_degeneracies = np.unique(charges[n], return_counts=True)
#fuse the unique charges
#Note: entries in `fused_charges` are not unique anymore.
#flow1 = 1 because the flow of leg 0 has already been
#mulitplied above
fused_charges = fuse_charge_pair(
q1=accumulated_charges, flow1=1, q2=leg_charges, flow2=flows[n])
#compute the degeneracies of `fused_charges` charges
#`fused_degeneracies` is a list of degeneracies such that
# `fused_degeneracies[n]` is the degeneracy of of
# charge `c = fused_charges[n]`.
fused_degeneracies = fuse_degeneracies(accumulated_degeneracies,
leg_degeneracies)
#compute the new degeneracies resulting from fusing
#`accumulated_charges` and `leg_charges_2`
accumulated_charges = np.unique(fused_charges)
accumulated_degeneracies = np.empty(
len(accumulated_charges), dtype=np.int64)
for n in range(len(accumulated_charges)):
accumulated_degeneracies[n] = np.sum(
fused_degeneracies[fused_charges == accumulated_charges[n]])
return accumulated_charges, accumulated_degeneracies