Libraries of a mathematical nature with example executables.
Project description
PyPI grscheller.boring-math Project
Daddy's boring math library.
- Python package of modules of a mathematical nature
- Project name suggested by my then 13 year old daughter Mary
- See grscheller.boring-math project on PyPI
- See Detailed API documentation on gh-pages
- See Source code on GitHub
Here are the modules and executables which make up the PyPI grscheller.boring_math package.
Library Modules
- Integer Math Module
- Number Theory
- Function gcd(int, int) -> int
- greatest common divisor of two integers
- always returns a non-negative number greater than 0
- Function lcm(int, int) -> int
- least common multiple of two integers
- always returns a non-negative number greater than 0
- Function coprime(int, int) -> Tuple(int, int)
- make 2 integers coprime by dividing out gcd
- preserves signs of original numbers
- Function iSqrt(int) -> int
- integer square root
- same as math.isqrt
- Function isSqr(int) -> bool
- returns true if integer argument is a perfect square
- Function primes(start: int, end_before: int) -> Iterator
- uses Sieve of Eratosthenes algorithm
- Function gcd(int, int) -> int
- Combinatorics
- Function comb(n: int, m: int) -> int
- returns number of combinations of n items taken m at a time
- pure integer implementation of math.comb
- Function comb(n: int, m: int) -> int
- Fibonacci Sequences
- Function fibonacci(f0: int=0, f1: int=1) -> Iterator
- returns a Fibonacci sequence iterator
f(n) = f(n-1) + f(n-2)
f(0) = f0
andf(1) = f1
- defaults to
0, 1, 1, 2, 3, 5, 8, 13, ...
- Function fibonacci(f0: int=0, f1: int=1) -> Iterator
- Number Theory
- Pythagorean Triple Module
- Pythagorean Triple Class
- Method Pythag3.triples(
a_start: int
,a_max: int
,max: int
) -> Iterator- Returns an iterator of tuples of primitive Pythagorean triples
- A Pythagorean triple is a tuple in positive integers (a, b, c)
- such that
a**2 + b**2 = c**2
a, b, c
represent integer sides of a right triangle- a Pythagorean triple is primitive if gcd of
a, b, c
is1
- such that
- Iterator finds all primitive Pythagorean Triples such that
0 < a_start <= a < b < c <= max
wherea <= a_max
- if
max = 0
find all theoretically possible triples witha <= a_max
- Method Pythag3.triples(
- Pythagorean Triple Class
- Recursive Function Module
- Ackermann's Function
- Function ackermann(m: int, n: int) -> int
- an example of a total computable function that is not primitive recursive
- becomes numerically intractable after m=4
- see CLI section below for mathematical definition
- Function ackermann(m: int, n: int) -> int
- Ackermann's Function
CLI Applications
Implemented in an OS and package build tool independent way via the project.scripts section of pyproject.toml.
Ackermann's function CLI scripts
Ackermann, a student of Hilbert, discovered early examples of totally computable functions that are not primitively recursive.
A fairly standard definition of the Ackermann function is
recursively defined for m,n >= 0
by
ackermann(0,n) = n+1
ackermann(m,0) = ackermann(m-1,1)
ackermann(m,n) = ackermann(m-1, ackermann(m, n-1))
- CLI script ackerman_list
- Given two non-negative integers, evaluates Ackermann's function
- Implements the recursion via a Python array
- Usage:
ackerman_list m n
Pythagorean triple CLI script
Geometrically, a Pythagorean triangle is a right triangle with with positive integer sides.
- CLI script pythag3
- A Pythagorean triple is a 3-tuple of integers
(a, b, c)
such thata**2 + b**2 = c**2
wherea,b,c > 0
andgcd(a,b,c) = 1
- The integers
a, b, c
represent the sides of a right triangle - Usage:
pythag3 [m [n [max]]
- 3 arguments print all triples with m <= a <= n and a < b < c <= max
- 2 arguments print all triples with m <= a <= n
- 1 argument prints all triples with a <= m
- 0 arguments print all triples with 3 <= a <= 100
- A Pythagorean triple is a 3-tuple of integers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file grscheller_boring_math-0.4.0.tar.gz
.
File metadata
- Download URL: grscheller_boring_math-0.4.0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b9b4518a62262221e10e655675a91a5ac3ad427d313d22ea059e006abb79e1d |
|
MD5 | 9a78a284eee77829034c96a00727d632 |
|
BLAKE2b-256 | bcc5cec2297bf649501c492e033d36cbef5d8dbdca26e32a2c99e0041a6953c6 |
File details
Details for the file grscheller_boring_math-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: grscheller_boring_math-0.4.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e4324df8bd6e90d5bd136b91f3cb5226552ab4cac2942264d4b3b1265180a54 |
|
MD5 | 942700c590e2985d065f958a710183b3 |
|
BLAKE2b-256 | 6660a3475c897905b33fc817b249ce1abc7cdfd97cbd9dd5eac0e47c68b7dee9 |