-
Notifications
You must be signed in to change notification settings - Fork 3
UMB-Heatmap/heatmap
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
EXAMPLE USAGE: python3 main.py (ALGORITHM) (VISUAL) [SEED] Where: ALGORITHM = 'lehmer' | 'splitmix'| 'xorshift' | 'lcg' | 'middle_square' | 'lfg' | 'rule30' | 'bbs' VISUAL = '2d' | 'distribution' | 'frequency' | '3d_scatter' | '3d_walk' | '3d' | 'shadedrelief' | 'seed_eval' SEED = [<optional> Integer] VISUALS :: result 2d :: NxM Heatmap of Random Values [0, 1) with color mapped to each value distribution :: NxM Heatmap animated .gif of Distributions of (X) Random Values [0, N) per M iterations with color mapped to the distribution of each value frequency :: NxN Heatmap of Frequency of random number with color mapped to random 2D point selection frequency (darker = more frequently selected) 3d_scatter :: Interactive 3D Scatter Plot with N Random Points and multiple color mapping options. 3d_walk :: Interactive 3D plot of N points generated from a step of +- X in each (x, y, z) direction connected by lines to visualize a 3D random walk. Also has functionality to generate .gif animation of random walk. 3d :: 3D heatmap of N points generated from a starting seed or a seed aquired from user input. N number of points is aquired from user input User has the option of Interpolation which is preformed to generate the nessesary points between each randomly generated point, creating a smoother map. The smoothness can be controlled by the number of interpolation points aquired from user input. Best result/preformance is around 100 interP. shadedrelief :: Generates a .gif animation of a random 2D heatmap with a variable light source. seed_eval :: NxM Heatmap of M values from N different seeds in a user-specified range with options for color mapping. TO DOWNLOAD NECESSARY PACKAGES: pip install -r requirements.txt TODO: - LCG and Lehmer not scaling properly: - set this->maxValue in algorithm header constructor - Rule30 only giving 1's with default seed NOTES: - OS-dependent command: $ open Variations: Mac ('Darwin'): open 'path/to/file.svg' Linux: xdg-open 'path/to/file.gif' Windows: 'path/to/file.gif' - main.py will run 'make clean' and 'make' to rebuild C++ automatically if u do not have working ./prng file - (for linux and mac users only) - mingw-make suggested for windows users to rebuild C++ ***IF YOU ARE HAVING TROUBLE WITH PACKAGES: install conda from (https://conda.io/projects/conda/en/latest/user-guide/install/index.html) then run: conda create -n [ENV_NAME] python=3.8 conda install matplotlib conda install numpy conda install scipy ***to create virtual environment with all necessary packages for heatmap visuals For Implementing additional Algorithms: 1. copy include/template.h and implement peekNext() 2. update include/master_header.h HEADER, INDEX, and COMMAND LINE NAME 3. update src/visuals_utils.py ALGORITHM list if algorithm requires additional arguments (-O flag): 1. update src/visuals_utils.py HAS_EXTRA_ARGS list 2. update src/visuals_utils.py getAlgoArgs() with elif case for algorithm 3. update src/visuals_utils.py nRandomScalars() with elif case for algorithm For Implementing additional Visualizations: 1. write VISUALIZATION_NAME.py in src folder **(import visual_utils as vis) **(see src/2d.py for example and exaplanation) **(see src/visuals_utils.py for common functions and shared values) 2. update src/visuals_utils.py VISUALS list 3. IMPORTANT: use ALGO_ARGS = vis.getAlgoArgs(ALGORITHM) and use vis.nRandomScalars() to get data (see examples) 4. add any python dependencies to requirements.txt Lagged Fibonacci arguments Example: ./prng [other arguments] -a lfg -O "operator_char,j_int,k_int" operator_char can be '*', '+', '-', or '^' - right now only '*' seems to make sense In the quotes are comma separated values. Ex: ./prng -d -a lfg -s 1 -n 10 -O "*,3,9" Blum Blum Shub arguments: ./prng [other arguments] -a bbs -O p,q p and q must be Blum Primes, prime numbers that are congruent to 3(mod 4) Ex. 3,7,11,19,23,etc Ex: ./prng -d -a bbs -s 3 -n 10 -O "11,23"
About
Heatmap Visualizations of Pseudo Random Number Generation Algorithms
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published