Skip to content

lcicala/LinearAlgebra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinearAlgebra

A linear algebra library for C#

The goal of this library is to provide a simple to use implementation of matrices and vectors to perform mathematical operation with C#

// Simple matrix initialization Matrix m1 = new Matrix(3,3); Matrix m2 = new Matrix(3,3); // Then you can operate with the following operations var product = m1 * m2; var sum = m1 + m2; var inverse = !m1; // You can retreive single colums and rows by using ranges in the indexer Vector row1 = m1[1, ..]; Vector column2 = m1[.., 2];

The library presents also built-in Gauss-Jordan reduction to solve linear systems

// Example of computing the inverse using the Gauss method Matrix m = new Matrix(3,6); m[0, 0..3] = new Vector(1, 2, 3); m[1, 0..3] = new Vector(2, 2, 3); m[2, 0..3] = new Vector(3, 3, 3); m[.., 3..] = Matrix.Identity(3); var reduction = Matrix.Gauss(m); var inverse = reduction[.., 3..];

These are some methods implemented in the Matrix class

Matrix m = new Matrix(5, 5); m.Determinant(); m.Inverse(); m.Rank(); m.Transpose();

You can also enumerate the rows and the elements by IEnumerable interface

Matrix m = new Matrix(5, 5); foreach(var row in m) { foreach(var element in row) { ... } }

The library is in its early stages, there are many improvements both in terms of efficiency and functionality that can be made.

About

A linear algebra library for C#

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages