func NewGraph(rank uint) Graph {
	switch {
	case rank == 0:
		return nil
	case rank <= 8:
		return &Graph8{0, uint8(rank)}
	case rank <= 16:
		return make(Graph16, rank)
	default:
		return NewGraphN(rank)
	}
}
// NewGraph constructs a graph with a given number of nodes, selecting
// the type closest to the rank.
NewGraph constructs a graph with a given number of nodes, selecting
the type closest to the rank.
// NewGraph constructs a graph with a given number of nodes selecting // the type closest to the rank .
func NewGraph(rank uint) Graph {
	switch {
	case rank == 0:
		return nil
	case rank <= 8:
		return &Graph8{0, uint8(rank)}
	case rank <= 16:
		return make(Graph16, rank)
	default:
		return NewGraphN(rank)
	}
}
func NewGraph ( rank uint ) Graph { switch { case rank == 0 : return nil case rank <= 8 : return & Graph8 { 0 , uint8 ( rank ) } case rank <= 16 : return make ( Graph16 , rank ) default : return NewGraphN ( rank ) } }
NewGraph constructs a graph with a given number of nodes, selecting
the type closest to the rank.
NewGraph constructs a graph with a given number of nodes selecting the type closest to the rank .