github.com/apo-diod/go-range

Lib, that implements intervals, sequences and sets in Golang


Keywords
algebra, go, golang, interval, interval-algebra, intervals, math, sequences, set-theory
Install
go get github.com/apo-diod/go-range

Documentation

go-range GoDoc

Lib, that implements sets, intervals and sequences in Golang

How to get

$ go get github.com/apo-diod/go-range

Use

Set:

set := goRange.InitialiseSet(0, 10) // contains [0, 10)
set.Include(0, 30) // now contains [0, 30)
set.Exclude(10, 20) // now contains [0, 10)U[20, 30)
unpacked := set.UnpackSet()//contains [0, 10)U[20, 30)

Interval:

closedInterval := goRange.InitialiseClosedInterval(-10, 10)//[-10, 10]
openInterval := goRange.InitialiseOpenInterval(-10, 10)//(-10, 10)
sum := goRange.IntervalSum(closeInterval, openInterval) //[-20, 20]
unpacked := sum.UnpackInterval()//[]int{-20, -19, ..., 19, 20}

Sequence:

seq := goRange.InitialiseSequence(func(elements []int) int {
  return elements[len(elements)-1] + elements[len(elements)-2]
}, 1, 1)//fibonacci sequence
log.Println(seq.GetElement(10)) //55

PS

This lib will be updated, so if you find a bug, please notify me