Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mathpad

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mathpad

Simplified interface to Sympy for solving physics, engineering and maths problems

  • 2.1.0
  • PyPI
  • Socket score

Maintainers
1

mathpad

mathpad is a robust Computer Algebra System (CAS) library built on top of SymPy, providing a simple and intuitive way to solve engineering, science, and math problems using Python.

Quickstart

  1. Install using package manager of choice. For example, pip:
pip install mathpad
  1. Import and use the library in python:
Code Display
from mathpad import *

v = 5 * m / s

mph = "mph" * miles / hour
eqn = mph == v.eval()

Alt text

Documentation

Currently the only in-depth documentation is Walkthrough.ipynb. You can access it on the JupyterLite Sandbox Site here.

Showcase

FeatureExample Display
Units
m

m / s ** 2

feet.in_units(cm)

(V * A).in_units(watt)

Alt text

Values
v = 2.5 * m / s

c = m(5)

Alt text

Symbols
t = "t" * seconds

y = "\\hat{y}_1" * volts

Alt text

Symbolic Functions
a = "a(t)" * m / s ** 2

Alt text

Equations
eqn = (v == a * t)

Alt text

Solving
sln, = solve([eqn], solve_for=[a])

sln[a]

Alt text

Algebra

simplify(e ** (1j * pi))

expand((t + 1)(t + 2))

factor(t**2 + 3 * t * s + 2)

subs((t + 1)(t + 2), { t: 5 })

Alt text

Calculus
diff(a, wrt=t, order=1)


integral(a, wrt=t, between=(0, 10))

Alt text

Vectors
O = R3("O") # 3D frame of reference
v1 = O[1, 2, 3]


x, y, z = ("x", "y", "z") * m
v2 = O[x, y, z]



v3 = "v_3" @ O



v2.cross(v3)

Alt text

Matrices
O2 = R2("O2")
A = Mat[O, O2](
    [1, 2],
    [3, 4],
    [5, 6]
)


v2_wrt_O2 = v2 @ A


B = Mat[O2, O]("B")


I = Mat[O2, O2].I

Alt text

Numpy Compatibility
y = sin(t)
y_fn = as_numpy_func(y)

y_fn({ t: [1, 2, 3] })

import numpy as np
y_fn({
  t: np.arange(
    start=0, stop=2 * np.pi, step=np.pi / 12
  )
})

array([0.84147098, 0.90929743, 0.14112001])


array([0. , 0.25881905, 0.5 , 0.70710678, 0.8660254 , 0.96592583, 1. , 0.96592583, 0.8660254 , 0.70710678, 0.5 , 0.25881905])

Code Generation

generate_c_code(theta, [t])

Credits

This package was created with Cookiecutter and the browniebroke/cookiecutter-pypackage project template.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc