Skip to main content

An algorithm that computes modular nested exponentiation efficiently

Project description

modular-nested-exponentiation

An algorithm that computes modular nested exponentiation efficiently.

License Version
Wheel Implementation
Status Supported versions

Generalised modular exponentiation

We present an algorithm that takes as input an arbitrarily long sequence of positive integers a₁, a₂, a₃, ..., aₙ and a positive integer m and computes a₁^(a₂^(···^aₙ)) mod m efficiently (that is, without computing the value of the nested exponent).

Without this algorithm, this type of computation is unfeasible for modern computers even for short input sequences containing small integers.

Prerequisites

# cpython makes the computations more efficient
$ apt install libgmp-dev libmpfr-dev libmpc-dev
$ pip install sympy gmpy2

Install

$ pip install mod-nest-exp

Usage

$ python
>>> from mod_nest_exp import mod_nest_exp
>>> mod_nest_exp([6, 5, 4, 3, 2], 1948502738)
mpz(951546056) # uses gmpy2 if available

To-do

  • add a factorisation module in case the user does not have sympy installed

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

mod-nest-exp-1.0.4.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

mod_nest_exp-1.0.4-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file mod-nest-exp-1.0.4.tar.gz.

File metadata

  • Download URL: mod-nest-exp-1.0.4.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.1+

File hashes

Hashes for mod-nest-exp-1.0.4.tar.gz
Algorithm Hash digest
SHA256 e04f86975761631d84a99cc3bdf95335c76717666f2707fd05ab4ad27ad0a2ec
MD5 155b0e87631ad7414edbbd37c788f4f9
BLAKE2b-256 05a18d8c503ef27804457ab3d8f8dcadbc23a1353aaba0d5d9655055df9390ab

See more details on using hashes here.

File details

Details for the file mod_nest_exp-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: mod_nest_exp-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.1+

File hashes

Hashes for mod_nest_exp-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f382513f37a8f0bcc7fa96ba871b8b12751ade1c4685169dd7c8470f57bae0db
MD5 3000c213e0495b40f9ca914f1441cb65
BLAKE2b-256 b0b2458942eebad0aed9c56d8a1b3b6b7a917cfa67f12407b780ad6c9ba755c5

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