Skip to main content

SciMatic

A Python library for mathematics, statistics, science, and scientific computing.

SciMatic is a lightweight, student-friendly Python library designed to make mathematical and scientific calculations easier to perform programmatically.

«From basic mathematics to advanced scientific concepts — all in Python.»


Features

SciMatic is built around modular mathematical tools.

Mathematics

  • Quadratic equations
  • Quadratic inequalities
  • Factorials
  • Mathematical operators
  • PEMDAS/BODMAS expression evaluation
  • Custom mathematical functions

Statistics

  • Median
  • Quartiles
  • Deciles
  • Percentiles
  • Interpolation

Trigonometry

  • Law of Sines
  • Law of Cosines
  • Trigonometric calculations
  • Triangle-related mathematics

Parser

SciMatic includes a general-purpose parser for processing mathematical expressions and tokens.

The parser can split input into:

  • Characters
  • Words
  • Tokens

It can also convert recognized tokens into numerical values such as integers and floats.

Scientific Computing

SciMatic is designed to eventually expand beyond pure mathematics into scientific computing, including modules for:

  • Physics
  • Thermodynamics
  • Calculus
  • Engineering mathematics
  • Advanced scientific calculations

Installation

Install SciMatic using pip:

pip install scimatic

Then import it in Python:

import scimatic

Quick Start

Basic calculations

import scimatic

print(scimatic.factorial(5))

Output:

120

Expression Parsing

SciMatic can be used to process mathematical expressions while respecting operator precedence.

For example:

equation = '2 + 3 * 4'

SciMatic evaluates multiplication before addition:

2 + (3 * 4)

Result:

14

SciMatic's expression system supports operators such as:

+
-
*
/
//
%
**

and parentheses.


Quadratics

SciMatic provides tools for solving quadratic equations.

For an equation such as:

x² + 5x + 6 = 0

SciMatic can determine its roots:

x = -2
x = -3

The quadratic module is designed to provide a convenient programmatic interface for algebraic calculations.


Statistics

SciMatic provides common statistical operations.

Example:

data = [10, 20, 20, 30, 40]

You can calculate values such as:

Mean
Median
Mode
Quartiles
Percentiles

SciMatic also supports interpolation-based statistical calculations.


Modular Architecture

SciMatic is designed as a modular library.

A simplified structure looks like:

SciMatic/
│
├── general.py
├── error.py
├── quadratics.py
├── statistics.py
├── trigonometry.py
│
└── scientific/
    ├── physics.py
    └── rocket_science.py(my proposed idea)

This allows different areas of mathematics and science to remain separated while still being part of the same library.


£ Error Handling

SciMatic provides specialized exceptions for mathematical errors.

Examples include:

DataError
NegativeDiscriminantError
VariableError

These errors are intended to make invalid mathematical input easier to identify and handle.


Philosophy

SciMatic is designed around three principles:

Simple

Mathematical operations should be easy to understand and use.

Modular

Different mathematical disciplines should be separated into dedicated modules.

Extensible

SciMatic should be able to grow from a mathematics library into a broader scientific-computing ecosystem.


Development

SciMatic is currently under active development.

The project is intended to expand into areas such as:

  • Advanced calculus
  • Thermodynamics
  • Physics
  • Scientific simulations
  • More advanced statistics
  • Probability
  • Engineering mathematics
  • Scientific computing

Roadmap

Mathematics

  • Basic mathematical utilities
  • Expression parser
  • Operator handling
  • Quadratic calculations
  • Statistical utilities
  • Trigonometric utilities
  • More advanced calculus
  • More advanced algebra

Statistics

  • Mean
  • Median
  • Mode
  • Quartiles
  • Percentiles
  • Interpolation
  • Advanced statistical analysis

Science

  • Physics module
  • Thermodynamics
  • Scientific constants
  • Engineering calculations
  • Advanced scientific simulations

Computer Engineering

  • Logic Gates
  • Binary translation
  • 7-display

Future

  • Improved documentation
  • More comprehensive testing
  • Performance optimization
  • Expanded API
  • Educational examples
  • Possible integration of a ans history system with sqlite3

Contributing

Contributions, suggestions, and bug reports are welcome.

If you find a bug or have an idea for SciMatic, feel free to open an issue or submit a pull request.

When contributing, please try to keep new functionality modular and well documented.


License

SciMatic is distributed under its project license.

See the "LICENSE" file for the full license terms.


Author

SciMatic is an independently developed Python project focused on making mathematics and scientific computing accessible through code.


Support the Project

If you find SciMatic useful, consider giving the project a ⭐ on GitHub.

Every improvement, experiment, and contribution helps SciMatic grow.

SciMatic — Mathematics, engineered for Python.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scimatic-1.2.3.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scimatic-1.2.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file scimatic-1.2.3.tar.gz.

File metadata

  • Download URL: scimatic-1.2.3.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scimatic-1.2.3.tar.gz
Algorithm Hash digest
SHA256 db3d2642b48d02f509f42b70e3826c73e7bf206f8b9620aea67246b886e7d61b
MD5 c7e61bc1b317e067010f7fa1d255c33a
BLAKE2b-256 e1e253c2a4d0e86ee67a109dc7c02cb47ab38f0e64b4a53e7817caac7ea46527

See more details on using hashes here.

Provenance

The following attestation bundles were made for scimatic-1.2.3.tar.gz:

Publisher: python-publish.yml on bingchiliingsacker-dot/SciMatic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scimatic-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: scimatic-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for scimatic-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c836f93d0d55f0cfafaf0a7acda04961da6bb0fcd8c73aaefebd87ad8933c27f
MD5 5bf23f083d628406ad2750471302e9a0
BLAKE2b-256 da3a84dad4f900de9abd55e59dbc2eb917da0cbd60582ec6f87e8fb9ace5a04e

See more details on using hashes here.

Provenance

The following attestation bundles were made for scimatic-1.2.3-py3-none-any.whl:

Publisher: python-publish.yml on bingchiliingsacker-dot/SciMatic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.31.2

2 files

1.31.1

2 files

1.3.6

1 file

1.3.4

1 file

1.3.3

1 file

1.3.2

1 file

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

This release

1.2.3 This release

2 files

1.2.1

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page