discmath

package
v0.0.0-...-da90e6b Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNotSolvable = errors.New("not solvable")

Functions

func InversePermutation

func InversePermutation(mut []uint32) []uint32

func OctDiv

func OctDiv(x, y uint8) uint8

func OctExp

func OctExp(x uint32) uint8

func OctInverse

func OctInverse(x uint8) uint8

func OctLog

func OctLog(x uint8) uint8

func OctSub

func OctSub(x, y uint8) uint8

Types

type GF256

type GF256 struct {
	// contains filtered or unexported fields
}

func (*GF256) Add

func (g *GF256) Add(g2 *GF256)

func (*GF256) AddMul

func (g *GF256) AddMul(g2 *GF256, x uint8)

func (*GF256) Bytes

func (g *GF256) Bytes() []byte

func (*GF256) Mul

func (g *GF256) Mul(x uint8)

func (*GF256) String

func (g *GF256) String() string

type MatrixGF2

type MatrixGF2 struct {
	// contains filtered or unexported fields
}

func NewMatrixGF2

func NewMatrixGF2(rows, cols uint32) *MatrixGF2

func (*MatrixGF2) ColsNum

func (m *MatrixGF2) ColsNum() uint32

func (*MatrixGF2) Get

func (m *MatrixGF2) Get(row, col uint32) bool

func (*MatrixGF2) GetRow

func (m *MatrixGF2) GetRow(row uint32) []uint8

func (*MatrixGF2) Mul

func (m *MatrixGF2) Mul(s *MatrixGF256) *MatrixGF2

func (*MatrixGF2) RowAdd

func (m *MatrixGF2) RowAdd(row uint32, what []uint8)

func (*MatrixGF2) RowsNum

func (m *MatrixGF2) RowsNum() uint32

func (*MatrixGF2) Set

func (m *MatrixGF2) Set(row, col uint32)

func (*MatrixGF2) String

func (m *MatrixGF2) String() string

func (*MatrixGF2) ToGF256

func (m *MatrixGF2) ToGF256() *MatrixGF256

func (*MatrixGF2) Unset

func (m *MatrixGF2) Unset(row, col uint32)

type MatrixGF256

type MatrixGF256 struct {
	// contains filtered or unexported fields
}

func GaussianElimination

func GaussianElimination(a, d *MatrixGF256) (*MatrixGF256, error)

func NewMatrixGF256

func NewMatrixGF256(rows, cols uint32) *MatrixGF256

func (*MatrixGF256) Add

func (m *MatrixGF256) Add(s *MatrixGF256) *MatrixGF256

func (*MatrixGF256) ApplyPermutation

func (m *MatrixGF256) ApplyPermutation(permutation []uint32) *MatrixGF256

func (*MatrixGF256) ColsNum

func (m *MatrixGF256) ColsNum() uint32

func (*MatrixGF256) Copy

func (m *MatrixGF256) Copy() *MatrixGF256

func (*MatrixGF256) Each

func (m *MatrixGF256) Each(f func(row, col uint32))

func (*MatrixGF256) Get

func (m *MatrixGF256) Get(row, col uint32) uint8

func (*MatrixGF256) GetBlock

func (m *MatrixGF256) GetBlock(rowOffset, colOffset, rowSize, colSize uint32) *MatrixGF256

func (*MatrixGF256) GetCols

func (m *MatrixGF256) GetCols(col uint32) (cols []uint32)

func (*MatrixGF256) GetRow

func (m *MatrixGF256) GetRow(row uint32) *GF256

func (*MatrixGF256) GetRows

func (m *MatrixGF256) GetRows(row uint32) (rows []uint32)

func (*MatrixGF256) MulSparse

func (m *MatrixGF256) MulSparse(s *MatrixGF256) *MatrixGF256

func (*MatrixGF256) RowAdd

func (m *MatrixGF256) RowAdd(i uint32, g2 *GF256)

func (*MatrixGF256) RowAddMul

func (m *MatrixGF256) RowAddMul(i uint32, g2 *GF256, x uint8)

func (*MatrixGF256) RowMul

func (m *MatrixGF256) RowMul(i uint32, x uint8)

func (*MatrixGF256) RowSet

func (m *MatrixGF256) RowSet(row uint32, r *GF256)

func (*MatrixGF256) RowsNum

func (m *MatrixGF256) RowsNum() uint32

func (*MatrixGF256) Set

func (m *MatrixGF256) Set(row, col uint32, val uint8)

func (*MatrixGF256) SetFrom

func (m *MatrixGF256) SetFrom(g *MatrixGF256, rowOffset, colOffset uint32)

func (*MatrixGF256) String

func (m *MatrixGF256) String() string

func (*MatrixGF256) ToGF2

func (m *MatrixGF256) ToGF2(rowFrom, colFrom, rowSize, colSize uint32) *MatrixGF2

type SparseMatrixGF2

type SparseMatrixGF2 struct {
	// contains filtered or unexported fields
}

func NewSparseMatrixGF2

func NewSparseMatrixGF2(rows, cols uint32) *SparseMatrixGF2

func (*SparseMatrixGF2) ApplyColsPermutation

func (s *SparseMatrixGF2) ApplyColsPermutation(permutation []uint32) *SparseMatrixGF2

func (*SparseMatrixGF2) ApplyRowsPermutation

func (s *SparseMatrixGF2) ApplyRowsPermutation(permutation []uint32) *SparseMatrixGF2

func (*SparseMatrixGF2) ColsNum

func (s *SparseMatrixGF2) ColsNum() uint32

func (*SparseMatrixGF2) Each

func (s *SparseMatrixGF2) Each(f func(row, col uint32))

func (*SparseMatrixGF2) GetBlock

func (s *SparseMatrixGF2) GetBlock(rowOffset, colOffset, rowSize, colSize uint32) *SparseMatrixGF2

func (*SparseMatrixGF2) GetCols

func (s *SparseMatrixGF2) GetCols(row uint32) (cols []uint32)

func (*SparseMatrixGF2) GetRows

func (s *SparseMatrixGF2) GetRows(col uint32) (rows []uint32)

func (*SparseMatrixGF2) NonZeroes

func (s *SparseMatrixGF2) NonZeroes() int

func (*SparseMatrixGF2) RowsNum

func (s *SparseMatrixGF2) RowsNum() uint32

func (*SparseMatrixGF2) Set

func (s *SparseMatrixGF2) Set(row, col uint32)

func (*SparseMatrixGF2) ToDense

func (s *SparseMatrixGF2) ToDense(rowFrom, colFrom, rowSize, colSize uint32) *MatrixGF2

func (*SparseMatrixGF2) Transpose

func (s *SparseMatrixGF2) Transpose() *SparseMatrixGF2

Jump to

Keyboard shortcuts

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