func (w *Walker) weight(_, v lattice.Node) (float64, error) { vmax, err := v.Maximal() if err != nil { return 0, err } if vmax { indeg, err := v.ParentCount() if err != nil { return 0, err } level := float64(v.Pattern().Level()) return (level) / float64(indeg), nil // maxLevel := float64(w.Dt.LargestLevel()) // return (level) / (float64(indeg) * maxLevel), nil } else { // level approximates indeg level := float64(v.Pattern().Level()) // indeg, err := v.ParentCount() // if err != nil { // return 0, err // } odeg, err := v.ChildCount() if err != nil { return 0, err } // return float64(odeg) / float64(indeg), nil return float64(odeg) / (level), nil } }