本文整理汇总了Golang中github.com/timtadh/sfp/lattice.Node.Maximal方法的典型用法代码示例。如果您正苦于以下问题:Golang Node.Maximal方法的具体用法?Golang Node.Maximal怎么用?Golang Node.Maximal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/timtadh/sfp/lattice.Node
的用法示例。
在下文中一共展示了Node.Maximal方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: weight
func weight(u, v lattice.Node) (float64, error) {
umax, err := u.Maximal()
if err != nil {
return 0, err
}
vmax, err := v.Maximal()
if err != nil {
return 0, err
}
udeg, err := u.AdjacentCount()
if err != nil {
return 0, err
}
vdeg, err := v.AdjacentCount()
if err != nil {
return 0, err
}
if umax && vmax {
return 0, nil
} else if !umax && vmax {
return 1.0 / float64(vdeg), nil
} else if umax && !vmax {
return 1.0 / float64(udeg), nil
} else {
return 1.0, nil
}
}
示例2: Report
func (r *Max) Report(n lattice.Node) error {
if ismax, err := n.Maximal(); err != nil {
return err
} else if ismax {
return r.Reporter.Report(n)
}
return nil
}
示例3: Next
func Next(ctx interface{}, cur lattice.Node) (lattice.Node, error) {
w := ctx.(*Walker)
if ismax, err := cur.Maximal(); err != nil {
return nil, err
} else if ismax && w.Dt.Acceptable(cur) {
w.teleportAllowed = true
errors.Logf("INFO", "ALLOWING TELEPORTS")
}
if w.teleportAllowed && rand.Float64() < w.TeleportProbability {
w.teleportAllowed = false
next := w.Teleports[rand.Intn(len(w.Teleports))]
errors.Logf("INFO", "TELEPORT\n from %v\n to %v", cur, next)
return next, nil
}
return musk.Next(ctx, cur)
}