double f_m = f((ClusterNode)icl, g);
f_values.put(icl, f_m);
F += f_m;
}else{
//nodes;
Node n;
n = icl.getNodes().toArray(new Node[1])[0];
double f_n = f(n,g);
f_values.put(icl,f_n);
F += f_n;
}
}
for(IClusterLevel icl : f_values.keySet()){
double f = f_values.get(icl);
ret += l(-Math.log(f/F) ) - f * Math.log(f/F);
}
//HIERARCHY ENCODING
for(Node n : container.getNodesInLeaves()){
for(Node nP : n.getTransitionsAsN()){
ret += l(relativeDepth(container, lowestCommonAncestor(n,nP, ch), ch));
}