gomat

package module
v0.3.2 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2025 License: BSD-2-Clause Imports: 1 Imported by: 0

README

gomat

A simple matrix/2D array library in Go. Inspired by gonum but I needed complex numbers

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RealToComplex added in v0.3.0

func RealToComplex(x []float64) []complex128

Types

type Matrix added in v0.3.0

type Matrix[T Number] struct {
	Data   []T
	Rows   int
	Cols   int
	Stride int
}

func FromValues added in v0.3.0

func FromValues[T Number](rows, cols int, data []T) Matrix[T]

func Init added in v0.3.0

func Init[T Number](rows, cols int) Matrix[T]

func Ones added in v0.3.2

func Ones[T Number](rows, cols int) Matrix[T]

func (Matrix[T]) Add added in v0.3.0

func (m Matrix[T]) Add(other Matrix[T]) Matrix[T]

func (*Matrix[T]) Apply added in v0.3.0

func (m *Matrix[T]) Apply(f func(T) T)

func (Matrix[T]) Div added in v0.3.0

func (m Matrix[T]) Div(other Matrix[T]) Matrix[T]

func (Matrix[T]) Get added in v0.3.0

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

func (Matrix[T]) GetRow added in v0.3.1

func (m Matrix[T]) GetRow(i int) Vec[T]

func (Matrix[T]) IntegrateRows added in v0.3.1

func (m Matrix[T]) IntegrateRows(x Vec[T]) Vec[T]

func (Matrix[T]) IterRows added in v0.3.0

func (m Matrix[T]) IterRows() iter.Seq2[int, Vec[T]]

func (Matrix[T]) Mul added in v0.3.0

func (m Matrix[T]) Mul(other Matrix[T]) Matrix[T]

func (*Matrix[T]) ScaleBy added in v0.3.2

func (m *Matrix[T]) ScaleBy(x T)

func (*Matrix[T]) Set added in v0.3.0

func (m *Matrix[T]) Set(i, j int, value T)

func (Matrix[T]) Slice added in v0.3.0

func (m Matrix[T]) Slice(i, k, j, l int) Matrix[T]

func (Matrix[T]) SliceWithCopy added in v0.3.0

func (m Matrix[T]) SliceWithCopy(i, k, j, l int) Matrix[T]

func (Matrix[T]) Sub added in v0.3.1

func (m Matrix[T]) Sub(other Matrix[T]) Matrix[T]

func (Matrix[T]) Sum added in v0.3.0

func (m Matrix[T]) Sum() T

func (Matrix[T]) Transpose added in v0.3.2

func (m Matrix[T]) Transpose() Matrix[T]

type Number

type Number interface {
	float64 | complex128
}

type Vec added in v0.3.1

type Vec[T Number] []T

by Vec I mean a continuous 1d array of stride 1. The flat data behind a matrix or a slice of a matrix is not a vec. Each row should be when returned by IterRows

func Linspace added in v0.3.0

func Linspace(start, stop, dx float64) Vec[float64]

func (Vec[T]) Apply added in v0.3.2

func (v Vec[T]) Apply(f func(T) T)

func (Vec[T]) Sum added in v0.3.1

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

func (Vec[T]) Trapezoidal added in v0.3.1

func (v Vec[T]) Trapezoidal(x Vec[T]) T

Jump to

Keyboard shortcuts

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