Metadata-Version: 2.1
Name: Pyewacket
Version: 0.0.1b2
Summary: Drop-in Replacement for the Python Random Library.
Home-page: https://sharpdesigndigital.com
Author: Broken aka Robert Sharp
Author-email: webmaster@sharpdesigndigital.com
License: Free for non-commercial use
Keywords: Pyewacket
Platform: Darwin
Platform: Linux
Classifier: Development Status :: 1 - Planning
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Cython
Classifier: Programming Language :: C++
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires: Cython
Requires-Python: >=3.7
Description-Content-Type: text/markdown

# Pyewacket

Pyewacket is a lightweight drop-in replacement for the Python random module. 
Pyewacket is based on the RNG Storm Engine, configured for speed.

While Storm is a high quality engine, Pyewacket is not appropriate for cryptography of any kind. 
Pyewacket is meant for games, data science, A.I. and experimental programming, not security.


*Recommended Installation:* `$ pip install Pyewacket`


## Development Log
##### Pyewacket v0.0.1b2
- Basic Functionality
    - random()
    - uniform()
    - randbelow()
    - randint()
    - randrange()
    - choice()
    - choices()
    - shuffle()

##### Pyewacket v0.0.1b1
- Initial Design & Planning


## Pywacket Distribution and Performance Test Suite
```
Output Distribution: Random.random()
Approximate Single Execution Time: Min: 31ns, Mid: 62ns, Max: 156ns
Raw Samples: 0.5344283340507532, 0.10364106503325066, 0.2130604609406146, 0.2677112766435301, 0.2390854401964766
Test Samples: 10000
Pre-processor Statistics:
 Minimum: 0.00020361509808208833
 Median: (0.49750478052375935, 0.4975582987602688)
 Maximum: 0.9998820855841124
 Mean: 0.499876867961783
 Std Deviation: 0.2898208283739117
Post-processor Distribution using <lambda> method:
 0: 10.1%
 1: 9.85%
 2: 10.09%
 3: 10.2%
 4: 9.98%
 5: 9.93%
 6: 9.6%
 7: 9.81%
 8: 10.31%
 9: 10.13%

Output Distribution: random()
Approximate Single Execution Time: Min: 31ns, Mid: 62ns, Max: 125ns
Raw Samples: 0.5158324288090468, 0.4180722617596217, 0.474422233562453, 0.20638082367997831, 0.21890875236294952
Test Samples: 10000
Pre-processor Statistics:
 Minimum: 1.435690071859404e-05
 Median: (0.49397789564323163, 0.49400754850815315)
 Maximum: 0.9997703971676334
 Mean: 0.4981130757231045
 Std Deviation: 0.28920596803634385
Post-processor Distribution using <lambda> method:
 0: 10.05%
 1: 10.16%
 2: 10.17%
 3: 10.15%
 4: 9.92%
 5: 9.85%
 6: 9.94%
 7: 9.92%
 8: 9.81%
 9: 10.03%

Output Distribution: Random.uniform(0.0, 1.0)
Approximate Single Execution Time: Min: 281ns, Mid: 281ns, Max: 500ns
Raw Samples: 0.9049028390666327, 0.957389423567991, 0.22674586351187542, 0.1243812680992259, 0.7019126973190616
Test Samples: 10000
Pre-processor Statistics:
 Minimum: 0.00014223954175596187
 Median: (0.5059413378985098, 0.5059539301242587)
 Maximum: 0.9999327119550295
 Mean: 0.5063174763221022
 Std Deviation: 0.28914935710764633
Post-processor Distribution using <lambda> method:
 0: 9.58%
 1: 9.63%
 2: 9.99%
 3: 10.23%
 4: 10.05%
 5: 9.92%
 6: 9.87%
 7: 9.81%
 8: 10.42%
 9: 10.5%

Output Distribution: uniform(0.0, 1.0)
Approximate Single Execution Time: Min: 31ns, Mid: 62ns, Max: 125ns
Raw Samples: 0.4820354446596393, 0.8642457334986571, 0.2758470841813183, 0.41409995610868716, 0.9049164133507527
Test Samples: 10000
Pre-processor Statistics:
 Minimum: 8.218968230960192e-06
 Median: (0.49908904289231376, 0.4991087069733439)
 Maximum: 0.9999565206623128
 Mean: 0.5000729661676843
 Std Deviation: 0.2886329361924544
Post-processor Distribution using <lambda> method:
 0: 9.74%
 1: 10.36%
 2: 10.0%
 3: 9.83%
 4: 10.2%
 5: 9.91%
 6: 9.81%
 7: 10.36%
 8: 9.69%
 9: 10.1%

Output Distribution: Random.randint(1, 10)
Approximate Single Execution Time: Min: 1468ns, Mid: 1562ns, Max: 3000ns
Raw Samples: 7, 4, 3, 8, 1
Test Samples: 10000
Sample Statistics:
 Minimum: 1
 Median: 5
 Maximum: 10
 Mean: 5.4206
 Std Deviation: 2.8531578454353164
Sample Distribution:
 1: 10.4%
 2: 10.05%
 3: 10.2%
 4: 10.12%
 5: 10.25%
 6: 10.51%
 7: 9.78%
 8: 9.86%
 9: 9.47%
 10: 9.36%

Output Distribution: randint(1, 10)
Approximate Single Execution Time: Min: 62ns, Mid: 93ns, Max: 1625ns
Raw Samples: 3, 2, 7, 4, 5
Test Samples: 10000
Sample Statistics:
 Minimum: 1
 Median: 6
 Maximum: 10
 Mean: 5.4937
 Std Deviation: 2.8682020445388483
Sample Distribution:
 1: 10.1%
 2: 10.02%
 3: 9.88%
 4: 9.86%
 5: 9.95%
 6: 10.58%
 7: 9.5%
 8: 10.29%
 9: 10.1%
 10: 9.72%

Output Distribution: Random.choice([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Approximate Single Execution Time: Min: 906ns, Mid: 968ns, Max: 1187ns
Raw Samples: 1, 8, 2, 2, 3
Test Samples: 10000
Sample Statistics:
 Minimum: 0
 Median: 4
 Maximum: 9
 Mean: 4.4829
 Std Deviation: 2.874566733160032
Sample Distribution:
 0: 10.01%
 1: 10.18%
 2: 10.1%
 3: 9.74%
 4: 10.49%
 5: 9.81%
 6: 10.23%
 7: 9.42%
 8: 9.82%
 9: 10.2%

Output Distribution: choice([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Approximate Single Execution Time: Min: 62ns, Mid: 62ns, Max: 343ns
Raw Samples: 3, 0, 5, 3, 4
Test Samples: 10000
Sample Statistics:
 Minimum: 0
 Median: 4
 Maximum: 9
 Mean: 4.4809
 Std Deviation: 2.877509895086311
Sample Distribution:
 0: 10.1%
 1: 10.15%
 2: 10.15%
 3: 10.1%
 4: 9.57%
 5: 10.29%
 6: 9.9%
 7: 9.53%
 8: 10.39%
 9: 9.82%

Output Distribution: Random.randrange(1, 10, 2)
Approximate Single Execution Time: Min: 2000ns, Mid: 3109ns, Max: 9125ns
Raw Samples: 9, 5, 9, 3, 3
Test Samples: 10000
Sample Statistics:
 Minimum: 1
 Median: 5
 Maximum: 9
 Mean: 4.9884
 Std Deviation: 2.801401475158907
Sample Distribution:
 1: 19.51%
 3: 20.43%
 5: 20.61%
 7: 20.03%
 9: 19.42%

Output Distribution: randrange(1, 10, 2)
Approximate Single Execution Time: Min: 93ns, Mid: 93ns, Max: 187ns
Raw Samples: 1, 9, 7, 9, 5
Test Samples: 10000
Sample Statistics:
 Minimum: 1
 Median: 5
 Maximum: 9
 Mean: 5.0598
 Std Deviation: 2.8319650355532744
Sample Distribution:
 1: 19.61%
 3: 19.41%
 5: 19.91%
 7: 20.52%
 9: 20.55%

Timer only: py_random.shuffle(some_list) of size 10:
Approximate Single Execution Time: Min: 8375ns, Mid: 8577ns, Max: 10500ns

Timer only: shuffle(some_list) of size 10:
Approximate Single Execution Time: Min: 437ns, Mid: 468ns, Max: 500ns

Output Distribution: Random.choices([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 9, 8, 7, 6, 5, 4, 3, 2, 1], k=3)
Approximate Single Execution Time: Min: 3687ns, Mid: 3781ns, Max: 4343ns
Raw Samples: [1, 0, 3], [4, 6, 8], [9, 4, 6], [7, 1, 1], [0, 1, 5]
Test Samples: 10000
Sample Statistics:
 Minimum: 0
 Median: 3
 Maximum: 9
 Mean: 3.0243
 Std Deviation: 2.4522868676172673
Sample Distribution:
 0: 18.08%
 1: 16.07%
 2: 14.01%
 3: 13.02%
 4: 11.48%
 5: 9.35%
 6: 6.8%
 7: 5.67%
 8: 3.56%
 9: 1.96%

Output Distribution: choices([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [10, 9, 8, 7, 6, 5, 4, 3, 2, 1], k=3)
Approximate Single Execution Time: Min: 2375ns, Mid: 4781ns, Max: 7593ns
Raw Samples: [7, 2, 1], [0, 0, 6], [4, 2, 0], [4, 5, 3], [1, 8, 1]
Test Samples: 10000
Sample Statistics:
 Minimum: 0
 Median: 3
 Maximum: 9
 Mean: 2.9865
 Std Deviation: 2.4566076695565804
Sample Distribution:
 0: 18.51%
 1: 16.5%
 2: 14.21%
 3: 12.77%
 4: 11.17%
 5: 8.65%
 6: 7.31%
 7: 5.3%
 8: 3.69%
 9: 1.89%

Output Distribution: Random.choices([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], cum_weights=[10, 19, 27, 34, 40, 45, 49, 52, 54, 55], k=3)
Approximate Single Execution Time: Min: 3125ns, Mid: 3312ns, Max: 5250ns
Raw Samples: [9, 3, 0], [0, 3, 2], [7, 0, 6], [2, 1, 3], [0, 7, 1]
Test Samples: 10000
Sample Statistics:
 Minimum: 0
 Median: 3
 Maximum: 9
 Mean: 3.0015
 Std Deviation: 2.4557485254158267
Sample Distribution:
 0: 18.05%
 1: 16.6%
 2: 14.74%
 3: 12.37%
 4: 10.97%
 5: 8.87%
 6: 7.61%
 7: 5.24%
 8: 3.56%
 9: 1.99%

Output Distribution: choices([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], cum_weights=[10, 19, 27, 34, 40, 45, 49, 52, 54, 55], k=3)
Approximate Single Execution Time: Min: 1750ns, Mid: 1843ns, Max: 5062ns
Raw Samples: [1, 0, 3], [2, 4, 0], [4, 1, 6], [0, 4, 0], [7, 0, 2]
Test Samples: 10000
Sample Statistics:
 Minimum: 0
 Median: 3
 Maximum: 9
 Mean: 3.0147
 Std Deviation: 2.461928110039345
Sample Distribution:
 0: 18.26%
 1: 16.64%
 2: 13.68%
 3: 13.0%
 4: 10.7%
 5: 9.0%
 6: 7.61%
 7: 5.56%
 8: 3.86%
 9: 1.69%


```


