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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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