SJTVertex parentCluster = assignParentCluster(node);
if (node.isNature()) {
JTPotential clusterPT = parentCluster.getPotential();
PT nodePT = node.getDiscreteCPT();
FastMap2 fmap = clusterPT.createSubtableFastMap(nodePT);
FMarginalizationMap mfmap = clusterPT.createFMarginalizationMap(
node.getDiscretizedDomain());
FastMap2 liklihoodfmap = clusterPT.createSubtableFastMap(
DomainFactory.createDomainProduct(
node.getDiscretizedDomain()));
clusterHash.put(node,
new ClusterBundle(parentCluster, fmap, mfmap,
liklihoodfmap));
} else if (node.isUtility()) {
JTPotential clusterPT = parentCluster.getPotential();
Vector<DiscreteDomain> parentDomains = node.getDiscreteCPT().getParentsDomains();
FastMap2 fmap = clusterPT.createSubtableFastMap(parentDomains);
FMarginalizationMap mfmap = clusterPT.createFMarginalizationMap(
node.getDiscreteCPT().getParentsDomains());
clusterHash.put(node,
new ClusterBundle(parentCluster, fmap, mfmap, null));
} else if (node.isDecision()) {
JTPotential clusterPT = parentCluster.getPotential();
// PT nodePT = decisionPotentialHash.get(node);
// FastMap2 fmap = clusterPT.createSubtableFastMap(nodePT);
FMarginalizationMap mfmap = clusterPT.createFMarginalizationMap(
node.getDiscretizedDomain());
FastMap2 liklihoodfmap = clusterPT.createSubtableFastMap(
DomainFactory.createDomainProduct(
node.getDiscretizedDomain()));
clusterHash.put(node,
new ClusterBundle(parentCluster, null, mfmap,