Skip to content

Hasnep/roc-linear-algebra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roc Linear Algebra

Linear algebra library for small vectors and matrices in Roc.

Example

Import a matrix and vector type.

import linalg.Matrix4x4
import linalg.Vector4

Vectors are just tuples.

vecA = (1, 2, 3, 4)
Stdout.line! "Vector a is $(Vector4.display vecA)."
vecB = (5, 6, 7, 8)
Stdout.line! "Vector b is $(Vector4.display vecB)."
Vector a is [1, 2, 3, 4].
Vector b is [5, 6, 7, 8].

Vectors have various vector-y functions that work how you'd expect.

vecC = Vector4.add vecA vecB
Stdout.line! "The sum of a and b is $(Vector4.display vecC)."
aDotB = Vector4.dot vecA vecB
Stdout.line! "The dot product of a and b is $(Num.toStr aDotB)."
The sum of a and b is [6, 8, 10, 12].
The dot product of a and b is 70.

Matrices are opaque types.

mat = Matrix4x4.fromDiagonal vecC

Matrices also have matrix-y functions.

det = Matrix4x4.determinant mat
Stdout.line! "The determinant of the matrix is $(Num.toStr det)."
The determinant of the matrix is 5760.

About

🔢 Linear algebra library for small vectors and matrices in Roc

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published