matrix

package
v0.0.0-...-026ee7b Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2023 License: MIT Imports: 13 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Elem

type Elem interface {
	Elem32 | Elem64
	Bitlen() uint64
}

type Elem32

type Elem32 = C.Elem32

func (Elem32) Bitlen

func (Elem32) Bitlen() uint64

type Elem64

type Elem64 = C.Elem64

func (Elem64) Bitlen

func (Elem64) Bitlen() uint64

type IoRandSource

type IoRandSource interface {
	io.Reader
	mrand.Source64
}

type Matrix

type Matrix[T Elem] struct {
	// contains filtered or unexported fields
}

func Gaussian

func Gaussian[T Elem](src IoRandSource, rows, cols uint64) *Matrix[T]

func Mul

func Mul[T Elem](a *Matrix[T], b *Matrix[T]) *Matrix[T]

func MulSeededLeft

func MulSeededLeft[T Elem](a *MatrixSeeded[T], b *Matrix[T]) *Matrix[T]

func MulVec

func MulVec[T Elem](a *Matrix[T], b *Matrix[T]) *Matrix[T]

func MulVecPacked

func MulVecPacked[T Elem](a *Matrix[T], b *Matrix[T]) *Matrix[T]

func New

func New[T Elem](rows uint64, cols uint64) *Matrix[T]

func Rand

func Rand[T Elem](src IoRandSource, rows uint64, cols uint64, mod uint64) *Matrix[T]

If mod is 0, then generate uniform random int of type T

func Ternary

func Ternary[T Elem](src IoRandSource, rows uint64, cols uint64) *Matrix[T]

Elements in range [0, 1, 2]

func Zeros

func Zeros[T Elem](rows uint64, cols uint64) *Matrix[T]

func (*Matrix[T]) Add

func (a *Matrix[T]) Add(b *Matrix[T])

func (*Matrix[T]) AddAt

func (a *Matrix[T]) AddAt(i, j uint64, val T)

func (*Matrix[T]) AddConst

func (a *Matrix[T]) AddConst(val T)

func (*Matrix[T]) AddWithMismatch

func (a *Matrix[T]) AddWithMismatch(b *Matrix[T])

func (*Matrix[T]) AppendZeros

func (m *Matrix[T]) AppendZeros(n uint64)

func (*Matrix[T]) CanSquish

func (m *Matrix[T]) CanSquish(pMod uint64) bool

func (*Matrix[T]) Cols

func (m *Matrix[T]) Cols() uint64

func (*Matrix[T]) Concat

func (a *Matrix[T]) Concat(b *Matrix[T])

func (*Matrix[T]) Copy

func (m *Matrix[T]) Copy() *Matrix[T]

func (*Matrix[T]) Data

func (m *Matrix[T]) Data() []T

func (*Matrix[T]) DropLastrows

func (m *Matrix[T]) DropLastrows(n uint64)

func (*Matrix[T]) Equals

func (m *Matrix[T]) Equals(n *Matrix[T]) bool

func (*Matrix[T]) Get

func (m *Matrix[T]) Get(i, j uint64) T

func (*Matrix[T]) GetRow

func (m *Matrix[T]) GetRow(offset, num_rows uint64) *Matrix[T]

func (*Matrix[T]) GobDecode

func (m *Matrix[T]) GobDecode(buf []byte) error

func (Matrix[T]) GobEncode

func (m Matrix[T]) GobEncode() ([]byte, error)

func (*Matrix[T]) Make32

func (m *Matrix[T]) Make32() *Matrix[Elem32]

func (*Matrix[T]) Make64

func (m *Matrix[T]) Make64() *Matrix[Elem64]

func (*Matrix[T]) ModConst

func (a *Matrix[T]) ModConst(val T)

func (*Matrix[T]) MulConst

func (a *Matrix[T]) MulConst(val T)

func (*Matrix[T]) Print

func (m *Matrix[T]) Print()

func (*Matrix[T]) PrintStart

func (m *Matrix[T]) PrintStart()

func (*Matrix[T]) ReadFromFile

func (m *Matrix[T]) ReadFromFile(fn string) error

func (*Matrix[T]) ReadFromFileDescriptor

func (m *Matrix[T]) ReadFromFileDescriptor(f *os.File) error

func (*Matrix[T]) ReduceMod

func (m *Matrix[T]) ReduceMod(p uint64)

func (*Matrix[T]) Round

func (m *Matrix[T]) Round(round_to uint64, mod uint64)

func (*Matrix[T]) Rows

func (m *Matrix[T]) Rows() uint64

func (*Matrix[T]) RowsDeepCopy

func (m *Matrix[T]) RowsDeepCopy(offset, num_rows uint64) *Matrix[T]

func (*Matrix[T]) Set

func (m *Matrix[T]) Set(i, j uint64, val T)

func (*Matrix[T]) ShiftDown

func (m *Matrix[T]) ShiftDown(n int)

func (*Matrix[T]) Size

func (m *Matrix[T]) Size() uint64

func (*Matrix[T]) Squish

func (m *Matrix[T]) Squish()

Compresses the matrix to store it in 'packed' form. Specifically, this method squishes the matrix by representing each group of 'delta' consecutive values as a single database Element, where each value uses 'basis' bits.

func (*Matrix[T]) SquishBasis

func (m *Matrix[T]) SquishBasis() uint64

func (*Matrix[T]) SquishRatio

func (m *Matrix[T]) SquishRatio() uint64

func (*Matrix[T]) Sub

func (a *Matrix[T]) Sub(b *Matrix[T])

func (*Matrix[T]) SubConst

func (a *Matrix[T]) SubConst(val T)

func (*Matrix[T]) WriteToFile

func (m *Matrix[T]) WriteToFile(fn string) error

func (*Matrix[T]) WriteToFileDescriptor

func (m *Matrix[T]) WriteToFileDescriptor(f *os.File) error

type MatrixSeeded

type MatrixSeeded[T Elem] struct {
	// contains filtered or unexported fields
}

func NewSeeded

func NewSeeded[T Elem](src []IoRandSource, rows []uint64, cols uint64) *MatrixSeeded[T]

Jump to

Keyboard shortcuts

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