vec

package
v0.0.0-...-d2f97bb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MAX_BUFFER_LENGTH = 256
)

Variables

This section is empty.

Functions

func Reduce

func Reduce[T any](w Iter[T], f func(i int, j int, x T, y T) T) T

func ViewIter

func ViewIter[T any](i Iter[T]) (j Iter[T], v Vec[T])

func Wrap

func Wrap[T any](f func(T) T) func(Vec[T]) Vec[T]

Wrap makes Vec a functor

func Zero

func Zero[T any]() T

Zero returns zero value of a type

Types

type Iter

type Iter[T any] interface {
	Next() (value T, remain bool)
}

func Filter

func Filter[T any](v Iter[T], f func(x T) bool) Iter[T]

func MakeChanIter

func MakeChanIter[T any](ch chan T) Iter[T]

func MakeIterFromFunc

func MakeIterFromFunc[T any](f func(i int) (value T, remain bool)) Iter[T]

func Map

func Map[T1 any, T2 any](v Iter[T1], f func(x T1) (y T2)) Iter[T2]

type Range

type Range struct {
	Beg  int
	End  int
	Step int
}

func (Range) Get

func (s Range) Get(i int) int

func (Range) Iterate

func (s Range) Iterate() Iter[int]

func (Range) Len

func (s Range) Len() int

type Vec

type Vec[T any] struct {
	Data []T
}

func MakeVec

func MakeVec[T any](n int) Vec[T]

func MakeVecFromIter

func MakeVecFromIter[T any](iter Iter[T]) Vec[T]

func MakeVecFromSlice

func MakeVecFromSlice[T any](s []T) Vec[T]

func (Vec[T]) Clone

func (v Vec[T]) Clone() Vec[T]

func (Vec[T]) Get

func (v Vec[T]) Get(i int) T

func (Vec[T]) Iterate

func (v Vec[T]) Iterate() Iter[T]

func (Vec[T]) Len

func (v Vec[T]) Len() int

func (Vec[T]) Set

func (v Vec[T]) Set(i int, x T) Vec[T]

func (Vec[T]) Slice

func (v Vec[T]) Slice(beg int, end int) Vec[T]

func (Vec[T]) SliceRange

func (v Vec[T]) SliceRange(beg int, end int, step int) Vec[T]

type VecSBO

type VecSBO[T any] struct {
	Buffer       [MAX_BUFFER_LENGTH]T
	BufferLength int
	AddonData    []T
}

VecSBO : vector with small buffer optimization

func MakeVecSBO

func MakeVecSBO[T any](length int) VecSBO[T]

func MakeVecSBOFromVec

func MakeVecSBOFromVec[T any](v Vec[T]) VecSBO[T]

func (VecSBO[T]) Clone

func (v VecSBO[T]) Clone() VecSBO[T]

func (VecSBO[T]) Get

func (v VecSBO[T]) Get(i int) T

func (VecSBO[T]) Len

func (v VecSBO[T]) Len() int

func (VecSBO[T]) Set

func (v VecSBO[T]) Set(i int, x T) VecSBO[T]

func (VecSBO[T]) Slice

func (v VecSBO[T]) Slice(beg int, end int) VecSBO[T]

func (VecSBO[T]) ToVec

func (v VecSBO[T]) ToVec() Vec[T]

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL