ndarray

package module
v0.0.0-...-0cec479 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2019 License: MIT Imports: 5 Imported by: 0

README

NdArray

An n-dimensional array package implemented in Go.

Note: Was an unplanned package developed for another project I was working on, its a little inefficient and not recommended for use, I will be developing a v2 that is more usable. It is here simply as a dependency that I will not modify.

Documentation

Index

Constants

View Source
const (
	TYPE_EMPTY  = 0
	TYPE_SCALER = 1
	TYPE_VEC    = 2
	TYPE_MATRIX = 4
	TYPE_N      = 8
)
View Source
const DegToRad = 0.017453292519943295769236907684886127134428718885417
View Source
const RadToDeg = 57.2957795131

Variables

View Source
var (
	UnitX = Vec{1, 0, 0}
	UnitY = Vec{0, 1, 0}
	UnitZ = Vec{0, 0, 1}
)
View Source
var RealEpsilon float64

RealEpsilon gives an upper bound on the relative error due to rounding in floating point arithmetic.

Functions

func Assign

func Assign(lhs, rhs *Array)

func Clamp

func Clamp(value, min, max float64) float64

func Map

func Map(in, in_min, in_max, out_min, out_max float64) float64

func Max

func Max(base float64, compare float64) float64

func Min

func Min(base float64, compare float64) float64

Types

type Array

type Array struct {
	Data   []float64
	Length int
	// contains filtered or unexported fields
}

func Arrange

func Arrange(start, stop, step float64) *Array

func Copy

func Copy(arr *Array) *Array

func Dot

func Dot(x, y *Array) *Array

func Empty

func Empty() *Array

func Full

func Full(fill_value float64, dims ...int) *Array

func HStack

func HStack(a, b *Array) *Array

func Identity

func Identity(dims ...int) *Array

func NewNdArray

func NewNdArray(values []float64, rcd ...int) *Array

func NewRowVector

func NewRowVector(values []float64, length int) *Array

func Ones

func Ones(dims ...int) *Array

func Random

func Random(dims ...int) *Array

func Scalar

func Scalar(value float64) *Array

func VDot

func VDot(this, by *Array) *Array

func VStack

func VStack(a, b *Array) *Array

func VectorN

func VectorN(values ...float64) *Array

func Zeros

func Zeros(dims ...int) *Array

func ZerosLike

func ZerosLike(arr *Array) *Array

func (*Array) Abs

func (this *Array) Abs() float64

func (Array) Activate

func (this Array) Activate(fn func(x float64) float64) *Array

Like ForEach but creates and returns a copy

func (*Array) Add

func (this *Array) Add(by *Array) *Array

func (*Array) ArgMax

func (this *Array) ArgMax(axis ...int) int

func (*Array) AsScalar

func (this *Array) AsScalar() float64

func (Array) At

func (this Array) At(r, c int) float64

func (*Array) Column

func (this *Array) Column(j int) []float64

func (*Array) Cross

func (this *Array) Cross(by *Array) *Array

func (*Array) DataCopy

func (this *Array) DataCopy() []float64

---------------------------------------------------------------

func (*Array) Det

func (this *Array) Det() float64

func (*Array) Diagonal

func (this *Array) Diagonal() *Array

func (Array) Dim

func (this Array) Dim(index int) int

func (Array) Dims

func (this Array) Dims() (rows, columns int)

func (*Array) Distance

func (this *Array) Distance() float64

func (*Array) Equal

func (this *Array) Equal(with *Array) bool

func (*Array) EqualDims

func (this *Array) EqualDims(with *Array) bool

func (*Array) Eye

func (this *Array) Eye() *Array

func (*Array) Flatten

func (this *Array) Flatten(order byte) *Array

func (*Array) ForEach

func (this *Array) ForEach(fn func(x float64) float64) *Array

Apply a function over each element of the ndarray

func (*Array) Inverse

func (this *Array) Inverse() *Array

func (Array) IsMatrix

func (this Array) IsMatrix() bool

func (Array) IsScalar

func (this Array) IsScalar() bool

func (Array) IsVec

func (this Array) IsVec() bool

func (*Array) Mult

func (this *Array) Mult(by *Array) *Array

func (*Array) Normalize

func (this *Array) Normalize() *Array

func (*Array) PointwiseMult

func (this *Array) PointwiseMult(by *Array) *Array

func (*Array) Row

func (this *Array) Row(i int) []float64

func (*Array) Scale

func (this *Array) Scale(k float64) *Array

func (*Array) Set

