Math Library

A mathematical library for scientific computing in Java, with a focus on Linear Algebra and Abstract Algebra. Comprehensive support for numerical algorithms over abstract algebraic sturctues (Groups, Rings, Fields).

Java, JUnit
View on GitHub >

Overview

This a Java library built from scratch that was aimed at higher-level mathetmatics. I wanted to combine practical numerical routines with algebraic structure, so the same linear algebra tools can work over different number systems (and even user-defined types) when they satisfy the right algebraic properties.

When I built this library, I was trying to optimize for a few things:

It supported many facets of linear algebra, centered around generic vectors and matrices that generalize the idea of working over ( \mathbb{F}^n ) (a vector space over a field).

Vectors

Matrices

There are some general implemented methods such as:

Mnay other features were planned, such as determinants/inverses, condition numbers, eigen-stuff, decompositions like QR/SVD, etc.

The abstract algebra foundations in the library included abstractions for:

It also includes predefined fields:

I also initally wanted to support multivariable calculus, differential equations, and linear, programming/optimization but didn’t end up getting to it.