Skip to main content

An object orientated math library

Project description

Cake

An object orientated math library, Built with power and simplicity!

Cake is an object orientated math library based off Sympy and aims to be simple and easy to use. Its main advantages are easy of use, chaining and provides shortcuts to lengthy methods.

License: MIT License (see the LICENSE file for details) covers all files in the cake repository unless stated otherwise.

Features

  • Generally is fast and provides simple solutions for complex problems
  • Simple to use and learn
  • Provides support for algebra and equation substitution

Installation

This library is currently in very early works! It does not have much to offer as of now, but we have a vision to make it full of features!

Stable

# Windows
pip install MathCake

# Linux/MacOS
pip3 install MathCake

Development

git clone https://github.com/Mecha-Karen/Cake
cd Cake
pip install .

Documentation

To compile the documentation, click me for more information

If you wish to view the live version, click me.

Quick Example

Quadratic Formula

Note: This is currently just a concept!
from cake import Expression

expr = Expression("-b (+|-) sqrt((b ** 2) - 4(a)(c))")
# Top layer of the formula

# (+|-) will return 2 solutions as stated in the documentation
# Its one of the many ways of implements plus or minus

expr.wrap_all("/", "2(a)")
# Puts the entire current formula into brackets and divides by 2a

print(expr.substitute(a=10, b=-20, c=5))

# Results: (1.70711, 0.292893)

Solving Simultaneous Equations

from cake import Expression
from cake.simultaneous import Circle

# Since `=` will raise a syntax error and will mess with the python syntax
# We settled on using the `==` operator
# What this is saying `Expression == something`, which returns an Eqaution instead of bool
# This is unpythonic but it still makes sense with what it does
# You should never do `if Expr == ...`. This will always be True
# Instead try `if (Expr == ...).solve(*args, **kwargs) == ...`

circle = Expression("x ** 2 + y ** 2") == 16
line = Expression("x + y") == 4

eq = Circle(circle, line)
eq.solve_by_sub()
# Result: ((4, 0), (0, 4))

Matrix Operations

from cake import Matrix
# We define the matrix structure using standard 2D array syntax
y = Matrix([10, 10, 10], [10, 10, 10])
x = Matrix([1, 2, 3], [4, 5, 6])

# As we have modified the addition method for the Matrix object
# we can simply add the two matrices together
print(x + y)
# Result = ([11, 12, 13], [14, 15, 16])

# The same logic applies to subtraction operations
print(y - x)
# Result = ([9, 8, 7], [6, 5, 4])

Links

Project details


Download files

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

Source Distribution

MathCake-0.0.1a3.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

MathCake-0.0.1a3-py3-none-any.whl (35.8 kB view details)

Uploaded Python 3

File details

Details for the file MathCake-0.0.1a3.tar.gz.

File metadata

  • Download URL: MathCake-0.0.1a3.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for MathCake-0.0.1a3.tar.gz
Algorithm Hash digest
SHA256 5ba46ee3a21333c03d482e4f81eb900dd07eb6d81aad64659b002b727756d22c
MD5 8a71100c5ce38d93d674c810e1c8375a
BLAKE2b-256 7ba6b146a230f434043c536e795eca9fe258184695b891cfafc3c48500af6d0f

See more details on using hashes here.

File details

Details for the file MathCake-0.0.1a3-py3-none-any.whl.

File metadata

  • Download URL: MathCake-0.0.1a3-py3-none-any.whl
  • Upload date:
  • Size: 35.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5

File hashes

Hashes for MathCake-0.0.1a3-py3-none-any.whl
Algorithm Hash digest
SHA256 1ba0636d7cf85f16f0bfb8ef7898647728fe2cb99835941c71bfba76e92aa060
MD5 28e6e505e36b6227f1cf137cf09fbb0f
BLAKE2b-256 a48540b1c97af4daf036da2d1c38e10e54f363de5196396994e1a9d21bfce0e9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page