Skip to content

Commit ddc5a3d

Browse files
committed
fix: Handle zero weights in intra-layer links
1 parent 5859bae commit ddc5a3d

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/io/Network.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ void Network::generateStateNetworkFromMultilayerWithInterLinks()
710710
unsigned int stateId2i = addMultilayerNode(layer2, targetPhysId);
711711

712712
// Log() << " -> " << targetPhysId << "\n";
713-
double weight = interWeight * intraWeight / sumIntraOutWeightTargetLayer;
713+
double weight = sumIntraOutWeightTargetLayer == 0.0 ? 0.0 : interWeight * intraWeight / sumIntraOutWeightTargetLayer;
714714

715715
addLink(stateId1, stateId2i, weight);
716716
++m_numInterLayerLinks; // TODO: Count all as one?
@@ -748,7 +748,7 @@ void Network::generateStateNetworkFromMultilayerWithInterLinks()
748748
unsigned int stateId2i = addMultilayerNode(layer2, targetPhysId);
749749

750750
// Log() << " -> " << targetPhysId << "\n";
751-
double weight = interWeight * intraWeight / sumIntraOutWeightTargetLayer;
751+
double weight = sumIntraOutWeightTargetLayer == 0.0 ? 0.0 : interWeight * intraWeight / sumIntraOutWeightTargetLayer;
752752

753753
addLink(stateId1, stateId2i, weight);
754754
++m_numInterLayerLinks; // TODO: Count all as one?
@@ -839,8 +839,7 @@ void Network::generateStateNetworkFromMultilayerWithSimulatedInterLinks()
839839
unsigned int stateId2i = addMultilayerNode(layer2, n2);
840840

841841
// Log() << " -> " << n2 << "\n";
842-
double weight = linkWeightNormalizationFactor * intraWeight;
843-
842+
double weight = intraWeight == 0.0 ? 0.0 : linkWeightNormalizationFactor * intraWeight;
844843
addLink(stateId1, stateId2i, weight);
845844
++m_numInterLayerLinks; // TODO: Count all as one?
846845
}

0 commit comments

Comments
 (0)