Git Product home page Git Product logo

elixir-matrix-operation's Introduction

MatrixOperation

matrix_operation_logo

*MatrixOperation* is a linear algebra library in Elixir language. For example, this library can be used to solve eigenvalue equations and singular value decompositions. There are several other functions that can be used to solve some of these problems. You can refer to the online documentation at https://hexdocs.pm/matrix_operation/MatrixOperation.html#content and mathematical description at 'docs/latex_out/numerical_formula.pdf' in this package. Moreover, several patterns of functions are implemented as algorithms for solving each problem. The functions are methods that QR decomposition techniques to solve eigenvalue equations of arbitrary dimensions, or algebraic techniques that are limited in the number of dimensions but provide exact solutions. There is also function of the Jacobi method, which is a method for solving eigenvalue equations of real symmetric matrices.

Notice

A matrix of any dimension can be created.

iex> MatrixOperation.even_matrix(1, {3, 2})
[[1, 1], [1, 1], [1, 1]]

The first argument is the number of row number, the second argument is the number of column number and the third argument is value of the elements.
Matrix indices of a row and column is an integer starting from 1 (not from 0).
For example,

iex> rand_matrix = MatrixOperation.random_matrix(0, 5, {2, 3}, "real")
[[1.1578724, 2.23742, 1.4504169], [1.2531625, 4.4657427, 1.4510925]]

iex> MatrixOperation.get_one_element(rand_matrix, {1, 2})
2.23742

Installation

You can install this package by adding this code to dependencies in your mix.exs file:

def deps do
  [
    {:matrix_operation, "~> 0.5.0"}
  ]
end

elixir-matrix-operation's People

Contributors

kenken-neko avatar zacky1972 avatar

Stargazers

Niranjan Anandkumar avatar dima avatar Jason Goldberger avatar Kenji Rikitake avatar takasehideki avatar mocamocaland avatar Yoshihiro Ueno avatar Sam Gaw avatar Yuki Okushi avatar

Watchers

 avatar

elixir-matrix-operation's Issues

Eigenvalues of complex numbers are not supported

The function eigen should be fixed since eigenvalues of complex numbers are not supported.
The function svd for real symmetric matrices does not need to be fixed since the eigenvalues are guaranteed to be real.

NX supports ?

Hello.

Do you think to support in the future NX for matrix ops through tensors. It may helps to increase performance overall by reducing the immutable reductions to perform.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.