ojAlgo is a pure Java numerical computing library providing high-performance linear algebra (dense and sparse matrices, decompositions like LU, QR, SVD, Cholesky, eigenvalue), optimization (linear programming via simplex, convex QP via active-set/ADMM, integer programming with branch-and-cut), neural networks, statistical distributions, random processes, time series analysis, clustering, financial portfolio models, and special functions. It has zero external dependencies and is modularized via JPMS. The architecture is a classic library: users create matrix objects or optimization models, invoke solvers or decompositions, and retrieve results. Key entry points include `MatrixStore`, `ExpressionsBasedModel`, `ArtificialNeuralNetwork`, and various decomposition factories. The codebase is well-tested with extensive unit and regression tests, and demonstrates strong engineering practices such as interface-driven design, factory patterns, and careful numerical stability. While primarily a software library, it also contains data analysis and research-oriented components (clustering, financial series, random processes), making it a hybrid but dominantly an application library.
igraph is a high-performance C library for complex network analysis and graph theory. It provides a comprehensive suite of graph algorithms including centrality measures (PageRank, betweenness, eigenvector), community detection (Leiden, Infomap, label propagation, walktrap), isomorphism (VF2, BLISS), shortest paths, flows, cliques, motifs, graph layout (Fruchterman-Reingold, Kamada-Kawai, DRL, Sugiyama), and random graph generation (Erdos-Renyi, Barabasi-Albert, stochastic block models). The library is designed for efficiency and portability, with a stable C API that serves as the backend for higher-level interfaces in R (igraph), Python (python-igraph), and Mathematica (IGraphM). The architecture is a monolithic C library with optional C++ components for performance-critical algorithms (e.g., PRPACK for PageRank, DRL layout, BLISS isomorphism). It includes a rich set of internal data structures (vectors, matrices, sparse matrices, heaps, tries, prefix sum trees) and a robust error handling framework using IGRAPH_CHECK and IGRAPH_FINALLY macros. The library supports multiple graph file formats (GML, GraphML, Pajek, LGL, NCOL, DL, DIMACS) and provides attribute handling for vertex/edge metadata. Key strengths include extensive testing (unit tests, regression tests, benchmarks, fuzzing via OSS-Fuzz), reproducible random number generation (PCG, MT19937), and a well-documented API with semantic versioning. The codebase is actively maintained with frequent releases and a clear deprecation policy. While primarily a C library, it integrates external solvers (ARPACK, LAPACK, GLPK) and bundled vendor code (cliquer, bliss, plfit) for specialized algorithms.
AbstractAlgebra.jl is a pure Julia library providing generic abstract algebra structures and algorithms. It serves as the foundational computational algebra layer for the Oscar/Nemocas ecosystem, used by downstream packages Nemo.jl, Hecke.jl, and Singular.jl. The library implements a comprehensive type hierarchy for rings, fields, modules, matrices, polynomials (univariate, multivariate, Laurent, Puiseux, power series), and groups, along with generic algorithms for arithmetic, GCD, factorization, linear algebra (LU, HNF, SNF, Popov forms), Gröbner bases, and more. It is designed for extensibility: any ring implementing the fundamental interface (parent, elem_type, zero, one, +, *, etc.) can use the generic implementations. The codebase is well-tested with conformance tests that verify algebraic axioms for each type, and includes sophisticated infrastructure for attribute caching, map caching, pretty printing, and random element generation. While primarily a library for symbolic computation and research mathematics, it is not a data science or ETL tool.
CppNumericalSolvers is a header-only C++17 library for numerical optimization that provides a suite of modern solvers for both unconstrained and constrained problems. The library features a sophisticated expression template system for building complex objective functions, implementations of popular algorithms like L-BFGS, BFGS, and Newton's method, and advanced constrained optimization via the Augmented Lagrangian method. It uses Eigen3 as its sole dependency for linear algebra operations and is designed for easy integration into other projects. The architecture is modular with separate components for function interfaces, solvers, line searches, and utilities, all leveraging C++ templates for flexibility and performance.
ExprTk is a header-only C++ library for runtime mathematical expression parsing and evaluation. It provides a complete system for defining mathematical expressions as strings, compiling them into an internal AST representation, and evaluating them with variable values. The library supports scalar, vector, and string types, arithmetic operations, trigonometric functions, logarithms, control structures (if, for, while, switch), user-defined functions, and assignment operations within expressions. It employs sophisticated parsing techniques including constant folding, strength reduction optimizations, and runtime safety checks for vector bounds and loop execution time. The architecture consists of three main components: symbol table (for variables/constants/functions), expression (holding the parsed AST), and parser (compiling expression strings).
This repository contains the complete LaTeX source for 'An Infinitely Large Napkin', a comprehensive advanced mathematics textbook by Evan Chen. The project is primarily a document production pipeline: the core content is a collection of modular .tex files organized by topic (algebra, topology, analysis, etc.), with extensive cross-references, custom macros, and Asymptote figures. However, the repository also exhibits strong software engineering practices: it includes a Nix flake for reproducible builds, GitHub Actions CI/CD workflows that compile the PDF and deploy to GitHub Pages, pre-commit hooks for code quality, and helper scripts (export-flowchart.sh, print-toc.py) for generating dependency graphs and split PDFs. This hybrid nature makes it both a textbook source and a well-automated document production application.
GAP (Groups, Algorithms, Programming) is a computational discrete algebra system used extensively in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. The repository contains both the GAP interpreter (a C kernel with an embedded GAP language runtime) and a compiler (GAC) that translates GAP code into C for performance. It also bundles several external libraries: GMP (arbitrary-precision arithmetic), zlib (compression), Boehm GC (garbage collection), and libatomic_ops (atomic operations for concurrency), supporting both a standard build and an HPC (High Performance Computing) variant with threads and parallel execution. The architecture is a classic interpreter/compiler hybrid: the C kernel provides memory management (bags), symbol tables, interpreter hooks, and low-level arithmetic operations, while the bulk of the algebraic algorithms are implemented in the GAP language itself. Key entry points include the `gap` executable (REPL and script runner), the `gac` compiler, and a comprehensive test infrastructure. Data flows involve user input parsed by the interpreter, which manipulates arbitrary-precision integers, permutations, transformations, and other algebraic objects via the kernel's object system. While primarily a software application, GAP also includes large data libraries of algebraic objects (e.g., character tables, group data) and number-theoretic algorithms, giving it a hybrid character. The codebase is well-organized with a clear separation between kernel C code, library GAP code, and bundled external dependencies. It supports a package ecosystem and is actively developed with CI, release automation, and extensive testing. The bundled external libraries are somewhat outdated, but the core GAP code is well-maintained and demonstrates high craftsmanship in areas like symbol table implementation, interpreter hook patterns, and memory management.
PyEMD is a pure Python library for computing the Earth Mover's Distance (also known as Wasserstein distance) between histograms. As of version 2.0, it serves as a thin wrapper around the POT (Python Optimal Transport) library, providing three main functions: `emd()` for computing the EMD value, `emd_with_flow()` for getting both the EMD value and the flow matrix, and `emd_samples()` for computing EMD directly from sample arrays. The library implements optimizations from the original C++ implementation, including pre-flow cancellation of mass within same bins for zero-cost transport. It follows modern Python packaging practices with pyproject.toml, uses setuptools_scm for version management, and maintains comprehensive test coverage.
TheAlgorithms/JavaScript is an extensive open-source collection of over 700 algorithm and data structure implementations in JavaScript, designed for educational purposes. It covers a wide range of categories including sorting, searching, dynamic programming, graph algorithms, cryptography, math, string manipulation, and more. Each algorithm is implemented as a standalone module with corresponding tests, following ES module syntax. While primarily a learning resource, several components like caching classes (LRU, LFU), memoization utilities, and classic data structures (binary heap, AVL tree, Trie) demonstrate high-quality, reusable patterns. The repository employs CI/CD, linting, and automatic directory updates, ensuring code consistency. However, some modules exhibit minor issues such as DOM dependencies in Node context and duplicate implementations, reflecting the community-contributed nature of the project.
This repository is a self-paced learning roadmap for algorithmic trading, structured as a hierarchical collection of markdown files. It curates resources, certifications, and project ideas across artificial intelligence, computer science, mathematics, finance, cloud engineering, and software engineering. The repository is entirely documentation-driven; there are no executable applications, data pipelines, or machine learning models. Its primary value lies in its organized curriculum, reusable topic templates, and role-based learning paths (e.g., quant developer, algorithmic trader). While not a software project, it demonstrates high organizational craftsmanship through consistent documentation structure, templates, and CI/CD for link checking and diagram rendering.
This repository is a comprehensive educational resource for linear algebra and matrix computations, serving as the companion code for the book "Book 4: The Power of Matrices" from the "Iris Flower Book" series. It contains Jupyter notebooks and Streamlit apps that visualize core concepts from vectors and matrices to eigenvalue decomposition, SVD, and data projections. The code is pedagogical, using synthetic data and the Iris dataset to illustrate mathematical ideas through interactive plots and heatmaps. It is not a production application or data pipeline but a teaching tool. The repository is well-organized by chapter, though code is duplicated across notebooks rather than modularized, reflecting its educational nature.
Algebrite is a symbolic mathematics library (Computer Algebra System) written in TypeScript. It provides a comprehensive set of operations including symbolic differentiation, integration, polynomial factorization, root finding, matrix/tensor algebra, arbitrary-precision arithmetic, and expression simplification. Internally, it uses an S-expression representation (Cons cells) and a recursive-descent parser to convert string expressions into algebraic trees. The library exposes both a string-based `run()` API for evaluating expressions and direct method calls (e.g., `Algebrite.factor`). It was originally forked from EigenMath and retains some CoffeeScript legacy in test files and debug logging. The codebase is large and monolithic, with many modules tightly coupled through shared global state (the `defs` object). Despite this, the implementation is functional and covers a wide range of mathematical operations, making it suitable for embedding in interactive notebooks or computational tools.
This repository is primarily an extensive educational compendium covering mathematics, computer science, and artificial intelligence from first principles to state-of-the-art topics. It contains over 100 markdown files organized into 20 chapters, each with detailed explanations, diagrams, and interactive coding tasks (primarily in Python/JAX). The repo also includes auxiliary tooling: a MkDocs-based documentation site with MathJax and a Pyodide in-browser Python runner that includes a JAX compatibility shim, and a TypeScript MCP (Model Context Protocol) server that provides programmatic access to the compendium content for AI assistants. While the vast majority of the repository is educational content rather than runnable software, the MCP server and interactive runner are functional application components. The compendium is well-structured and current, but the code examples are pedagogical (simplified, not production-ready) and the JAX shim is a fragile polyfill. The project is not a data research pipeline—it contains no datasets, experiment logs, or trained models.
This repository is not a software application or data pipeline. It is an 'awesome list' (curated markdown file) that indexes YouTube channels and content creators using the Manim Python animation framework. The only functional content is the README.md, which lists creators with links to their channels and social media. The repository also includes basic Sphinx documentation configuration files for hosting on ReadTheDocs, but these are boilerplate and add no value. There is no executable code, no unit tests, no build scripts, and no reusable components. The repository's sole purpose is to serve as a community-maintained directory for Manim-related content, with contribution instructions for adding new entries. As a software artifact, it is essentially empty.
This repository is a curated list of tools for creating interactive mathematical explorables on the web. It does not contain any executable code or software architecture, but rather serves as a reference document listing various JavaScript libraries, frameworks, and platforms suitable for building interactive math applications. The repository consists solely of a README.md file describing the tools and a standard CC0 license. As such, it does not function as a software application in the traditional sense, but rather as a static resource for developers and educators seeking to explore available tools for interactive math visualization and education. While classified as an 'application' for the purpose of this analysis, it lacks any runnable code, architecture, or data flows, rendering it non-functional as a software system. Note: This repository is primarily a curated resource list and does not contain executable code, making it atypical for the 'application' classification. It serves as a reference rather than a runnable system.