Code Monkey home page Code Monkey logo

linearalgebra's Introduction

alt text

LinearAlgebra

Library that provides implementations or wrappers for linear algebra operations in C#.

Build Status Quality Gate Status License

Features

  • Basic matrix and vector operations: What you would expect from a BLAS library.

    • Vector-vector operations: Addition, subtraction, linear combinations, scaling, dot (inner) product
    • Matrix-vector operations: matrix-vector multiplication, back and forward substitution
    • Matrix-matrix operations: Addition, subtraction, linear combinations, scaling, matrix-matrix multiplication
  • Sparse matrix and vector formats: Sparse formats avoid storing and processing zero entries, which reduces memory consumption and computational time.

    • Compressed Sparse Rows, Compressed Sparse Columns: Optimal for matrix-vector and matrix-matrix multiplications
    • Dictionary Of Keys: Optimal for creating a sparse matrix and then copying it to another format.
    • Skyline: Optimal for Cholesky/LDL factorization
  • Direct linear system solvers: Solving linear systems using factorization.

    • LU factorization with pivoting for general matrices
    • Cholesky/LDL factorization for symmetric positive definite matrices
    • Reordering algorithms to reduce the fill-in of the factorization process, thereby reducing memory consumption and computational time
  • Iterative linear system solvers: Solving large sparse linear systems using algorithms based on matrix-vector multiplication and vector-vector operations.

    • Generalized Minimum Residual method for general matrices
    • Minimum Residual method for symmetric matrices
    • Conjugate Gradient method for symmetric positive definite matrices
    • General purpose preconditioners
  • Least squares problems: Solving least squares and minimum norm problems

    • QR and LQ factorizations of rectangular matrices
    • Only for dense matrices at the moment
  • Matrix and vector I/O: Reading matrices and vectors from or writing them to files

    • File formats for dense or sparse matrices
    • Compatible with matrix market file formats
    • Compatible with matlab file formats
  • Optimized native libraries: Assigning operations to high performance linear algebra libraries

    • Intel Math Kernel Library. Mainly for dense linear algebra operations.
    • SuiteSparse. For sparse direct solvers.
    • Only for win64 operating systems at the moment.
    • These are optional. If the user does not want to install these libraries or does not use a win64 OS, there are is an alternative, less efficient C# implementation of each feature.

Installation instructions

You can choose either to clone the solution or downloads it as a zip file.

Clone solution

  1. Under the repository name, click Clone or Download option.

alt text

  1. In the popup appearing choose the Use HTTPS option.

alt text

  1. Use the alt text to copy the link provided.

  2. Open Visual Studio. In Team Explorer window appearing in your screen under Local Git Repositories click the Clone option. If Team Explorer window is not visible you can enable in View -> Team Explorer

alt text

  1. In the text box appearing paste the link.

alt text

  1. Click clone and Visual Studio will automatically download and import MGroup.LinearAlgebra

Download as ZIP

  1. Under the repository name, click Clone or Download option

alt text

  1. Click Download ZIP option. MGroup.LinearAlgebra will be downloaded as a ZIP file.

  2. Extract the ZIP file to the folder of choice.

  3. Double click on MGroup.LinearAlgebra.sln file to open the code with Visual Studio

Reference manual

For more information on the code functionality please refer to the reference manual that presents an in depth documentation: https://github.com/mgroupntua/LinearAlgebra/wiki

linearalgebra's People

Contributors

serafeimbakalakos avatar dimtsap avatar goatofrafin avatar theochristo avatar

Watchers

James Cloos avatar

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.