Skip to main content

Libraries of a mathematical nature with example executables.

Project description

PyPI grscheller.boring-math Project

Daddy's boring math library.

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
    • 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
    • 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 and f(1) = f1
        • defaults to 0, 1, 1, 2, 3, 5, 8, 13, ...

  • 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 is 1
      • Iterator finds all primitive Pythagorean Triples such that
        • 0 < a_start <= a < b < c <= max where a <= a_max
        • if max = 0 find all theoretically possible triples with a <= a_max

  • 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

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 that
      • a**2 + b**2 = c**2 where a,b,c > 0 and gcd(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

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

grscheller_boring_math-0.4.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

grscheller_boring_math-0.4.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file grscheller_boring_math-0.4.0.tar.gz.

File metadata

File hashes

Hashes for grscheller_boring_math-0.4.0.tar.gz
Algorithm Hash digest
SHA256 5b9b4518a62262221e10e655675a91a5ac3ad427d313d22ea059e006abb79e1d
MD5 9a78a284eee77829034c96a00727d632
BLAKE2b-256 bcc5cec2297bf649501c492e033d36cbef5d8dbdca26e32a2c99e0041a6953c6

See more details on using hashes here.

File details

Details for the file grscheller_boring_math-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for grscheller_boring_math-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e4324df8bd6e90d5bd136b91f3cb5226552ab4cac2942264d4b3b1265180a54
MD5 942700c590e2985d065f958a710183b3
BLAKE2b-256 6660a3475c897905b33fc817b249ce1abc7cdfd97cbd9dd5eac0e47c68b7dee9

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