Git Product home page Git Product logo

math_library's Introduction

Math_Library

A Java Library for Higher-Level Mathematics from Scratch - Includes Linear Algebra, Multivariable Calculus, etc.

This Library is designed to be a comprehenseive mathematical library for Java, designed for scientific computing and other mathematically-derived projects. Built with flexibility in mind, modules are easy to use and are able to perform computations over abstract algebraic sturctues (Groups, Rings, Fields).

This project combines advanced numerical algorithms with abstract algebra concepts to solve a wide range of mathematical problems. With a focus on readability and modularity, my code allows users to easily incorporate their own data and algorithms.

Installation

OS X & Linux:

TODO

Windows:

TODO

Usage example

An example of how the LinAlg class can be used to support different matrices and types.

Screen Shot 2023-03-26 at 3 59 29 PM

Current Scope

  • Linear Algebra
    • Vectors
      • Generalizes notion of F^n to create Vectors of any type: (E.g. Vector<Real>, Vector<Complex>, Vector<Duck> ...)
      • Allows creation of your own abstract vectors by extending Vec<T, S> that can form some vector space V
        • T is the type of the element in the Vector [Must be part of a field]
        • S is the type of the scalar associated with its Vector Space [Must be part of a field]
      • Operations (add, subtract, inner products, etc)
    • Matrices
      • Generalizes Matrices whose rows/columns are vectors of F^n: (E.g. Matrix<Real>, Matrix<Complex>, Matrix<Duck> ...)
      • Allows creation of your own abstract matricies by extending Matx<T, S>
        • T is the type of the element in the Matrix [Must be part of a field]
        • S is the type of the scalar associated with its Space [Must be part of a field]
      • Operations (add, subtract, matrix multiplication, interchange cols/rols, etc)
      • Can be instantiated with either a row representation or column representation of vectors
    • Methods
      • Utility Methods (identity(n), zeros(n, m), diagonal(n, element), transpose(matrix)
      • General
        • Row reduction, Gaussian Elimination, Gauss Jordan, LU Solve
        • Determinant, Inverses (TBD)
        • Condition Numbers (TBD)
        • Space (TBD)
          • Column Space, Null Space, Span, Linear Independence
          • Change of Basis
        • Eigenstuff (TBD)
          • Eigenvalues, Eigenvectors, Diagonalization
        • Orthonormality (TBD)
          • Projections, Gram-Schmidt, Least Squares
          • Norm
      • Factorizations and Decompositions (TBD)
        • LU, RQ, QR, QZ factorizations
        • SVD
        • Schur, Polar, Cholesky, Jordan decompositions
      • Algorithms
        • Cramer's Rule
        • PCA
        • Many more TBD
  • Abstract Algebra
    • Set
    • Additive and Multiplicative Group
    • Ring
    • Field
      • Pre-defined fields include Real, Complex, and Integers Modulo p
  • Multivar
    • TBD
  • Differential Equations
    • TBD
  • Linear Programming and Optimization
    • TBD

Release History

Nothing so Far

Liscence

TBD

math_library's People

Contributors

yashck avatar

Watchers

 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.