func (this *Array) Set(r, c int, value float64)

func (Array) String

func (this Array) String() string

func (*Array) Sub

func (this *Array) Sub(by *Array) *Array

func (*Array) Sum

func (this *Array) Sum() float64

func (*Array) T

func (this *Array) T() *Array

Transpose

func (*Array) Trace

func (this *Array) Trace() float64

func (Array) Type

func (this Array) Type() int

type Shape

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

func NewShape

func NewShape(dims ...int) *Shape

func (Shape) Columns

func (s Shape) Columns() int

func (Shape) Depth

func (s Shape) Depth() int

func (Shape) Dim

func (s Shape) Dim(index int) int

func (Shape) Dims

func (s Shape) Dims() []int

func (*Shape) Resize

func (s *Shape) Resize(dims ...int)

func (Shape) Rows

func (s Shape) Rows() int

type Vec

type Vec [3]float64

Vec is a 3 dimensional num

func RandomInCircle

func RandomInCircle(max float64) *Vec

func V

func V(x, y, z float64) *Vec

func V2

func V2(x, y float64) *Vec

func X

func X() *Vec

func Y

func Y() *Vec

func Z

func Z() *Vec

func ZV

func ZV() *Vec

func (*Vec) Add

func (v *Vec) Add(b *Vec) *Vec

func (*Vec) AddScaledVector

func (v *Vec) AddScaledVector(b *Vec, t float64) *Vec

func (*Vec) Clear

func (v *Vec) Clear() *Vec

func (*Vec) Clone

func (v *Vec) Clone() *Vec

func (*Vec) Copy

func (v *Vec) Copy(b *Vec)

func (*Vec) Distance

func (v *Vec) Distance(b *Vec) float64

func (*Vec) Dot

func (v *Vec) Dot(b *Vec) float64

func (*Vec) Equals

func (v *Vec) Equals(b *Vec) bool

func (*Vec) IntersectsCircle

func (v *Vec) IntersectsCircle() bool

func (*Vec) IntersectsCylinder

func (v *Vec) IntersectsCylinder() bool

func (*Vec) IntersectsSphere

func (d *Vec) IntersectsSphere(p0, p1 *Vec, r float64) float64

func (*Vec) IntersectsSquare

func (v *Vec) IntersectsSquare() bool

func (*Vec) Inverse

func (v *Vec) Inverse() *Vec

func (*Vec) Length

func (v *Vec) Length() float64

func (*Vec) Mult

func (v *Vec) Mult(b *Vec) *Vec

func (*Vec) NdArray

func (v *Vec) NdArray() *Array

func (*Vec) NewAdd

func (v *Vec) NewAdd(b *Vec) *Vec

func (*Vec) NewAddSub

func (v *Vec) NewAddSub(b *Vec) *Vec

func (*Vec) NewCross

func (v *Vec) NewCross(b *Vec) *Vec

NewCross aka VectorProduct "%"

func (*Vec) NewInverse

func (v *Vec) NewInverse() *Vec

func (*Vec) NewMult

func (v *Vec) NewMult(b *Vec) *Vec

func (*Vec) NewScale

func (v *Vec) NewScale(t float64) *Vec

func (*Vec) NewSub

func (v *Vec) NewSub(b *Vec) *Vec

func (*Vec) NewVectorProduct

func (v *Vec) NewVectorProduct(b *Vec) *Vec

NewVectorProduct aka cross product

func (*Vec) Normalize

func (v *Vec) Normalize() *Vec

func (*Vec) RotateAround

func (v *Vec) RotateAround(origin *Vec, rads float64) *Vec

func (*Vec) ScalarProduct

func (v *Vec) ScalarProduct(b *Vec) float64

ScalarProduct calculates and returns the scalar product of this num with the given num.

func (*Vec) Scale

func (v *Vec) Scale(t float64) *Vec

func (*Vec) Set

func (v *Vec) Set(x, y, z float64)

func (*Vec) SquareLength

func (v *Vec) SquareLength() float64

func (*Vec) String

func (v *Vec) String() string

String return a string representation of a num with 5 decimals per axis

func (*Vec) Sub

func (v *Vec) Sub(b *Vec) *Vec

func (*Vec) ToPixelVec

func (v *Vec) ToPixelVec() pixel.Vec

func (*Vec) X

func (v *Vec) X() float64

func (*Vec) Y

func (v *Vec) Y() float64

func (*Vec) Z

func (v *Vec) Z() float64

Jump to

Keyboard shortcuts

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