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#
-
A
ReferenceFrameclass for all kinds of frames, and dedicatedRectangularFrameandCartesianFrameclasses as special cases, all NumPy compliant.NumPy compliant classes like
TensorandVectorto handle various kinds of tensorial quantities efficiently with a built-in mechanism that guarantees to maintain the property of objectivity.A
JaggedArrayand a Numba-jittablecsr_matrixto handle sparse data.
-
Classes to define and solve linear and nonlinear optimization problems.
A
LinearProgrammingProblemclass to define and solve continuous, integer or mixed-integer linear optimization problems.A
BinaryGeneticAlgorithmclass to tackle more complicated optimization problems.
-
Several methods and classes to approximate functions and data, including a
MLSApproximatorfor multilinear regression using the moving least squares method.
-
Algorithms to calculate rooted level structures and pseudo peripheral nodes of a graph, and a
Graphclass that extendsnetworkx.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.