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 interator of tuples of primative 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 primative if gcd of a, b, c is 1
      • Iterator finds all primative pythagorean 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.3.1.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

grscheller_boring_math-0.3.1-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for grscheller_boring_math-0.3.1.tar.gz
Algorithm Hash digest
SHA256 bec59f9199e8cafc23199ac8c61a7accdfd2152d145ae0773aaa914f0d7e3a8b
MD5 3c4b7e6086d369f71e5072b4d719aa67
BLAKE2b-256 6c380ae713f8178fb432f76835aca4f65ef9d6f9b8f21ef0ac41b8d94b4ef94b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grscheller_boring_math-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3f2a5eb7c8a6a0649aa8cc149f19b2f21be5bba7afbe8be8e3c0cb9639aa91b
MD5 f1e327d036574a66ddc14052c2700f51
BLAKE2b-256 a48cb54be05219d77ad01a99666e0db5c611cf1a51e13687b720df0573051f0a

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