Skip to main content

Mathematics libraries with example executables

Project description

PyPI grscheller.boring-math

Daddy's boring math library.

  • Functions of a mathematical nature
  • Project name suggested by my then 13 year old daughter Mary
  • Example of a Python package with both libraries and executables
  • For detailed API documentation click here.

Overview

Here are the modules which make up the grscheller.boring_math package.


Integer Math Module

Combinatorics

  • Function comb(n: int, m: int) -> int
    • returns C(n,m) - the number of n items taken m at a time
    • contains two additional default parameters that can be adjusted
      • factorsNumerator = 66
      • factorsDenonator = 4
    • actually comb(n, m, 1, 1) runs faster for reasonably small n and m
      • better choice for inner loops and printable results
      • about 3 times slower than C based math.comb(n, m)
      • these default paramenters are better for larger results
    • goal is for it to work reasonably well after math.comb bogs down
    • suspect it will really shine for pypy when it supports Python 3.11

Fibonacci Sequences

  • Function fibonacci(f0: int=0, f1: int=1) -> Iterator
    • return an iterator for a Fibonacci sequence
    • defaults to 0, 1, 1, 2, 3, 5, 8, ...

Number theory

  • Function gcd(fst: int, snd: int) -> int

    • takes two integers, returns greatest common divisor (gcd)
    • where gcd >= 0
    • gcd(0,0) returns 0 but in this case the gcd does not exist
  • Function lcm(fst: int, snd: int) -> int

    • takes two integers, returns least common multiple (lcm)
  • Function primes(start: int=2, end_before: int=100) -> Iterator

    • takes two integers, returns least common multiple (lcm)

Pythagorean Triples

The values a, b, c > 0 represent integer sides of a right triangle.

  • Function pythag3(a_max: int=3, all_max: int|None=None) -> Iterator
    • Return an interator of tuples of Pythagorean Tiples
    • Side a <= a_max and sides a, b, c <= all_max
    • Iterator finds all primative pythagorean triples up to a given a_max

Recursive Functions

  • Function ackermann(m: int, n: int) -> int
    • Ackermann's function is a doublely recursively defined function
    • An example of a computable but not primitive recursive function
    • Becomes numerically intractable after m=4

Integer Math CLI Module

Ackermann's Function

  • Function ackerman_cli(fst: int, snd: int) -> None
    • entry point for program ackermann
    • Ackermann's function is defined recursively by
      • ackermann(0,n) = n+1
      • ackermann(m,0) = ackermann(m-1,1)
      • ackermann(m,n) = ackermann(m-1,ackermann(m, n-1)) for n,m > 0
    • Usage: ackerman m n

Pythagorean Triple Function

  • entry point for program pythag3
  • A Pythagorean triple is a 3-tuple of integers (a, b, c) such that
    • a*a + b*b = c*c 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]
    • one argument outputs all triples with a <= n
    • two arguments outputs all triples with a <= n and a, b, c <= m

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.1.2.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

grscheller_boring_math-0.1.2-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for grscheller_boring_math-0.1.2.tar.gz
Algorithm Hash digest
SHA256 ee4db325ee5fabb60ee3010edfb210f3340e73826d8e9b9c910cab5ace62f22c
MD5 4d497c60dedf219ef3bfca2d5c05909e
BLAKE2b-256 fd164459717a372a14bae006d793ccdc2d6d2b32fd40af77c234a6a5f7168242

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for grscheller_boring_math-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b3f36b8543b8b789b17ffaa62b0278ce713d4a337192905a748e733dbbe6662
MD5 b17efe31c57dd79895713a3b8111aa98
BLAKE2b-256 2c8c6dba3ea64164bff7f9cd83358d7c5fa04d4ba55ea883362e1ccb380f8af7

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