mirror of https://github.com/k3s-io/k3s
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
![]() |
// Copyright ©2014 The gonum Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
// Package simple provides a suite of simple graph implementations satisfying
|
||
|
// the gonum/graph interfaces.
|
||
|
package simple
|
||
|
|
||
|
import (
|
||
|
"math"
|
||
|
|
||
|
"k8s.io/kubernetes/third_party/forked/gonum/graph"
|
||
|
)
|
||
|
|
||
|
// Node is a simple graph node.
|
||
|
type Node int
|
||
|
|
||
|
// ID returns the ID number of the node.
|
||
|
func (n Node) ID() int {
|
||
|
return int(n)
|
||
|
}
|
||
|
|
||
|
// Edge is a simple graph edge.
|
||
|
type Edge struct {
|
||
|
F, T graph.Node
|
||
|
W float64
|
||
|
}
|
||
|
|
||
|
// From returns the from-node of the edge.
|
||
|
func (e Edge) From() graph.Node { return e.F }
|
||
|
|
||
|
// To returns the to-node of the edge.
|
||
|
func (e Edge) To() graph.Node { return e.T }
|
||
|
|
||
|
// Weight returns the weight of the edge.
|
||
|
func (e Edge) Weight() float64 { return e.W }
|
||
|
|
||
|
// maxInt is the maximum value of the machine-dependent int type.
|
||
|
const maxInt int = int(^uint(0) >> 1)
|
||
|
|
||
|
// isSame returns whether two float64 values are the same where NaN values
|
||
|
// are equalable.
|
||
|
func isSame(a, b float64) bool {
|
||
|
return a == b || (math.IsNaN(a) && math.IsNaN(b))
|
||
|
}
|