How ot-kartoshka/pinqergen works
pinqergen is a command-line pseudo-random byte-sequence generator and statistical evaluator. The principal workflow parses user options, obtains bytes from a selected generator or input file, runs equiprobability, independence, and homogeneity tests, then prints reports and optionally writes sequence or CSV output. The experiment mode repeats generation and evaluation across the registered generator catalogue. The source excerpts show orchestration and several generator implementations; some generator and statistical internals are represented only by indexed files, so their internal behavior is not expanded.
Main entry points: GeneratorManager.cpp Experiment manager · main.cpp CLI · ClassicGenerators.cpp Classic generators · Generators.hpp Generator interface and catalogue
Components 15
CLI and orchestration
- CLI
main.cpp - Experiment manager
src/GeneratorManager.cpp - Error messages
src/Errors.cpp
Sequence generation
- Generator interface and catalogue
include/Generators.hpp - Classic generators
src/ClassicGenerators.cpp - Cryptographic generators
src/CryptoGenerators.cpp - LFSR engine
src/Lfsr.cpp - Big integer arithmetic
src/BigUint.cpp
Statistical analysis and output
- Statistical tests
src/Statistics.cpp - Console and CSV reports
src/GeneratorManager.cpp
Other components
- User
- Sequence input file
- Generated or loaded bytes
- Sequence output file
- CSV output file
Connections 16
- User → CLI: provides options
main.cpp - CLI → Experiment manager: invokes workflows
main.cpp - Experiment manager → Sequence input file: reads bytes
src/GeneratorManager.cpp - Experiment manager → Generator interface and catalogue: creates generator
src/GeneratorManager.cpp - Generator interface and catalogue → Classic generators: catalogue and factory
src/ClassicGenerators.cpp - Classic generators → LFSR engine: uses LFSR
src/ClassicGenerators.cpp - Classic generators → Cryptographic generators: dispatches crypto
src/ClassicGenerators.cpp - Cryptographic generators → Big integer arithmetic: uses arithmetic
src/CryptoGenerators.cpp - Experiment manager → Generated or loaded bytes: returns bytes
src/GeneratorManager.cpp - Experiment manager → Statistical tests: runs tests
src/GeneratorManager.cpp - Experiment manager → Console and CSV reports: formats results
src/GeneratorManager.cpp - CLI → Sequence output file: requests sequence write
main.cpp - Experiment manager → Sequence output file: writes bytes
src/GeneratorManager.cpp - CLI → CSV output file: requests CSV export
main.cpp - Experiment manager → CSV output file: writes results
src/GeneratorManager.cpp - Experiment manager → Error messages: formats errors
src/GeneratorManager.cpp