package set

import "gonum.org/v1/gonum/graph/internal/set"

Package set provides integer and graph.Node sets.

Index

Functions

func Equal

func Equal(a, b Nodes) bool

Equal reports set equality between the parameters. Sets are equal if and only if they have the same elements.

func IntsEqual

func IntsEqual[T Int](a, b Ints[T]) bool

IntsEqual reports set equality between the parameters. Sets are equal if and only if they have the same elements.

Types

type Int

type Int interface{ ~int | ~int64 }

type Ints

type Ints[T Int] map[T]struct{}

func (Ints[T]) Add

func (s Ints[T]) Add(e T)

Add inserts an element into the set.

func (Ints[T]) Count

func (s Ints[T]) Count() int

Count reports the number of elements stored in the set.

func (Ints[T]) Has

func (s Ints[T]) Has(e T) bool

Has reports the existence of the element in the set.

func (Ints[T]) Remove

func (s Ints[T]) Remove(e T)

Remove deletes the specified element from the set.

type Nodes

type Nodes map[int64]graph.Node

Nodes is a set of nodes keyed in their integer identifiers.

func CloneNodes

func CloneNodes(src Nodes) Nodes

CloneNodes returns a clone of src.

func IntersectionOfNodes

func IntersectionOfNodes(a, b Nodes) Nodes

IntersectionOfNodes returns the intersection of a and b.

The intersection of two sets, a and b, is the set containing all the elements shared between the two sets, for instance:

{a,b,c} INTERSECT {b,c,d} = {b,c}

The intersection between a set and itself is itself, and thus effectively a copy operation:

{a,b,c} INTERSECT {a,b,c} = {a,b,c}

The intersection between two sets that share no elements is the empty set:

{a,b,c} INTERSECT {d,e,f} = {}

func NewNodes

func NewNodes() Nodes

NewNodes returns a new Nodes.

func NewNodesSize

func NewNodesSize(n int) Nodes

NewNodesSize returns a new Nodes with the given size hint, n.

func UnionOfNodes

func UnionOfNodes(a, b Nodes) Nodes

UnionOfNodes returns the union of a and b.

The union of two sets, a and b, is the set containing all the elements of each, for instance:

{a,b,c} UNION {d,e,f} = {a,b,c,d,e,f}

Since sets may not have repetition, unions of two sets that overlap do not contain repeat elements, that is:

{a,b,c} UNION {b,c,d} = {a,b,c,d}

func (Nodes) Add

func (s Nodes) Add(n graph.Node)

Add inserts an element into the set.

func (Nodes) Count

func (s Nodes) Count() int

Count returns the number of element in the set.

func (Nodes) Has

func (s Nodes) Has(n graph.Node) bool

Has reports the existence of the elements in the set.

func (Nodes) Remove

func (s Nodes) Remove(e graph.Node)

Remove deletes the specified element from the set.

Source Files

doc.go same.go set.go

Version
v0.15.1 (latest)
Published
Aug 16, 2024
Platform
linux/amd64
Imports
2 packages
Last checked
1 day ago

Tools for package owners.