Welcome to peteroupc.github.io. This page contains more information on several of my programming projects on GitHub. View this site's repository to see this site's source code.
Open-source articles on randomness, programming, and more. Help me on my requests and open questions (and open questions on the Bernoulli factory problem, and other open questions on probability).
Random and Pseudorandom Number Generators
- Random Number Generator Recommendations for Applications
- A Note on Randomness Extraction
- Testing PRNGs for High-Quality Randomness
- Examples of High-Quality PRNGs
- Notes on Jumping PRNGs Ahead
- A Note on the Bays–Durham Shuffle
Random Variate Generation, Randomization, and Exact Sampling
- Randomization and Sampling Methods
- More Random Sampling Methods
- Partially-Sampled Random Numbers for Accurate Sampling of Continuous Distributions
- Bernoulli Factory Algorithms
- Supplemental Notes for Bernoulli Factory Algorithms
- Miscellaneous Observations on Randomization
- Randomized Estimation Algorithms
- The Sampling Problem
- More:
In the articles above, I put an emphasis on random variate generation that:
- Samples exactly from a discrete distribution (such as Bernoulli factory algorithms).
- Samples from a continuous distribution with arbitrary precision and a user-specified accuracy.
- Avoids floating-point arithmetic.
- Avoids calculating transcendental functions when possible.
Colors, Graphics, and Music
- Color Topics for Programmers
- Supplemental Color Topics for Programmers
- Essentials of SVG
- Graphics and Music Challenges for Classic Computer Applications
- Three challenges: retro graphics engine, public-domain music synthesis, and classic tiled wallpapers.
Other Articles on Mathematics and Programming
- Approximations in Bernstein Form
- Used above all in the supplemental notes for Bernoulli factories.
- A Note on Hash Functions
- Pseudocode Conventions
- On a claim of computational complexity
- File Name Support in Applications
Other Articles
- Suggestions for Instructional Materials
- Overused and Discouraged Words and Phrases
- A Wish for a New Atlas
- Pseudocode Conventions
- Random Number Generator Recommendations for Applications
- Randomization and Sampling Methods
- More Random Sampling Methods
- The Most Common Topics Involving Randomization
- Partially-Sampled Random Numbers for Accurate Sampling of Continuous Distributions
- Bernoulli Factory Algorithms
- Testing PRNGs for High-Quality Randomness
- Miscellaneous Observations on Randomization
- Examples of High-Quality PRNGs
- Notes on Jumping PRNGs Ahead
- A Note on Hash Functions
- A Note on Randomness Extraction
- A Note on the Bays–Durham Shuffle
- File Name Support in Applications
- Color Topics for Programmers
- Supplemental Color Topics for Programmers
- Essentials of SVG
- html3dutil: A public domain JavaScript library for easing the development of HTML 3D applications.
- html-gears: An HTML5 3D implementation of the public domain sample, gears.c
- canvasback: Displays an HTML canvas-based background that draws boxes in about the same color as the background color
- colorpicker: A color picker in JavaScript. Supports adapters for integrating other popular color pickers, and can use native color selection controls. In the public domain.
- IdnaJS: A JavaScript implementation of IDNA 2008 and Unicode normalization
- BigNumber: An arbitrary-precision arithmetic library for JavaScript
- Fuzzer: This is a program that generates slightly altered versions of data files, for testing algorithms that parse file formats.
- colorvalidator: This is a library for parsing and generating HTML and CSS colors.
- petero-csharp: Library containing utility methods and classes.
- CBOR: A C# implementation of Concise Binary Object Representation (RFC 7049).
- Enriched: C# program that converts text/enriched files to HTML
- MailLib: A portable library in C# and Java for parsing Internet mail messages
- Encoding: A portable library in C# and Java for character encodings
- TurtleParser: A portable library in C# and Java for parsing the Turtle RDF format
- Calculator: A calculator for .NET, intended to demonstrate two features of the CBOR library: its arbitrary-precision arithmetic capabilities, and its data serialization possibilities.
- desktopwallpaper.py: Python module to aid in generating desktop wallpapers and button-like graphics.
Written by Peter O..