SigmaEpsilon.Math - A Python Library for Applied Mathematics in Natural Sciences#

Version: 2.3.0

Useful links: Installation | Getting Started | Issue Tracker | Source Repository

The sigmaepsilon.math library is the mathematical department of the SigmaEpsilon project, a collection of Python libraries for computational mechanics and other disciplines. The library includes tools that emerged during work on other parts of the SigmaEpsilon ecosystem, but are general enough to be used in other projects.

Implementations are fast as they rely on the vector math capabilities of NumPy, while other computationally sensitive calculations are JIT-compiled using Numba. Here and there we also use NetworkX, SciPy, SymPy and scikit-learn.

Highlights#

  • Linear Algebra

    • A ReferenceFrame class for all kinds of frames, and dedicated RectangularFrame and CartesianFrame classes as special cases, all NumPy compliant.

    • NumPy compliant classes like Tensor and Vector to handle various kinds of tensorial quantities efficiently with a built-in mechanism that guarantees to maintain the property of objectivity.

    • A JaggedArray and a Numba-jittable csr_matrix to handle sparse data.

  • Optimization

    • Classes to define and solve linear and nonlinear optimization problems.

  • Appriximation

    • Several methods and classes to approximate functions and data, including a MLSApproximator for multilinear regression using the moving least squares method.

  • Graph Theory

    • Algorithms to calculate rooted level structures and pseudo peripheral nodes of a graph, and a Graph class that extends networkx.Graph.

Contents#

Getting Started

The getting started guide is your entry point. It helps you to set up a development environment and make the first steps with the library.

User Guide

The user guide provides a detailed walkthrough of the library, touching the key features with useful background information and explanation.

API Reference

The reference guide contains a detailed description of the functions, modules, and objects included in the library. It describes how the methods work and which parameters can be used. It assumes that you have an understanding of the key concepts.

Contributor’s Guide

Want to add to the codebase? The contributing guidelines will guide you through the process of improving the library.

Indices and tables#